CTest Module: Port from DartConfig to CTest Script
This commit is contained in:
parent
fd26efc2bd
commit
8b8f96f8e6
@ -44,6 +44,9 @@ block()
|
||||
${CMAKE_ROOT}/Modules/DartConfiguration.tcl.in
|
||||
${PROJECT_BINARY_DIR}/DartConfiguration.tcl )
|
||||
endif()
|
||||
configure_file(
|
||||
${CMAKE_ROOT}/Templates/CTestScript.cmake.in
|
||||
${PROJECT_BINARY_DIR}/CMakeFiles/CTestScript.cmake @ONLY)
|
||||
endblock()
|
||||
|
||||
#
|
||||
@ -73,7 +76,9 @@ if(NOT _CTEST_TARGETS_ADDED)
|
||||
# For all generators add basic testing targets.
|
||||
foreach(mode Experimental Nightly Continuous NightlyMemoryCheck)
|
||||
add_custom_target(${mode}
|
||||
${CMAKE_CTEST_COMMAND} ${__conf_types} -D ${mode}
|
||||
COMMAND
|
||||
${CMAKE_CTEST_COMMAND} ${__conf_types}
|
||||
-DMODEL=${mode} -S CMakeFiles/CTestScript.cmake -V
|
||||
USES_TERMINAL
|
||||
)
|
||||
set_property(TARGET ${mode} PROPERTY RULE_LAUNCH_CUSTOM "")
|
||||
@ -89,7 +94,10 @@ if(NOT _CTEST_TARGETS_ADDED)
|
||||
# missing purify
|
||||
)
|
||||
add_custom_target(${mode}${testtype}
|
||||
${CMAKE_CTEST_COMMAND} ${__conf_types} -D ${mode}${testtype}
|
||||
COMMAND
|
||||
${CMAKE_CTEST_COMMAND} ${__conf_types}
|
||||
-DMODEL=${mode} -DACTIONS=${testtype}
|
||||
-S CMakeFiles/CTestScript.cmake -V
|
||||
USES_TERMINAL
|
||||
)
|
||||
set_property(TARGET ${mode}${testtype} PROPERTY RULE_LAUNCH_CUSTOM "")
|
||||
|
167
Templates/CTestScript.cmake.in
Normal file
167
Templates/CTestScript.cmake.in
Normal file
@ -0,0 +1,167 @@
|
||||
# This file is configured by CMake automatically as CTestScript.cmake
|
||||
# If you choose not to use CMake, this file may be hand configured, by
|
||||
# filling in the required variables.
|
||||
|
||||
cmake_minimum_required(VERSION @CMAKE_VERSION@)
|
||||
|
||||
# CTest Start Step
|
||||
set(CTEST_SOURCE_DIRECTORY "@PROJECT_SOURCE_DIR@")
|
||||
set(CTEST_BINARY_DIRECTORY "@PROJECT_BINARY_DIR@")
|
||||
|
||||
# CTest Update Step
|
||||
set(CTEST_UPDATE_COMMAND "@UPDATE_COMMAND@")
|
||||
set(CTEST_UPDATE_OPTIONS "@UPDATE_OPTIONS@")
|
||||
set(CTEST_UPDATE_VERSION_ONLY "@CTEST_UPDATE_VERSION_ONLY@")
|
||||
set(CTEST_NIGHTLY_START_TIME "@NIGHTLY_START_TIME@")
|
||||
|
||||
# CVS options
|
||||
set(CTEST_CVS_COMMAND "@CVSCOMMAND@")
|
||||
set(CTEST_CVS_UPDATE_OPTIONS "@CVS_UPDATE_OPTIONS@")
|
||||
|
||||
# Subversion options
|
||||
set(CTEST_SVN_COMMAND "@SVNCOMMAND@")
|
||||
set(CTEST_SVN_OPTIONS "@CTEST_SVN_OPTIONS@")
|
||||
set(CTEST_SVN_UPDATE_OPTIONS "@SVN_UPDATE_OPTIONS@")
|
||||
|
||||
# Git options
|
||||
set(CTEST_GIT_COMMAND "@GITCOMMAND@")
|
||||
set(CTEST_GIT_INIT_SUBMODULES "@CTEST_GIT_INIT_SUBMODULES@")
|
||||
set(CTEST_GIT_UPDATE_CUSTOM "@CTEST_GIT_UPDATE_CUSTOM@")
|
||||
set(CTEST_GIT_UPDATE_OPTIONS "@GIT_UPDATE_OPTIONS@")
|
||||
|
||||
# Perforce options
|
||||
set(CTEST_P4_COMMAND "@P4COMMAND@")
|
||||
set(CTEST_P4_CLIENT "@CTEST_P4_CLIENT@")
|
||||
set(CTEST_P4_OPTIONS "@CTEST_P4_OPTIONS@")
|
||||
set(CTEST_P4_UPDATE_CUSTOM "@CTEST_P4_UPDATE_CUSTOM@")
|
||||
set(CTEST_P4_UPDATE_OPTIONS "@CTEST_P4_UPDATE_OPTIONS@")
|
||||
|
||||
# CTest Configure Step
|
||||
set(CTEST_CMAKE_GENERATOR "@CMAKE_GENERATOR@")
|
||||
set(CTEST_LABELS_FOR_SUBPROJECTS "@CTEST_LABELS_FOR_SUBPROJECTS@")
|
||||
|
||||
# CTest Build Step
|
||||
set(CTEST_CONFIGURATION_TYPE "@DEFAULT_CTEST_CONFIGURATION_TYPE@")
|
||||
set(CTEST_USE_LAUNCHERS "@CTEST_USE_LAUNCHERS@")
|
||||
|
||||
# CTest Test Step
|
||||
set(CTEST_RESOURCE_SPEC_FILE "@CTEST_RESOURCE_SPEC_FILE@")
|
||||
set(CTEST_TEST_LOAD "@CTEST_TEST_LOAD@")
|
||||
set(CTEST_TEST_TIMEOUT "@DART_TESTING_TIMEOUT@")
|
||||
|
||||
# CTest Coverage Step
|
||||
set(CTEST_COVERAGE_COMMAND "@COVERAGE_COMMAND@")
|
||||
set(CTEST_COVERAGE_EXTRA_FLAGS "@COVERAGE_EXTRA_FLAGS@")
|
||||
|
||||
# CTest MemCheck Step
|
||||
set(CTEST_MEMORYCHECK_COMMAND "@MEMORYCHECK_COMMAND@")
|
||||
set(CTEST_MEMORYCHECK_COMMAND_OPTIONS "@MEMORYCHECK_COMMAND_OPTIONS@")
|
||||
set(CTEST_MEMORYCHECK_TYPE "@MEMORYCHECK_TYPE@")
|
||||
set(CTEST_MEMORYCHECK_SANITIZER_OPTIONS "@MEMORYCHECK_SANITIZER_OPTIONS@")
|
||||
set(CTEST_MEMORYCHECK_SUPPRESSIONS_FILE "@MEMORYCHECK_SUPPRESSIONS_FILE@")
|
||||
|
||||
# CTest Submit Step
|
||||
set(CTEST_SITE "@SITE@")
|
||||
set(CTEST_BUILD_NAME "@BUILDNAME@")
|
||||
set(CTEST_SUBMIT_URL "@SUBMIT_URL@")
|
||||
set(CTEST_SUBMIT_INACTIVITY_TIMEOUT "@CTEST_SUBMIT_INACTIVITY_TIMEOUT@")
|
||||
set(CTEST_TLS_VERIFY "@CTEST_TLS_VERIFY@")
|
||||
set(CTEST_TLS_VERSION "@CTEST_TLS_VERSION@")
|
||||
|
||||
################################################################################
|
||||
|
||||
if(NOT MODEL)
|
||||
set(MODEL "Experimental")
|
||||
endif()
|
||||
|
||||
if(MODEL STREQUAL "NightlyMemoryCheck")
|
||||
set(MODEL "Nightly")
|
||||
set(ACTIONS "Start;Update;Configure;Build;MemCheck;Coverage;Submit")
|
||||
endif()
|
||||
|
||||
if(NOT ACTIONS)
|
||||
if(MODEL STREQUAL "Experimental")
|
||||
set(ACTIONS "Start;Configure;Build;Test;Coverage;Submit")
|
||||
else()
|
||||
set(ACTIONS "Start;Update;Configure;Build;Test;Coverage;Submit")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
################################################################################
|
||||
|
||||
set(_exit_code 0)
|
||||
|
||||
if("Start" IN_LIST ACTIONS OR NOT EXISTS "${CTEST_BINARY_DIRECTORY}/Testing/TAG")
|
||||
ctest_start("${MODEL}")
|
||||
else()
|
||||
ctest_start("${MODEL}" APPEND)
|
||||
endif()
|
||||
|
||||
if("Update" IN_LIST ACTIONS)
|
||||
ctest_update(RETURN_VALUE update_count)
|
||||
if(update_count LESS 0)
|
||||
math(EXPR _exit_code "${_exit_code} | 0x01")
|
||||
endif()
|
||||
if(MODEL STREQUAL "Continuous" AND update_count EQUAL 0)
|
||||
return()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if("Configure" IN_LIST ACTIONS)
|
||||
ctest_configure(RETURN_VALUE success)
|
||||
if(success LESS 0)
|
||||
math(EXPR _exit_code "${_exit_code} | 0x02")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if("Build" IN_LIST ACTIONS)
|
||||
ctest_read_custom_files("${CTEST_BINARY_DIRECTORY}")
|
||||
ctest_build(RETURN_VALUE success)
|
||||
if(NOT success EQUAL 0)
|
||||
math(EXPR _exit_code "${_exit_code} | 0x04")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if("Test" IN_LIST ACTIONS)
|
||||
ctest_read_custom_files("${CTEST_BINARY_DIRECTORY}")
|
||||
ctest_test(RETURN_VALUE success)
|
||||
if(NOT success EQUAL 0)
|
||||
math(EXPR _exit_code "${_exit_code} | 0x08")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if("Coverage" IN_LIST ACTIONS)
|
||||
ctest_read_custom_files("${CTEST_BINARY_DIRECTORY}")
|
||||
ctest_coverage(RETURN_VALUE success)
|
||||
if(NOT success EQUAL 0)
|
||||
math(EXPR _exit_code "${_exit_code} | 0x20")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if("MemCheck" IN_LIST ACTIONS)
|
||||
ctest_read_custom_files("${CTEST_BINARY_DIRECTORY}")
|
||||
ctest_memcheck(RETURN_VALUE success)
|
||||
if(NOT success EQUAL 0)
|
||||
math(EXPR _exit_code "${_exit_code} | 0x10")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
file(GLOB notes_files LIST_DIRECTORIES OFF
|
||||
"${CTEST_BINARY_DIRECTORY}/Testing/Notes/*")
|
||||
if(notes_files)
|
||||
list(APPEND CTEST_NOTES_FILES "${notes_files}")
|
||||
endif()
|
||||
|
||||
if("Submit" IN_LIST ACTIONS)
|
||||
ctest_read_custom_files("${CTEST_BINARY_DIRECTORY}")
|
||||
ctest_submit(
|
||||
RETRY_COUNT "@CTEST_SUBMIT_RETRY_COUNT@"
|
||||
RETRY_DELAY "@CTEST_SUBMIT_RETRY_DELAY@"
|
||||
RETURN_VALUE success
|
||||
)
|
||||
if(NOT success EQUAL 0)
|
||||
math(EXPR _exit_code "${_exit_code} | 0x40")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
cmake_language(EXIT "${_exit_code}")
|
Loading…
Reference in New Issue
Block a user