small fixes after merging #418 - also relates #413
diff --git a/examples/mpi/CMakeLists.txt b/examples/mpi/CMakeLists.txt
index c5cbad1..4f99cd2 100644
--- a/examples/mpi/CMakeLists.txt
+++ b/examples/mpi/CMakeLists.txt
@@ -1,63 +1,7 @@
-################################################################################
-## BUILD ALL EXAMPLE SOURCES INTO A SINGLE BINARY AND EXECUTE TESTS ON EACH FILE
-################################################################################
-
-# TODO factor with example/all_features/CMakeLists.txt
-
-set(files_with_output
- main.cpp
- mpi.cpp
-)
-
-set(files_all
- ${files_with_output}
-)
-
find_package(MPI COMPONENTS CXX)
if(MPI_FOUND)
- # add the executable
- add_executable(mpi_features ${files_all})
- target_link_libraries(mpi_features doctest ${CMAKE_THREAD_LIBS_INIT} MPI::MPI_CXX)
+ add_executable(test_mpi main.cpp mpi.cpp)
+ target_link_libraries(test_mpi doctest ${CMAKE_THREAD_LIBS_INIT} MPI::MPI_CXX)
- # easy way to fix test coverage - disable colors and crash handling
- target_compile_definitions(mpi_features PRIVATE
- DOCTEST_CONFIG_COLORS_NONE
- DOCTEST_CONFIG_NO_POSIX_SIGNALS
- DOCTEST_CONFIG_NO_WINDOWS_SEH)
-
- # omit the version and the num test cases skipped from the summary - this way the output will change less often
- set(common_args COMMAND $<TARGET_FILE:mpi_features> --no-skipped-summary --no-version)
-
- # add per-file tests
- foreach(f ${files_with_output})
- doctest_add_test(NAME ${f} ${common_args} -sf=*${f})
- endforeach()
-
- # add this separately since it shouldn't have output compared to reference output - due to concurrency
- # not adding it for MinGW since it crashes when using mingw-w64-x86_64-8.1.0-release-posix-seh-rt_v6-rev0
- # (also disabled for old XCode builds on travis where there is no thread_local support and this is defined in the build matrix)
- if(NOT MINGW AND NOT DEFINED DOCTEST_THREAD_LOCAL)
- doctest_add_test(NO_OUTPUT NAME concurrency.cpp ${common_args} -sf=*concurrency.cpp -d) # duration: there is no output anyway
- endif()
-
- # queries
- doctest_add_test(NAME version COMMAND $<TARGET_FILE:mpi_features> -v)
- doctest_add_test(NAME help ${common_args} -h)
- doctest_add_test(NO_OUTPUT NAME outfile ${common_args} -c -out=temp) # just to exercise the output option
- doctest_add_test(NAME count ${common_args} -c -sf=*coverage*)
- doctest_add_test(NAME list_test_cases ${common_args} -ltc -sf=*coverage*)
- doctest_add_test(NAME list_test_suites ${common_args} -lts -sf=*coverage*)
- doctest_add_test(NAME list_reporters ${common_args} -lr -sf=*coverage*)
-
- # options
- doctest_add_test(NAME all_binary ${common_args} -tc=all?binary* -s) # print all binary asserts - for getAssertString()
- doctest_add_test(NAME abort_after ${common_args} -aa=2 -e=off -sf=*coverage*) # abort after 2 assert fails and parse a negative
- doctest_add_test(NAME first_last ${common_args} -f=2 -l=4 -sf=*coverage*) # run a range
- doctest_add_test(NAME filter_1 ${common_args} -ts=none) # should filter out all
- # -order-by=name to avoid different output depending on the compiler used. See https://github.com/onqtam/doctest/issues/287
- doctest_add_test(NAME filter_2 COMMAND $<TARGET_FILE:mpi_features> -tse=* -nv -order-by=name) # should filter out all + print skipped
- doctest_add_test(NAME filter_3 ${common_args} -sc=from*,sc* -sce=sc2 -sf=*subcases*) # enter a specific subcase - sc1
- doctest_add_test(NAME order_1 ${common_args} -ob=suite -ns -sf=*test_cases_and_suites*)
- doctest_add_test(NAME order_2 ${common_args} -ob=name -sf=*test_cases_and_suites*)
- doctest_add_test(NAME order_3 ${common_args} -ob=rand -sfe=*) # exclude everything for no output
+ doctest_add_test(NO_OUTPUT NAME test_mpi COMMAND mpirun -np 3 $<TARGET_FILE:test_mpi>)
endif()