summaryrefslogtreecommitdiffstats
path: root/native_client_sdk
diff options
context:
space:
mode:
authornoelallen@chromium.org <noelallen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-07-24 17:34:17 +0000
committernoelallen@chromium.org <noelallen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-07-24 17:34:17 +0000
commitf390fe8a3dd54c630902db1ecc0dbead0e6fac2d (patch)
tree743209ebaede3a7fc5748035eb9bacfa20a0a462 /native_client_sdk
parent11a07b1010d38b4da7169a003bc20a8e77827685 (diff)
downloadchromium_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.cc9
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);
}