| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- include(RunCMake)
- function(run_GoogleTest DISCOVERY_MODE)
- # Use a single build tree for a few tests without cleaning.
- set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/GoogleTest-build)
- set(RunCMake_TEST_NO_CLEAN 1)
- if(NOT RunCMake_GENERATOR_IS_MULTI_CONFIG)
- set(RunCMake_TEST_OPTIONS -DCMAKE_BUILD_TYPE=Debug)
- endif()
- file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}")
- file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}")
- run_cmake_with_options(GoogleTest -DCMAKE_GTEST_DISCOVER_TESTS_DISCOVERY_MODE=${DISCOVERY_MODE})
- run_cmake_command(GoogleTest-build
- ${CMAKE_COMMAND}
- --build .
- --config Debug
- --target fake_gtest
- )
- run_cmake_command(GoogleTest-property-timeout-exe
- ${CMAKE_COMMAND}
- --build .
- --config Debug
- --target property_timeout_test
- )
- run_cmake_command(GoogleTest-test1
- ${CMAKE_CTEST_COMMAND}
- -C Debug
- -L TEST1
- --no-label-summary
- )
- run_cmake_command(GoogleTest-test2
- ${CMAKE_CTEST_COMMAND}
- -C Debug
- -L TEST2
- --no-label-summary
- )
- run_cmake_command(GoogleTest-test-missing
- ${CMAKE_CTEST_COMMAND}
- -C Debug
- -R no_tests_defined
- --no-label-summary
- )
- run_cmake_command(GoogleTest-property-timeout1
- ${CMAKE_CTEST_COMMAND}
- -C Debug
- -R property_timeout\\.case_no_discovery
- --no-label-summary
- )
- run_cmake_command(GoogleTest-property-timeout2
- ${CMAKE_CTEST_COMMAND}
- -C Debug
- -R property_timeout\\.case_with_discovery
- --no-label-summary
- )
- endfunction()
- function(run_GoogleTestXML DISCOVERY_MODE)
- # Use a single build tree for a few tests without cleaning.
- set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/GoogleTestXML-build)
- set(RunCMake_TEST_NO_CLEAN 1)
- if(NOT RunCMake_GENERATOR_IS_MULTI_CONFIG)
- set(RunCMake_TEST_OPTIONS -DCMAKE_BUILD_TYPE=Debug)
- endif()
- file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}")
- file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}")
- run_cmake_with_options(GoogleTestXML -DCMAKE_GTEST_DISCOVER_TESTS_DISCOVERY_MODE=${DISCOVERY_MODE})
- run_cmake_command(GoogleTestXML-discovery
- ${CMAKE_COMMAND}
- --build .
- --config Debug
- --target xml_output
- )
- run_cmake_command(GoogleTestXML-result
- ${CMAKE_CTEST_COMMAND}
- -C Debug
- -R GoogleTestXML
- --no-label-summary
- )
- endfunction()
- function(run_GoogleTest_discovery_timeout DISCOVERY_MODE)
- # Use a single build tree for a few tests without cleaning.
- set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/GoogleTest-discovery-timeout)
- set(RunCMake_TEST_NO_CLEAN 1)
- if(NOT RunCMake_GENERATOR_IS_MULTI_CONFIG)
- set(RunCMake_TEST_OPTIONS -DCMAKE_BUILD_TYPE=Debug)
- endif()
- file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}")
- file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}")
- run_cmake_with_options(GoogleTestDiscoveryTimeout -DDISCOVERY_MODE=${DISCOVERY_MODE})
- set(RunCMake_TEST_OUTPUT_MERGE 1)
- run_cmake_command(GoogleTest-discovery-${DISCOVERY_MODE}-timeout-build
- ${CMAKE_COMMAND}
- --build .
- --config Debug
- --target discovery_timeout_test
- )
- set(RunCMake_TEST_OUTPUT_MERGE 0)
- run_cmake_command(GoogleTest-discovery-${DISCOVERY_MODE}-timeout-test
- ${CMAKE_CTEST_COMMAND}
- -C Debug
- -R discovery_timeout_test
- --no-label-sumary
- )
- endfunction()
- function(run_GoogleTest_discovery_multi_config)
- # Use a single build tree for a few tests without cleaning.
- set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/GoogleTest-discovery-multi-config)
- set(RunCMake_TEST_NO_CLEAN 1)
- file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}")
- file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}")
- run_cmake(GoogleTestDiscoveryMultiConfig)
- run_cmake_command(GoogleTest-build-release
- ${CMAKE_COMMAND}
- --build .
- --config Release
- --target configuration_gtest
- )
- run_cmake_command(GoogleTest-build-debug
- ${CMAKE_COMMAND}
- --build .
- --config Debug
- --target configuration_gtest
- )
- run_cmake_command(GoogleTest-configuration-release
- ${CMAKE_CTEST_COMMAND}
- -C Release
- -L CONFIG
- -N
- )
- run_cmake_command(GoogleTest-configuration-debug
- ${CMAKE_CTEST_COMMAND}
- -C Debug
- -L CONFIG
- -N
- )
- endfunction()
- foreach(DISCOVERY_MODE POST_BUILD PRE_TEST)
- message("Testing ${DISCOVERY_MODE} discovery mode via CMAKE_GTEST_DISCOVER_TESTS_DISCOVERY_MODE global override...")
- run_GoogleTest(${DISCOVERY_MODE})
- run_GoogleTestXML(${DISCOVERY_MODE})
- message("Testing ${DISCOVERY_MODE} discovery mode via DISCOVERY_MODE option...")
- run_GoogleTest_discovery_timeout(${DISCOVERY_MODE})
- endforeach()
- if(RunCMake_GENERATOR_IS_MULTI_CONFIG)
- message("Testing PRE_TEST discovery multi configuration...")
- run_GoogleTest_discovery_multi_config()
- endif()
|