Config no multithreading (#625)
* Add DOCTEST_CONFIG_NO_ATOMICS
* Fix
* Fix cmake stuff and ambiguity issue
* No mutices when multithreading is disabled
* Add WASI platform
* Fix various warnings
* No `thread_local`s when multithreading is disabled
* Fix tests
* Add docs
* Fix docs
* Various fixes, simplifications and additional tests
* Small docs amendment
* Tiny style fix
diff --git a/examples/all_features/CMakeLists.txt b/examples/all_features/CMakeLists.txt
index 4d2fe1b..3d6b342 100644
--- a/examples/all_features/CMakeLists.txt
+++ b/examples/all_features/CMakeLists.txt
@@ -97,15 +97,11 @@
doctest_add_test(NAME minimal ${common_args} -m -sf=*test_cases_and_suites*) # minimal with summary
doctest_add_test(NAME minimal_no_fail ${common_args} -m -sf=*no_failures.cpp) # minimal
-################################################################################
-## DOCTEST DISABLED - EXPRESSIONS STILL EVALUATE TO RETURN PROPER VALUES
-################################################################################
-
add_executable(disabled_but_evaluated assert_returns_disabled.cpp assert_returns_disabled_evaluate.cpp)
target_compile_definitions(disabled_but_evaluated PRIVATE DOCTEST_CONFIG_DISABLE)
target_link_libraries(disabled_but_evaluated doctest ${CMAKE_THREAD_LIBS_INIT})
-doctest_add_test_impl(NAME disabled_but_evaluated COMMAND $<TARGET_FILE:disabled_but_evaluated>)
+doctest_add_test_impl(NO_OUTPUT NAME disabled_but_evaluated COMMAND $<TARGET_FILE:disabled_but_evaluated>)
if(MSVC)
target_compile_options(disabled_but_evaluated PRIVATE /wd4702) # unreachable code
@@ -119,14 +115,20 @@
endif()
################################################################################
-## VARIATION OF THE BUILD WITH DOCTEST DISABLED - SHOULD STILL COMPILE
+## CONFIG TESTS - TESTS WITH VARIOUS CONFIGURATION OPTIONS
################################################################################
-add_executable(disabled ${files_all})
-target_compile_definitions(disabled PRIVATE DOCTEST_CONFIG_DISABLE)
-target_link_libraries(disabled doctest ${CMAKE_THREAD_LIBS_INIT})
+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})
-doctest_add_test_impl(NAME disabled COMMAND $<TARGET_FILE:disabled>)
+ doctest_add_test_impl(NAME ${test_name} COMMAND $<TARGET_FILE:${test_name}> --no-skipped-summary --no-version -ob=name)
+endfunction()
+
+add_test_all_features(no_multithreading DOCTEST_CONFIG_NO_MULTITHREADING)
+add_test_all_features(no_multi_lane_atomics DOCTEST_CONFIG_NO_MULTI_LANE_ATOMICS)
+add_test_all_features(disabled DOCTEST_CONFIG_DISABLE)
# TODO: think about fixing these in a different way! - see issue #61 or commit 6b61e8aa3818c5ea100cedc1bb48a60ea10df6e8
if(MSVC)