diff options
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/linger.cpp | 4 | ||||
| -rw-r--r-- | tests/polltimeo.cpp | 8 | ||||
| -rw-r--r-- | tests/testutil.hpp | 6 | ||||
| -rw-r--r-- | tests/timeo.cpp | 8 | 
4 files changed, 11 insertions, 15 deletions
| diff --git a/tests/linger.cpp b/tests/linger.cpp index 42dfda0..fec0f72 100644 --- a/tests/linger.cpp +++ b/tests/linger.cpp @@ -52,9 +52,7 @@ int XS_TEST_MAIN ()      rc = xs_term (ctx);      assert (rc == 0);      int ms = (int) xs_stopwatch_stop (watch) / 1000; -#if !defined _WIN32 || !defined _DEBUG -    assert (ms > 50 && ms < 150); -#endif +    time_assert (ms, linger);      return 0;  } diff --git a/tests/polltimeo.cpp b/tests/polltimeo.cpp index 73d7f53..ca88393 100644 --- a/tests/polltimeo.cpp +++ b/tests/polltimeo.cpp @@ -58,9 +58,7 @@ int XS_TEST_MAIN ()      rc = xs_poll (&pi, 1, 500);      assert (rc == 0);      unsigned long elapsed = xs_stopwatch_stop (watch) / 1000; -#if !defined _WIN32 || !defined _DEBUG -    assert (elapsed > 440 && elapsed < 550); -#endif +    time_assert (elapsed, 500);      //  Check whether connection during the wait doesn't distort the timeout.      void *thread = thread_create (polltimeo_worker, ctx); @@ -69,9 +67,7 @@ int XS_TEST_MAIN ()      rc = xs_poll (&pi, 1, 2000);      assert (rc == 0);      elapsed = xs_stopwatch_stop (watch) / 1000; -#if !defined _WIN32 || !defined _DEBUG -    assert (elapsed > 1900 && elapsed < 2100); -#endif +    time_assert (elapsed, 2000);      thread_join (thread);      //  Clean-up. diff --git a/tests/testutil.hpp b/tests/testutil.hpp index 4e0287a..58f1afd 100644 --- a/tests/testutil.hpp +++ b/tests/testutil.hpp @@ -173,4 +173,10 @@ inline void bounce (void *sb, void *sc)      assert (memcmp (buf2, content, 32) == 0);  } +//  Check whether measured time is the expected time (in milliseconds). +//  The upper tolerance is 1/2 sec so that the test doesn't fail even on +//  very slow or very loaded systems. +#define time_assert(actual,expected) \ +   assert (actual > ((expected) - 50) && actual < ((expected) + 500));  +  #endif diff --git a/tests/timeo.cpp b/tests/timeo.cpp index 92c578b..2281556 100644 --- a/tests/timeo.cpp +++ b/tests/timeo.cpp @@ -66,9 +66,7 @@ int XS_TEST_MAIN ()      assert (rc == -1);      assert (xs_errno () == EAGAIN);      unsigned long elapsed = xs_stopwatch_stop (watch) / 1000; -#if !defined _WIN32 || !defined _DEBUG -    assert (elapsed > 440 && elapsed < 550); -#endif +    time_assert (elapsed, timeout);      //  Check whether connection during the wait doesn't distort the timeout.      timeout = 2000; @@ -81,9 +79,7 @@ int XS_TEST_MAIN ()      assert (rc == -1);      assert (xs_errno () == EAGAIN);      elapsed = xs_stopwatch_stop (watch) / 1000; -#if !defined _WIN32 || !defined _DEBUG -    assert (elapsed > 1900 && elapsed < 2100); -#endif +    time_assert (elapsed, timeout);      thread_join (thread);      //  Check that timeouts don't break normal message transfer. | 
