Skip to content

Commit 0784f77

Browse files
committed
"maOS Latest" runner seems to no longer support concatenated -D options in CTest—attempt to fix
1 parent eade622 commit 0784f77

1 file changed

Lines changed: 29 additions & 24 deletions

File tree

.github/scripts/test.cmake

Lines changed: 29 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -8,30 +8,35 @@ set(ENV{CTEST_OUTPUT_ON_FAILURE} "ON")
88
# CDash: https://cmake.org/cmake/help/book/mastering-cmake/chapter/CDash.html
99
# ctest -D Continuous
1010
# performs the start, update, configure, build, test, coverage, and submit commands.
11-
set(DoCovMemChk "-D ContinuousStart -D ContinuousUpdate -D ContinuousConfigure -D ContinuousBuild -D ContinuousTest")
12-
# MemoryCheck
13-
# Perform memory checks using Purify or valgrind.
14-
if ("$ENV{RUNNER_OS}" STREQUAL "Linux" )
15-
set(DoCovMemChk "${DoCovMemChk} -D ContinuousMemCheck")
11+
set(CTEST_STEPS Start Update Configure Build Test)
12+
13+
# Conditionally add MemCheck for Linux
14+
if("$ENV{RUNNER_OS}" STREQUAL "Linux")
15+
list(APPEND CTEST_STEPS MemCheck)
1616
endif()
17-
# Coverage
18-
# Collect source code coverage information using gcov or Bullseye.
19-
if ("$ENV{CC}" STREQUAL "gcc" )
20-
set(DoCovMemChk "${DoCovMemChk} -D ContinuousCoverage")
17+
18+
# Conditionally add Coverage for gcc
19+
if("$ENV{CC}" STREQUAL "gcc")
20+
list(APPEND CTEST_STEPS Coverage)
2121
endif()
22-
set(DoCovMemChk "${DoCovMemChk} -D ContinuousSubmit")
2322

24-
execute_process(
25-
COMMAND ctest -j ${N} -C $ENV{BUILD_TYPE} ${DoCovMemChk}
26-
WORKING_DIRECTORY build
27-
RESULT_VARIABLE result
28-
OUTPUT_VARIABLE output
29-
ERROR_VARIABLE output
30-
ECHO_OUTPUT_VARIABLE ECHO_ERROR_VARIABLE
31-
)
32-
if (NOT result EQUAL 0)
33-
string(REGEX MATCH "[0-9]+% tests.*[0-9.]+ sec.*$" test_results "${output}")
34-
string(REPLACE "\n" "%0A" test_results "${test_results}")
35-
message("::error::${test_results}")
36-
message(FATAL_ERROR "Running tests failed!")
37-
endif()
23+
# Always add Submit step
24+
list(APPEND CTEST_STEPS Submit)
25+
26+
# Execute each CTest step individually
27+
foreach(step IN LISTS CTEST_STEPS)
28+
execute_process(
29+
COMMAND ctest -j ${N} -C $ENV{BUILD_TYPE} -D Continuous${step}
30+
WORKING_DIRECTORY build
31+
RESULT_VARIABLE result
32+
OUTPUT_VARIABLE output
33+
ERROR_VARIABLE output
34+
ECHO_OUTPUT_VARIABLE ECHO_ERROR_VARIABLE
35+
)
36+
if(NOT result EQUAL 0)
37+
string(REGEX MATCH "[0-9]+% tests.*[0-9.]+ sec.*$" test_results "${output}")
38+
string(REPLACE "\n" "%0A" test_results "${test_results}")
39+
message("::error::${test_results}")
40+
message(FATAL_ERROR "Running ctest -D Continuous${step} failed!")
41+
endif()
42+
endforeach()

0 commit comments

Comments
 (0)