include(RunCMake) # Isolate our ctest runs from external environment. unset(ENV{CTEST_PARALLEL_LEVEL}) unset(ENV{CTEST_OUTPUT_ON_FAILURE}) if(NOT RunCMake_GENERATOR_IS_MULTI_CONFIG) set(RunCMake_TEST_OPTIONS -DCMAKE_BUILD_TYPE=Debug) endif() block() set(RunCMake_TEST_BINARY_DIR "${RunCMake_BINARY_DIR}/basic-build") run_cmake(basic) set(RunCMake_TEST_NO_CLEAN 1) run_cmake_command(basic-build ${CMAKE_COMMAND} --build . --config Debug) run_cmake_command(PROPERTY ${CMAKE_CTEST_COMMAND} -C Debug -N -L LBL1) set(ENV{TEST_LABEL} "FOO") run_cmake_command(ENVIRONMENT ${CMAKE_CTEST_COMMAND} -C Debug -R "Env.") run_cmake_command(COMMAND_EXPAND_LISTS ${CMAKE_CTEST_COMMAND} -C Debug -N -R "ExpandLists.") endblock() block() run_cmake(bad-discovery-properties-cmake) run_cmake(bad-test-properties-cmake) endblock() block() # Policy CMP0224 has to reach the tests that discovery creates. set(RunCMake_TEST_BINARY_DIR "${RunCMake_BINARY_DIR}/fixture-repeat-mode-build") run_cmake(fixture-repeat-mode) set(RunCMake_TEST_NO_CLEAN 1) run_cmake_command(fixture-repeat-mode-build ${CMAKE_COMMAND} --build . --config Debug) run_cmake_command(fixture-repeat-mode-test ${CMAKE_CTEST_COMMAND} -C Debug --repeat until-fail:2) endblock() function(run_case CASE) set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/${CASE}-build) run_cmake(${CASE}) set(RunCMake_TEST_NO_CLEAN 1) run_cmake_command(${CASE}-build ${CMAKE_COMMAND} --build . --config Debug) run_cmake_command(${CASE}-test ${CMAKE_CTEST_COMMAND} -C Debug) endfunction() run_case(bad-discovery-properties-ctest) run_case(bad-test-properties-ctest) run_case(bad-command) run_case(bad-regex) run_case(discovery-failure) run_case(discovery-timeout)