[libcxx-commits] [libcxx] 4f4d6c8 - [libcxx testing] Remove ALLOW_RETRIES from sleep_until.pass.cpp
David Zarzycki via libcxx-commits
libcxx-commits at lists.llvm.org
Sun May 10 03:02:10 PDT 2020
Author: David Zarzycki
Date: 2020-05-10T05:59:09-04:00
New Revision: 4f4d6c81f8b7505a1f0dcd887f75a7a8225ba52b
URL: https://github.com/llvm/llvm-project/commit/4f4d6c81f8b7505a1f0dcd887f75a7a8225ba52b
DIFF: https://github.com/llvm/llvm-project/commit/4f4d6c81f8b7505a1f0dcd887f75a7a8225ba52b.diff
LOG: [libcxx testing] Remove ALLOW_RETRIES from sleep_until.pass.cpp
Operating systems are best effort by default, so we cannot assume that
sleep-like APIs return as soon as we'd like.
Even if a sleep-like API returns when we want it to, the potential for
preemption means that attempts to measure time are subject to delays.
Added:
Modified:
libcxx/test/std/thread/thread.threads/thread.thread.this/sleep_until.pass.cpp
Removed:
################################################################################
diff --git a/libcxx/test/std/thread/thread.threads/thread.thread.this/sleep_until.pass.cpp b/libcxx/test/std/thread/thread.threads/thread.thread.this/sleep_until.pass.cpp
index 8777e4aac133..908635f30b76 100644
--- a/libcxx/test/std/thread/thread.threads/thread.thread.this/sleep_until.pass.cpp
+++ b/libcxx/test/std/thread/thread.threads/thread.thread.this/sleep_until.pass.cpp
@@ -7,7 +7,6 @@
//===----------------------------------------------------------------------===//
//
// UNSUPPORTED: libcpp-has-no-threads
-// ALLOW_RETRIES: 2
// <thread>
@@ -22,16 +21,15 @@
int main(int, char**)
{
- typedef std::chrono::system_clock Clock;
- typedef Clock::time_point time_point;
- std::chrono::milliseconds ms(500);
- time_point t0 = Clock::now();
- std::this_thread::sleep_until(t0 + ms);
- time_point t1 = Clock::now();
- std::chrono::nanoseconds ns = (t1 - t0) - ms;
- std::chrono::nanoseconds err = 5 * ms / 100;
- // The time slept is within 5% of 500ms
- assert(std::abs(ns.count()) < err.count());
+ typedef std::chrono::system_clock Clock;
+ typedef Clock::time_point time_point;
+ std::chrono::milliseconds ms(500);
+ time_point t0 = Clock::now();
+ std::this_thread::sleep_until(t0 + ms);
+ time_point t1 = Clock::now();
+ // NOTE: Operating systems are (by default) best effort and therefore we may
+ // have slept longer, perhaps much longer than we requested.
+ assert(t1 - t0 >= ms);
return 0;
}
More information about the libcxx-commits
mailing list