Skip to content

Commit 5cc8361

Browse files
Address API change in Python 3.12 unittest module (#4852)
Starting with Python 3.12, package `unittest` returns exit code 5 when all tests are skipped. By default, CTest treats any non-zero exit code as a failure. This can be remediated by setting test property [`SKIP_RETURN_CODE`](https://cmake.org/cmake/help/latest/prop_test/SKIP_RETURN_CODE.html) to 5. Description of changes: - skipped tests are no longer treated as failures by CTest
2 parents da47129 + 9f221cf commit 5cc8361

File tree

5 files changed

+16
-13
lines changed

5 files changed

+16
-13
lines changed

testsuite/python/CMakeLists.txt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,6 @@ function(python_test)
100100
add_test(${TEST_NAME} ${CMAKE_BINARY_DIR}/pypresso ${PYPRESSO_OPTIONS}
101101
${TEST_FILE_CONFIGURED} ${TEST_ARGUMENTS})
102102
endif()
103-
set_tests_properties(${TEST_NAME} PROPERTIES PROCESSORS ${TEST_NUM_PROC}
104-
DEPENDS "${TEST_DEPENDS}")
105103

106104
if(${TEST_GPU_SLOTS} GREATER 0 AND ESPRESSO_BUILD_WITH_CUDA)
107105
set_property(TEST ${TEST_NAME} PROPERTY RESOURCE_GROUPS
@@ -117,7 +115,10 @@ function(python_test)
117115
if(${TEST_NUM_PROC} EQUAL 3)
118116
list(APPEND TEST_LABELS "parallel_odd")
119117
endif()
120-
set_tests_properties(${TEST_NAME} PROPERTIES LABELS "${TEST_LABELS}")
118+
119+
set_tests_properties(
120+
${TEST_NAME} PROPERTIES PROCESSORS ${TEST_NUM_PROC} SKIP_RETURN_CODE 5
121+
DEPENDS "${TEST_DEPENDS}" LABELS "${TEST_LABELS}")
121122

122123
set(python_tests ${python_tests} ${TEST_FILE_CONFIGURED} PARENT_SCOPE)
123124
endfunction(python_test)

testsuite/scripts/CMakeLists.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,9 @@ macro(PYTHON_SCRIPTS_TEST)
3939
string(REGEX REPLACE "^test_" "${TEST_TYPE}_" TEST_NAME ${TEST_NAME})
4040
add_test(${TEST_NAME} ${CMAKE_BINARY_DIR}/pypresso ${PYPRESSO_OPTIONS}
4141
${TEST_FILE_CONFIGURED})
42-
set_tests_properties(${TEST_NAME} PROPERTIES FIXTURES_REQUIRED
43-
IMPORTLIB_WRAPPER)
44-
set_tests_properties(${TEST_NAME} PROPERTIES LABELS "${TEST_LABELS}")
42+
set_tests_properties(
43+
${TEST_NAME} PROPERTIES FIXTURES_REQUIRED IMPORTLIB_WRAPPER
44+
SKIP_RETURN_CODE 5 LABELS "${TEST_LABELS}")
4545
if("gpu" IN_LIST TEST_LABELS AND ESPRESSO_BUILD_WITH_CUDA)
4646
set_tests_properties(${TEST_NAME} PROPERTIES RESOURCE_LOCK GPU)
4747
endif()

testsuite/scripts/benchmarks/CMakeLists.txt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,9 @@ endfunction(BENCHMARK_TEST)
2525
# configure Python module importlib_wrapper.py
2626
add_test(importlib_wrapper ${CMAKE_BINARY_DIR}/pypresso ${PYPRESSO_OPTIONS}
2727
${TEST_FILE_CONFIGURED_IMPORTLIB_WRAPPER})
28-
set_tests_properties(importlib_wrapper PROPERTIES FIXTURES_SETUP
29-
IMPORTLIB_WRAPPER)
28+
set_tests_properties(
29+
importlib_wrapper PROPERTIES FIXTURES_SETUP IMPORTLIB_WRAPPER
30+
SKIP_RETURN_CODE 5)
3031
set(benchmarks_tests ${benchmarks_tests}
3132
${TEST_FILE_CONFIGURED_IMPORTLIB_WRAPPER} PARENT_SCOPE)
3233
configure_file(../importlib_wrapper.py

testsuite/scripts/samples/CMakeLists.txt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,9 @@ endfunction(SAMPLE_TEST)
2525
# configure Python module importlib_wrapper.py
2626
add_test(importlib_wrapper ${CMAKE_BINARY_DIR}/pypresso ${PYPRESSO_OPTIONS}
2727
${TEST_FILE_CONFIGURED_IMPORTLIB_WRAPPER})
28-
set_tests_properties(importlib_wrapper PROPERTIES FIXTURES_SETUP
29-
IMPORTLIB_WRAPPER)
28+
set_tests_properties(
29+
importlib_wrapper PROPERTIES FIXTURES_SETUP IMPORTLIB_WRAPPER
30+
SKIP_RETURN_CODE 5)
3031
set(samples_tests ${samples_tests} ${TEST_FILE_CONFIGURED_IMPORTLIB_WRAPPER}
3132
PARENT_SCOPE)
3233
configure_file(../importlib_wrapper.py

testsuite/scripts/tutorials/CMakeLists.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@ add_test(importlib_wrapper ${CMAKE_BINARY_DIR}/pypresso ${PYPRESSO_OPTIONS}
2828
${TEST_FILE_CONFIGURED_IMPORTLIB_WRAPPER})
2929
add_test(convert ${CMAKE_BINARY_DIR}/pypresso ${PYPRESSO_OPTIONS}
3030
${CMAKE_CURRENT_BINARY_DIR}/test_convert.py)
31-
set_tests_properties(importlib_wrapper PROPERTIES FIXTURES_SETUP
32-
IMPORTLIB_WRAPPER)
33-
set_tests_properties(convert PROPERTIES FIXTURES_SETUP IMPORTLIB_WRAPPER)
31+
set_tests_properties(
32+
importlib_wrapper convert PROPERTIES FIXTURES_SETUP IMPORTLIB_WRAPPER
33+
SKIP_RETURN_CODE 5)
3434
set(tutorials_tests ${tutorials_tests} ${TEST_FILE_CONFIGURED_IMPORTLIB_WRAPPER}
3535
PARENT_SCOPE)
3636
configure_file(../importlib_wrapper.py

0 commit comments

Comments
 (0)