mirror of
https://github.com/dashpay/dash.git
synced 2024-12-26 12:32:48 +01:00
Merge #18285: test: Check that wait_until returns if time point is in the past
fab7d14ea5a4305317d66f35beb3225a07823d42 test: Check that wait_until returns if time point is in the past (MarcoFalke) Pull request description: Add an explicit regression test for the condvar bug (#18227), so that this doesn't happen again ACKs for top commit: laanwj: ACK fab7d14ea5a4305317d66f35beb3225a07823d42 Tree-SHA512: 6ec0d0b3945cae87a001e367af34cca1953a8082b4a0d9f8a20d30acd1f36363e98035d4eb173ff786cf6692d352d41f960633415c46394af042eb44e3b5ad71
This commit is contained in:
parent
eaab6cd68d
commit
2f6f313942
@ -112,6 +112,24 @@ BOOST_AUTO_TEST_CASE(manythreads)
|
|||||||
BOOST_CHECK_EQUAL(counterSum, 200);
|
BOOST_CHECK_EQUAL(counterSum, 200);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BOOST_AUTO_TEST_CASE(wait_until_past)
|
||||||
|
{
|
||||||
|
std::condition_variable condvar;
|
||||||
|
Mutex mtx;
|
||||||
|
WAIT_LOCK(mtx, lock);
|
||||||
|
|
||||||
|
const auto no_wait= [&](const std::chrono::seconds& d) {
|
||||||
|
return condvar.wait_until(lock, std::chrono::system_clock::now() - d);
|
||||||
|
};
|
||||||
|
|
||||||
|
BOOST_CHECK(std::cv_status::timeout == no_wait(std::chrono::seconds{1}));
|
||||||
|
BOOST_CHECK(std::cv_status::timeout == no_wait(std::chrono::minutes{1}));
|
||||||
|
BOOST_CHECK(std::cv_status::timeout == no_wait(std::chrono::hours{1}));
|
||||||
|
BOOST_CHECK(std::cv_status::timeout == no_wait(std::chrono::hours{10}));
|
||||||
|
BOOST_CHECK(std::cv_status::timeout == no_wait(std::chrono::hours{100}));
|
||||||
|
BOOST_CHECK(std::cv_status::timeout == no_wait(std::chrono::hours{1000}));
|
||||||
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE(singlethreadedscheduler_ordered)
|
BOOST_AUTO_TEST_CASE(singlethreadedscheduler_ordered)
|
||||||
{
|
{
|
||||||
CScheduler scheduler;
|
CScheduler scheduler;
|
||||||
|
Loading…
Reference in New Issue
Block a user