diff options
author | Alexander Lohnau <alexander.lohnau@gmx.de> | 2024-01-01 16:29:19 +0100 |
---|---|---|
committer | Alexander Lohnau <alexander.lohnau@gmx.de> | 2024-01-03 15:57:17 +0000 |
commit | 76809c20c3e01f3023cd4b51ae1b6295c259cb45 (patch) | |
tree | 5c1cf8f9cf1d188228eb8da7b3bed28e2977c0be | |
parent | 38616ad8aecfa0c550e5f848e652fec382f45365 (diff) |
Optimize checks for filesystem in tests
When we did determine this using cmake, we can reuse the value.
On my PC, this saves half a second for each test. With tests being run on CI, this adds up!
Even more, we checked the compilation in each test, even if the test did
not require the std::filesystem API
-rw-r--r-- | CMakeLists.txt | 3 | ||||
-rw-r--r-- | ClazyTests.cmake | 4 | ||||
-rwxr-xr-x | dev-scripts/generate.py | 4 | ||||
-rwxr-xr-x | tests/run_tests.py | 2 |
4 files changed, 9 insertions, 4 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 1e5d6f39..20ae69fc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -98,8 +98,9 @@ set(CXX_STANDARD_REQUIRED ON) message("Looking for std::filesystem support...") try_run(FILESYSTEM_RUN_RESULT COMPILE_RESULT ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_LIST_DIR}/.cmake_has_filesystem_test.cpp OUTPUT_VARIABLE foo CXX_STANDARD 17 CXX_STANDARD_REQUIRED true) -if (FILESYSTEM_RUN_RESULT EQUAL 0 AND COMPILE_RESULT) +if (FILESYSTEM_RUN_RESULT) add_definitions(-DHAS_STD_FILESYSTEM) + set(HAS_STD_FILESYSTEM TRUE) endif() include(ClazySources.cmake) diff --git a/ClazyTests.cmake b/ClazyTests.cmake index ec67197e..b716f28a 100644 --- a/ClazyTests.cmake +++ b/ClazyTests.cmake @@ -2,7 +2,9 @@ macro(add_clazy_test name) add_test(NAME ${name} COMMAND python3 run_tests.py ${name} --verbose WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/tests/) - set_property(TEST ${name} PROPERTY ENVIRONMENT "CLAZYPLUGIN_CXX=$<TARGET_FILE:ClazyPlugin>;CLAZYSTANDALONE_CXX=$<TARGET_FILE:clazy-standalone>") + set_property(TEST ${name} PROPERTY + ENVIRONMENT "CLAZYPLUGIN_CXX=$<TARGET_FILE:ClazyPlugin>;CLAZYSTANDALONE_CXX=$<TARGET_FILE:clazy-standalone>;$<$<BOOL:${HAS_STD_FILESYSTEM}>:CLAZY_HAS_FILESYSTEM=>" + ) endmacro() add_clazy_test(assert-with-side-effects) diff --git a/dev-scripts/generate.py b/dev-scripts/generate.py index 4ef3c684..09b69fe7 100755 --- a/dev-scripts/generate.py +++ b/dev-scripts/generate.py @@ -475,7 +475,9 @@ def generate_ctest(checks): contents = """# This file was autogenerated by running: ./dev-scripts/generate.py --generate\n macro(add_clazy_test name) add_test(NAME ${name} COMMAND python3 run_tests.py ${name} --verbose WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/tests/) - set_property(TEST ${name} PROPERTY ENVIRONMENT "CLAZYPLUGIN_CXX=$<TARGET_FILE:ClazyPlugin>;CLAZYSTANDALONE_CXX=$<TARGET_FILE:clazy-standalone>") + set_property(TEST ${name} PROPERTY + ENVIRONMENT "CLAZYPLUGIN_CXX=$<TARGET_FILE:ClazyPlugin>;CLAZYSTANDALONE_CXX=$<TARGET_FILE:clazy-standalone>;$<$<BOOL:${HAS_STD_FILESYSTEM}>:CLAZY_HAS_FILESYSTEM=>" + ) endmacro()\n """ for c in checks: diff --git a/tests/run_tests.py b/tests/run_tests.py index a76b3dee..ca33e47e 100755 --- a/tests/run_tests.py +++ b/tests/run_tests.py @@ -899,7 +899,7 @@ def try_compile(filename): if isLinux(): # On Windows and macOS we have recent enough toolchains - _hasStdFileSystem = try_compile('../.cmake_has_filesystem_test.cpp') + _hasStdFileSystem = 'CLAZY_HAS_FILESYSTEM' in os.environ or try_compile('../.cmake_has_filesystem_test.cpp') if 'CLAZY_NO_WERROR' in os.environ: del os.environ['CLAZY_NO_WERROR'] |