diff options
author | noelallen@chromium.org <noelallen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-07-24 17:34:17 +0000 |
---|---|---|
committer | noelallen@chromium.org <noelallen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-07-24 17:34:17 +0000 |
commit | f390fe8a3dd54c630902db1ecc0dbead0e6fac2d (patch) | |
tree | 743209ebaede3a7fc5748035eb9bacfa20a0a462 /native_client_sdk | |
parent | 11a07b1010d38b4da7169a003bc20a8e77827685 (diff) | |
download | chromium_src-f390fe8a3dd54c630902db1ecc0dbead0e6fac2d.zip chromium_src-f390fe8a3dd54c630902db1ecc0dbead0e6fac2d.tar.gz chromium_src-f390fe8a3dd54c630902db1ecc0dbead0e6fac2d.tar.bz2 |
[NaCl SDK] Add timeout slop for rounding
Periodically we fail the timeout test, because the epoll wait appears to
return in less time than expected. This can be due to rounding issues,
conversion between usec/nsec, clock drift, and other small errors.
NOTRY=true
R=binji@chromium.org
Review URL: https://codereview.chromium.org/19460017
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@213460 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'native_client_sdk')
-rw-r--r-- | native_client_sdk/src/libraries/nacl_io_test/event_test.cc | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/native_client_sdk/src/libraries/nacl_io_test/event_test.cc b/native_client_sdk/src/libraries/nacl_io_test/event_test.cc index 33a3bb2..1a5d9bd 100644 --- a/native_client_sdk/src/libraries/nacl_io_test/event_test.cc +++ b/native_client_sdk/src/libraries/nacl_io_test/event_test.cc @@ -73,6 +73,11 @@ const int TIMEOUT_LONG = 500; const int TIMEOUT_NEVER = -1; const int TIMEOUT_VERY_LONG = 1000; +// We subtract TIMEOUT_SLOP from the expected minimum timed due to rounding +// and clock drift converting between absolute and relative time. +// 1 for LT comparison, 1 for rounding, etc... +const int TIMEOUT_SLOP = 2; + TEST(EventTest, EmitterBasic) { ScopedRef<EventEmitterTester> emitter(new EventEmitterTester()); ScopedRef<EventEmitter> null_emitter; @@ -300,7 +305,7 @@ TEST(EventTest, EmitterTimeout) { memset(ev, 0, sizeof(ev)); EXPECT_TRUE(TimedListen(listener, ev, MAX_EVENTS, EXPECT_NO_EVENT, TIMEOUT_LONG, &duration)); - EXPECT_LT(TIMEOUT_LONG - 1, duration); + EXPECT_LT(TIMEOUT_LONG - TIMEOUT_SLOP, duration); EXPECT_GT(TIMEOUT_LONG + SCHEDULING_GRANULARITY, duration); } @@ -353,7 +358,7 @@ TEST(EventTest, EmitterSignalling) { // Verify the wait duration, and that we only recieved the expected signal. duration = Duration(&start, &end); EXPECT_GT(TIMEOUT_SHORT + SCHEDULING_GRANULARITY, duration); - EXPECT_LT(TIMEOUT_SHORT - 1, duration); + EXPECT_LT(TIMEOUT_SHORT - TIMEOUT_SLOP, duration); EXPECT_EQ(USER_DATA_A, ev[0].user_data); EXPECT_EQ(KE_EXPECTED, ev[0].events); } |