From a8090ef04edb0294e46b30f8c6a5413fa2b2f488 Mon Sep 17 00:00:00 2001 From: Queuze <58829992+lucaslima430@users.noreply.github.com> Date: Sun, 1 Nov 2026 00:00:33 -0300 Subject: [PATCH] test(cmake): split SELF conversion checks --- CMakeLists.txt | 20 ++++++++++++++++++++ tools/tests/test_unwrap_self.py | 3 ++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b65c331ce12c..6e50038366b7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -471,6 +471,26 @@ if(BUILD_TESTING) endif() endif() endforeach() + set(unwrap_self_test_source "${CMAKE_CURRENT_SOURCE_DIR}/tools/tests/test_unwrap_self.py") + set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS "${unwrap_self_test_source}") + file(STRINGS "${unwrap_self_test_source}" unwrap_self_cases REGEX "^class |^ def test_") + set(unwrap_self_first TRUE) + foreach(test_case IN LISTS unwrap_self_cases) + if(test_case MATCHES "^class ([A-Za-z0-9_]+)") + set(unwrap_self_class "${CMAKE_MATCH_1}") + else() + string(REGEX REPLACE "^ def (test_[A-Za-z0-9_]+).*" "\\1" test_case "${test_case}") + if(unwrap_self_first) + set_tests_properties(unwrap_self PROPERTIES + ENVIRONMENT "UNWRAP_SELF_TEST=${unwrap_self_class}.${test_case}" TIMEOUT 30) + set(unwrap_self_first FALSE) + else() + add_test(NAME unwrap_self_${unwrap_self_class}_${test_case} COMMAND ${Python3_EXECUTABLE} + "${unwrap_self_test_source}" "${unwrap_self_class}.${test_case}") + set_tests_properties(unwrap_self_${unwrap_self_class}_${test_case} PROPERTIES TIMEOUT 30) + endif() + endif() + endforeach() add_test(NAME tools_headers_manifest COMMAND ${Python3_EXECUTABLE} ${CMAKE_SOURCE_DIR}/tools/tests/test_public_headers_manifest.py) set_tests_properties(tools_headers_manifest PROPERTIES TIMEOUT 20) add_test(NAME conventions_pr_template COMMAND ${Python3_EXECUTABLE} diff --git a/tools/tests/test_unwrap_self.py b/tools/tests/test_unwrap_self.py index 5184bf189468..3d5fd397ec8f 100644 --- a/tools/tests/test_unwrap_self.py +++ b/tools/tests/test_unwrap_self.py @@ -1658,4 +1658,5 @@ def test_missing_reference_helper_keeps_existing_error_handling(self): if __name__ == "__main__": - unittest.main() + selected_test = os.environ.get("UNWRAP_SELF_TEST") + unittest.main(argv=[sys.argv[0], selected_test] if selected_test else None)