mirror of
https://gitlab.kitware.com/cmake/cmake.git
synced 2026-09-25 04:09:36 +03:00
Merge topic 'test-cxxmodules-split'
9da070b31fTests/CXXModulesCompile: shorten `non-trivial-collation-order` tests93449833ffRunCMake/CXXModulesCompile: split into 3 variants Acked-by: Kitware Robot <kwrobot@kitware.com> Merge-request: !12098
This commit is contained in:
@@ -882,13 +882,22 @@ set_property(TEST RunCMake.DependencyGraph APPEND PROPERTY LABELS "Fortran")
|
||||
add_RunCMake_test(CXXModules
|
||||
-DCMake_TEST_CXX_STDLIB_MODULES_JSON=${CMake_TEST_CXX_STDLIB_MODULES_JSON}
|
||||
)
|
||||
add_RunCMake_test(CXXModulesCompile
|
||||
-DCMake_TEST_MODULE_COMPILATION=${CMake_TEST_MODULE_COMPILATION}
|
||||
-DCMake_TEST_MODULE_COMPILATION_RULES=${CMake_TEST_MODULE_COMPILATION_RULES}
|
||||
-DCMake_TEST_CXX_STDLIB_MODULES_JSON=${CMake_TEST_CXX_STDLIB_MODULES_JSON}
|
||||
)
|
||||
set_property(TEST RunCMake.CXXModules RunCMake.CXXModulesCompile APPEND
|
||||
set_property(TEST RunCMake.CXXModules APPEND
|
||||
PROPERTY LABELS "CXXModules")
|
||||
function (add_RunCMake_CXXModulesCompile_test variant)
|
||||
add_RunCMake_test(CXXModulesCompile${variant}
|
||||
TEST_DIR CXXModulesCompile
|
||||
-DCMake_TEST_MODULE_VARIANT=${variant}
|
||||
-DCMake_TEST_MODULE_COMPILATION=${CMake_TEST_MODULE_COMPILATION}
|
||||
-DCMake_TEST_MODULE_COMPILATION_RULES=${CMake_TEST_MODULE_COMPILATION_RULES}
|
||||
-DCMake_TEST_CXX_STDLIB_MODULES_JSON=${CMake_TEST_CXX_STDLIB_MODULES_JSON}
|
||||
)
|
||||
set_property(TEST RunCMake.CXXModulesCompile${variant} APPEND
|
||||
PROPERTY LABELS "CXXModules")
|
||||
endfunction ()
|
||||
add_RunCMake_CXXModulesCompile_test(BuildBehavior)
|
||||
add_RunCMake_CXXModulesCompile_test(BuildImportExport)
|
||||
add_RunCMake_CXXModulesCompile_test(Install)
|
||||
|
||||
# ctresalloc links against CMakeLib and CTestLib, which means it can't be built
|
||||
# if CMake_TEST_EXTERNAL_CMAKE is activated (the compiler might be different.)
|
||||
|
||||
@@ -76,6 +76,35 @@ function (run_cxx_module_test directory)
|
||||
list(POP_FRONT ARGN test_name)
|
||||
endif ()
|
||||
|
||||
# Split the test cases into two suites: those for builds and those for
|
||||
# installs.
|
||||
set(is_for_install 0)
|
||||
if (RunCMake_CXXModules_INSTALL OR
|
||||
RunCMake_CXXModules_NEEDS_INSTALL OR
|
||||
test_name MATCHES "install")
|
||||
set(is_for_install 1)
|
||||
endif ()
|
||||
# Build variants
|
||||
if (CMake_TEST_MODULE_VARIANT MATCHES "Build")
|
||||
if (is_for_install)
|
||||
return ()
|
||||
endif ()
|
||||
# Further split the test cases into those for import/export and "behavior".
|
||||
set(is_import_export 0)
|
||||
if (test_name MATCHES "^(imp|exp)-")
|
||||
set(is_import_export 1)
|
||||
endif ()
|
||||
if (CMake_TEST_MODULE_VARIANT STREQUAL "BuildBehavior" AND is_import_export)
|
||||
return ()
|
||||
endif ()
|
||||
if (CMake_TEST_MODULE_VARIANT STREQUAL "BuildImportExport" AND NOT is_import_export)
|
||||
return ()
|
||||
endif ()
|
||||
endif ()
|
||||
if (CMake_TEST_MODULE_VARIANT STREQUAL "Install" AND NOT is_for_install)
|
||||
return ()
|
||||
endif ()
|
||||
|
||||
set(RunCMake_TEST_SOURCE_DIR "${CMAKE_CURRENT_LIST_DIR}/${directory}")
|
||||
set(RunCMake_TEST_BINARY_DIR "${RunCMake_BINARY_DIR}/${test_name}-build")
|
||||
|
||||
@@ -170,8 +199,8 @@ if ("named" IN_LIST CMake_TEST_MODULE_COMPILATION)
|
||||
run_cxx_module_test(object-library)
|
||||
run_cxx_module_test(generated)
|
||||
run_cxx_module_test(deep-chain)
|
||||
run_cxx_module_test(non-trivial-collation-order)
|
||||
run_cxx_module_test(non-trivial-collation-order-randomized)
|
||||
run_cxx_module_test(non-triv-coll)
|
||||
run_cxx_module_test(non-triv-coll-rando)
|
||||
run_cxx_module_test(duplicate)
|
||||
set(RunCMake_CXXModules_NO_TEST 1)
|
||||
if ("collation" IN_LIST CMake_TEST_MODULE_COMPILATION)
|
||||
@@ -387,4 +416,6 @@ set(RunCMake_CXXModules_INSTALL 0)
|
||||
|
||||
set(test_set mods-from-ninja)
|
||||
run_cxx_module_test_ninja("exp-${test_set}")
|
||||
set(RunCMake_CXXModules_NEEDS_INSTALL 1)
|
||||
run_cxx_module_test(imp-mods "imp-${test_set}" "-DCMAKE_PREFIX_PATH=${RunCMake_BINARY_DIR}/exp-${test_set}-ninja-install" -DFROM_NINJA=1)
|
||||
unset(RunCMake_CXXModules_NEEDS_INSTALL)
|
||||
|
||||
+2
-2
@@ -5,5 +5,5 @@ include("${CMAKE_SOURCE_DIR}/../cxx-modules-rules.cmake")
|
||||
|
||||
set(non_trivial_collation_order_randomized TRUE)
|
||||
|
||||
add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/../non-trivial-collation-order/"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/non-trivial-collation-order")
|
||||
add_subdirectory("${CMAKE_CURRENT_SOURCE_DIR}/../non-triv-coll/"
|
||||
"${CMAKE_CURRENT_BINARY_DIR}/non-triv-coll")
|
||||
Reference in New Issue
Block a user