diff options
author | Martin Sustrik <sustrik@250bpm.com> | 2012-04-13 07:26:54 +0200 |
---|---|---|
committer | Martin Sustrik <sustrik@250bpm.com> | 2012-04-14 05:00:25 +0200 |
commit | 06329e07437f56260c2c74ba9e272bc6d484cc81 (patch) | |
tree | b5a88aef4f00370d0bfc41b817f3429c4139a8ef | |
parent | f34f71bbd5b9b00b295aa6438dd251845547225c (diff) |
Checking for correct timeout in the test suite improved
This patch introduces 1/2 second tolerance for the timeouts in the tests.
This will hopefully make tests not fail even on slow or heavily loaded
machines.
Signed-off-by: Martin Sustrik <sustrik@250bpm.com>
-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. |