mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-06 05:40:54 -06:00
There's no need to check if flushing is needed after every command is added to the variable holding the script content. It is enough to only check once per test name. This simplifies the flushing logic, removing the need for a separate flush_script() command. Previously, we were not clearing the flushed script contents in all cases, but this is now rigorously enforced at the one location where flushing is performed. Also simplify the flushing of the list of test names, since that too doesn't need a separate command. It is simpler and safer to handle that directly inline where the one call to flush_tests_buffer() was previously being made. Fixes: #26431
35 lines
1.2 KiB
CMake
35 lines
1.2 KiB
CMake
set(expected_number_of_tests 12)
|
|
|
|
# Check the flushing of the test names buffer
|
|
list(LENGTH flush_script_test_TESTS num_test_names)
|
|
if(NOT num_test_names EQUAL expected_number_of_tests)
|
|
message(FATAL_ERROR
|
|
"Test name list has wrong number of test names:\n"
|
|
" Expected: ${expected_number_of_tests}\n"
|
|
" Actual: ${num_test_names}"
|
|
)
|
|
endif()
|
|
|
|
# Check the flushing of the script content variable.
|
|
# Note that flushing errors would repeat a test name, so such errors are not
|
|
# uncovered by checking the name buffer flushing above.
|
|
|
|
# PRE_TEST can have a config-specific tests file, POST_BUILD never does
|
|
set(tests_file "@CMAKE_CURRENT_BINARY_DIR@/flush_script_test[1]_tests-Debug.cmake")
|
|
if(NOT EXISTS "${tests_file}")
|
|
set(tests_file "@CMAKE_CURRENT_BINARY_DIR@/flush_script_test[1]_tests.cmake")
|
|
endif()
|
|
if(NOT EXISTS "${tests_file}")
|
|
message(FATAL_ERROR "Tests file is missing")
|
|
endif()
|
|
|
|
file(STRINGS "${tests_file}" add_test_lines REGEX "^add_test" ENCODING UTF-8)
|
|
list(LENGTH add_test_lines num_add_test_lines)
|
|
if(NOT num_add_test_lines EQUAL expected_number_of_tests)
|
|
message(FATAL_ERROR
|
|
"Test script has wrong number of add_test() calls:\n"
|
|
" Expected: ${expected_number_of_tests}\n"
|
|
" Actual: ${num_add_test_lines}"
|
|
)
|
|
endif()
|