Skip to content

Commit

Permalink
Add sleep of one clock-resolution to test which should trigger timeout
Browse files Browse the repository at this point in the history
Fixes doctest#711 under HPPA, and
partially under alpha.
  • Loading branch information
matoro committed Apr 15, 2023
1 parent 66ff54a commit 1ffb66b
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 0 deletions.
12 changes: 12 additions & 0 deletions examples/all_features/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,12 @@ set(files_all
# add the executable
add_executable(all_features ${files_all})
target_link_libraries(all_features doctest ${CMAKE_THREAD_LIBS_INIT})
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
target_link_options(all_features PRIVATE "-rtlib=compiler-rt")
if(LINUX)
target_link_libraries(all_features "-lgcc_s")
endif()
endif()

# easy way to fix test coverage - disable colors and crash handling
target_compile_definitions(all_features PRIVATE
Expand Down Expand Up @@ -124,6 +130,12 @@ function(add_test_all_features test_name flags)
add_executable(${test_name} ${files_with_output})
target_compile_definitions(${test_name} PRIVATE ${flags})
target_link_libraries(${test_name} doctest ${CMAKE_THREAD_LIBS_INIT})
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
target_link_options(${test_name} PRIVATE "-rtlib=compiler-rt")
if(LINUX)
target_link_libraries(${test_name} "-lgcc_s")
endif()
endif()

doctest_add_test_impl(NAME ${test_name} COMMAND $<TARGET_FILE:${test_name}> --no-skipped-summary --no-version -ob=name)
endfunction()
Expand Down
11 changes: 11 additions & 0 deletions examples/all_features/test_cases_and_suites.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,12 @@

#include "header.h"

DOCTEST_MAKE_STD_HEADERS_CLEAN_FROM_WARNINGS_ON_WALL_BEGIN
#include <chrono>
#include <ctime>
#include <thread>
DOCTEST_MAKE_STD_HEADERS_CLEAN_FROM_WARNINGS_ON_WALL_END

static int doStuff() {
int a = 5;
a += 2;
Expand Down Expand Up @@ -46,6 +52,11 @@ TEST_CASE_FIXTURE(SomeFixture, "fixtured test - not part of a test suite") {

TEST_CASE("normal test in a test suite from a decorator" * doctest::test_suite("ts1") *
doctest::timeout(0.000001)) {
#ifndef _WIN32
struct timespec res{};
clock_getres(CLOCK_MONOTONIC, &res);
std::this_thread::sleep_for(std::chrono::nanoseconds(res.tv_nsec));
#endif
MESSAGE("failing because of the timeout decorator!");
}

Expand Down

0 comments on commit 1ffb66b

Please sign in to comment.