mirror of
https://github.com/reactos/CMake.git
synced 2024-12-20 02:28:25 +00:00
e378ba5f39
Add a test that verifies that when ctest -j 4 is called, at most, 4 tests are executed at any one time. The test works by running the same script as each of 100 tests. And then setting up test properties for DEPENDS, RUN_SERIAL, PROCESSORS and COST in order to get the tests to run in a semi-deterministic ordering, even in parallel. The script writes a file, sleeps for a bit, and then deletes the file. In the meantime, it counts files that currently exist, and emits output that triggers a test failure if the count of files is ever greater than 4. Prior to the commit that fixed bug #12904, this would result in a failed test because the output of some of the tests would indicate that more than 4 tests were running simultaneously. Now that this issue is resolved, this test will help guarantee that it stays resolved moving forward.
49 lines
997 B
CMake
49 lines
997 B
CMake
set(CTEST_RUN_CURRENT_SCRIPT 0)
|
|
|
|
if(NOT DEFINED basefilename)
|
|
message(FATAL_ERROR "pass -Dbasefilename=f1")
|
|
endif()
|
|
|
|
if(NOT DEFINED ext)
|
|
set(ext "jkqvxz")
|
|
endif()
|
|
|
|
if(NOT DEFINED sleep_interval)
|
|
set(sleep_interval 1)
|
|
endif()
|
|
|
|
get_filename_component(self_dir "${CMAKE_CURRENT_LIST_FILE}" PATH)
|
|
set(filename "${self_dir}/${basefilename}.${ext}")
|
|
|
|
# count files
|
|
file(GLOB f1 *.${ext})
|
|
list(LENGTH f1 c1)
|
|
message("c='${c1}'")
|
|
|
|
# write a new file
|
|
message("Writing file: filename='${filename}'")
|
|
file(WRITE "${filename}" "${filename}")
|
|
|
|
# count files again
|
|
file(GLOB f2 *.${ext})
|
|
list(LENGTH f2 c2)
|
|
message("c='${c2}'")
|
|
|
|
# snooze
|
|
message("Sleeping: sleep_interval='${sleep_interval}'")
|
|
ctest_sleep(${sleep_interval})
|
|
|
|
# count files again
|
|
file(GLOB f3 *.${ext})
|
|
list(LENGTH f3 c3)
|
|
message("c='${c3}'")
|
|
|
|
# delete the file we wrote earlier
|
|
message("Removing file: filename='${filename}'")
|
|
file(REMOVE "${filename}")
|
|
|
|
# count files again
|
|
file(GLOB f4 *.${ext})
|
|
list(LENGTH f4 c4)
|
|
message("c='${c4}'")
|