mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-09 15:20:56 -06:00
Tests: Refactor contract test activation
Use separate `CMake_TEST_CONTRACT_<project>` variables for each test. Make the set of possible tests match what is in the source tree.
This commit is contained in:
@@ -3388,31 +3388,30 @@ ${CMake_BINARY_DIR}/bin/cmake -DDIR=dev -P ${CMake_SOURCE_DIR}/Utilities/Release
|
||||
set_property(TEST CMakeWizardTest PROPERTY PASS_REGULAR_EXPRESSION
|
||||
"The \"cmake -i\" wizard mode is no longer supported.")
|
||||
|
||||
# If the cache variable CMAKE_CONTRACT_PROJECTS is set
|
||||
# then the dashboard will run a contract with CMake test of that
|
||||
# name. For example CMAKE_CONTRACT_PROJECTS = vtk542 would run
|
||||
# the vtk542 contract test.
|
||||
# For each Contract test, the project should provide a directory
|
||||
# with at least one CMakeLists.txt file that uses ExternalProject
|
||||
# to download and configure the project. The directory should also
|
||||
# contain a RunTest.cmake file that has a single set of the format:
|
||||
# set(project_RUN_TEST testToRun)
|
||||
# The testToRun should be a test executable that can be run to
|
||||
# smoke test the build.
|
||||
foreach(project ${CMAKE_CONTRACT_PROJECTS})
|
||||
include(Contracts/${project}/RunTest.cmake)
|
||||
ADD_TEST_MACRO(Contracts.${project}
|
||||
${${project}_RUN_TEST})
|
||||
# Contract test timeout in seconds.
|
||||
# Default to 6 hours.
|
||||
if(DEFINED ${project}_TEST_TIMEOUT)
|
||||
set(timeout ${${project}_TEST_TIMEOUT})
|
||||
elseif(CMAKE_CONTRACT_TEST_TIMEOUT_DEFAULT)
|
||||
set(timeout ${CMAKE_CONTRACT_TEST_TIMEOUT_DEFAULT})
|
||||
else()
|
||||
set(timeout 21600)
|
||||
# Define a set of "contract" tests, each activated by a cache entry
|
||||
# named "CMake_TEST_CONTRACT_<project>". For each Contract test,
|
||||
# the project should provide a directory with a CMakeLists.txt file
|
||||
# that uses ExternalProject to download and configure the project.
|
||||
# The directory should also contain a Configure.cmake file that
|
||||
# sets "CMake_TEST_CONTRACT_<project>_<var>" variables to configure
|
||||
# the code below.
|
||||
foreach(project
|
||||
Trilinos
|
||||
VTK
|
||||
)
|
||||
if(CMake_TEST_CONTRACT_${project})
|
||||
include(Contracts/${project}/Configure.cmake)
|
||||
ADD_TEST_MACRO(Contracts.${project} ${CMake_TEST_CONTRACT_${project}_RUN_TEST})
|
||||
# The external projects may take a long time to build.
|
||||
if(DEFINED CMake_TEST_CONTRACT_${project}_TIMEOUT)
|
||||
set(timeout ${CMake_TEST_CONTRACT_${project}_TIMEOUT})
|
||||
elseif(CMake_TEST_CONTRACT_DEFAULT_TIMEOUT)
|
||||
set(timeout ${CMake_TEST_CONTRACT_DEFAULT_TIMEOUT})
|
||||
else()
|
||||
set(timeout 21600)
|
||||
endif()
|
||||
set_property(TEST Contracts.${project} PROPERTY TIMEOUT "${timeout}")
|
||||
endif()
|
||||
set_tests_properties(Contracts.${project} PROPERTIES TIMEOUT ${timeout})
|
||||
endforeach()
|
||||
|
||||
if(TEST_CompileCommandOutput)
|
||||
|
||||
@@ -4,4 +4,4 @@ set(dir "${CMAKE_CURRENT_BINARY_DIR}/Contracts/${project}")
|
||||
set(exe "${CMAKE_COMMAND}")
|
||||
set(args -P "${dir}/ValidateBuild.cmake")
|
||||
|
||||
set(Trilinos_RUN_TEST ${exe} ${args})
|
||||
set(CMake_TEST_CONTRACT_Trilinos_RUN_TEST ${exe} ${args})
|
||||
@@ -1,3 +1,3 @@
|
||||
set(exe "$ENV{HOME}/.cmake/Contracts/VTK/VTK-build/bin/vtkCommonCoreCxxTests")
|
||||
set(args otherArrays)
|
||||
set(VTK_RUN_TEST ${exe} ${args})
|
||||
set(CMake_TEST_CONTRACT_VTK_RUN_TEST ${exe} ${args})
|
||||
Reference in New Issue
Block a user