summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGiuliano Procida <gprocida@google.com>2021-04-07 14:25:13 +0100
committerGiuliano Procida <gprocida@google.com>2021-04-07 15:14:38 +0100
commitebc88d26a5548d65b45bbec1091d5573d011cc0d (patch)
treed9d420d614a2edbc73744443fd0117980f914f56
parent99d11ebe83b38837990bb485247d80a5d8659f10 (diff)
Use mean CPU time in an attempt to reduce test flakiness
The sleep(3) / clock(3) test is sensitive to outliers in the distribution of CPU consumed by the sleep system call. This changes the measured quantity to be the mean over 5 samples and sets the threshold to 10ms. Bug: 184727758 Change-Id: I20df3b620a5fbf4e58a3ca67306370351ac01d0c Test: treehugger Signed-off-by: Giuliano Procida <gprocida@google.com>
-rw-r--r--tests/time_test.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/tests/time_test.cpp b/tests/time_test.cpp
index 7c2c890c6..16299cc52 100644
--- a/tests/time_test.cpp
+++ b/tests/time_test.cpp
@@ -851,11 +851,15 @@ TEST(time, clock_getres_unknown) {
}
TEST(time, clock) {
- // clock(3) is hard to test, but a 1s sleep should cost less than 20ms.
+ // clock(3) is hard to test, but a 1s sleep should cost less than 10ms on average.
+ static const clock_t N = 5;
+ static const clock_t mean_limit_ms = 10;
clock_t t0 = clock();
- sleep(1);
+ for (size_t i = 0; i < N; ++i) {
+ sleep(1);
+ }
clock_t t1 = clock();
- ASSERT_LT(t1 - t0, 20 * (CLOCKS_PER_SEC / 1000));
+ ASSERT_LT(t1 - t0, N * mean_limit_ms * (CLOCKS_PER_SEC / 1000));
}
static pid_t GetInvalidPid() {