diff --git a/.travis.yml b/.travis.yml index c4dac96a..12019901 100644 --- a/.travis.yml +++ b/.travis.yml @@ -84,8 +84,6 @@ matrix: - - before_script: - if [ -n "$GCC_VERSION" ]; then export CXX="g++-${GCC_VERSION}" CC="gcc-${GCC_VERSION}"; fi - if [ -n "$CLANG_VERSION" ]; then export CXX="clang++-${CLANG_VERSION}" CC="clang-${CLANG_VERSION}"; fi diff --git a/tests/includes.h b/tests/includes.h index c9056a02..4d35d6b8 100644 --- a/tests/includes.h +++ b/tests/includes.h @@ -7,6 +7,7 @@ #include #include #include +#include #include #define SPDLOG_TRACE_ON diff --git a/tests/test_mpmc_q.cpp b/tests/test_mpmc_q.cpp index 21b2e8a2..19c6cdf3 100644 --- a/tests/test_mpmc_q.cpp +++ b/tests/test_mpmc_q.cpp @@ -2,25 +2,27 @@ using namespace std::chrono; using std::chrono::milliseconds; -using std::chrono::system_clock; +using test_clock = std::chrono::high_resolution_clock ; -system_clock::time_point now_millis() + +static milliseconds millis_from(const test_clock::time_point &tp0) { - return time_point_cast(system_clock::now()); + return std::chrono::duration_cast(test_clock::now()-tp0); } TEST_CASE("dequeue-empty-nowait", "[mpmc_blocking_q]") { size_t q_size = 100; - milliseconds tolerance_wait(10); + milliseconds tolerance_wait(30); spdlog::details::mpmc_blocking_queue q(q_size); int popped_item; - auto millis_0 = now_millis(); + auto start = test_clock::now(); auto rv = q.dequeue_for(popped_item, milliseconds::zero()); - auto millis_1 = now_millis(); + auto delta_ms = millis_from(start); REQUIRE(rv == false); - REQUIRE((millis_1 - millis_0) <= tolerance_wait); + INFO("Delta " << delta_ms.count() << " millis"); + REQUIRE(delta_ms <= tolerance_wait); } TEST_CASE("dequeue-empty-wait", "[mpmc_blocking_q]") @@ -28,16 +30,17 @@ TEST_CASE("dequeue-empty-wait", "[mpmc_blocking_q]") size_t q_size = 100; milliseconds wait_ms(250); - milliseconds tolerance_wait(10); + milliseconds tolerance_wait(30); spdlog::details::mpmc_blocking_queue q(q_size); int popped_item; - auto millis_0 = now_millis(); + auto start = test_clock::now(); auto rv = q.dequeue_for(popped_item, wait_ms); - auto millis_1 = now_millis(); - auto delta_ms = millis_1 - millis_0; + auto delta_ms = millis_from(start); REQUIRE(rv == false); + + INFO("Delta " << delta_ms.count() << " millis"); REQUIRE(delta_ms >= wait_ms); REQUIRE(delta_ms <= wait_ms + tolerance_wait); } @@ -47,15 +50,17 @@ TEST_CASE("enqueue_nowait", "[mpmc_blocking_q]") size_t q_size = 1; spdlog::details::mpmc_blocking_queue q(q_size); - milliseconds tolerance_wait(10); + milliseconds tolerance_wait(30); q.enqueue(1); REQUIRE(q.overrun_counter() == 0); - auto millis_0 = now_millis(); + auto start = test_clock::now(); q.enqueue_nowait(2); - auto millis_1 = now_millis(); - REQUIRE((millis_1 - millis_0) <= tolerance_wait); + auto delta_ms = millis_from(start); + + INFO("Delta " << delta_ms.count() << " millis"); + REQUIRE(delta_ms <= tolerance_wait); REQUIRE(q.overrun_counter() == 1); }