ctest: Include ChangeId in Update.xml

This commit is contained in:
Zack Galbreath 2019-04-23 14:28:28 -04:00
parent d170a3177f
commit 95db11fdb1
6 changed files with 54 additions and 0 deletions

View File

@ -199,6 +199,10 @@ int cmCTestUpdateHandler::ProcessHandler()
xml.Element("UpdateCommand", vc->GetUpdateCommandLine());
xml.Element("UpdateType",
cmCTestUpdateHandlerUpdateToString(this->UpdateType));
std::string changeId = this->CTest->GetCTestConfiguration("ChangeId");
if (!changeId.empty()) {
xml.Element("ChangeId", changeId);
}
bool loadedMods = vc->WriteXML(xml);

View File

@ -259,6 +259,7 @@ add_RunCMake_test(ctest_submit)
add_RunCMake_test(ctest_test)
add_RunCMake_test(ctest_disabled_test)
add_RunCMake_test(ctest_skipped_test)
add_RunCMake_test(ctest_update -DGIT_EXECUTABLE=${GIT_EXECUTABLE})
add_RunCMake_test(ctest_upload)
add_RunCMake_test(ctest_fixtures)
add_RunCMake_test(file)

View File

@ -0,0 +1,4 @@
cmake_minimum_required(VERSION 3.1)
project(CTestTest@CASE_NAME@ NONE)
include(CTest)
@CASE_CMAKELISTS_SUFFIX_CODE@

View File

@ -0,0 +1,17 @@
include(RunCTest)
set(CASE_CTEST_UPDATE_ARGS "")
function(run_ctest_update CASE_NAME)
set(CASE_CTEST_UPDATE_ARGS "${ARGN}")
run_ctest(${CASE_NAME})
endfunction()
run_ctest_update(TestQuiet QUIET)
function(run_TestChangeId)
set(CASE_TEST_PREFIX_CODE [[
set(CTEST_CHANGE_ID "<>1")
]])
run_ctest(TestChangeId)
endfunction()
run_TestChangeId()

View File

@ -0,0 +1,12 @@
file(GLOB update_xml_file "${RunCMake_TEST_BINARY_DIR}/Testing/*/Update.xml")
if(update_xml_file)
file(READ "${update_xml_file}" update_xml LIMIT 4096)
if(NOT update_xml MATCHES [[ChangeId="&lt;&gt;1"]])
string(REPLACE "\n" "\n " update_xml " ${update_xml}")
set(RunCMake_TEST_FAILED
"Update.xml does not have expected ChangeId:\n${update_xml}"
)
endif()
else()
set(RunCMake_TEST_FAILED "Update.xml not found")
endif()

View File

@ -0,0 +1,16 @@
cmake_minimum_required(VERSION 3.1)
@CASE_TEST_PREFIX_CODE@
set(CTEST_SITE "test-site")
set(CTEST_BUILD_NAME "test-build-name")
set(CTEST_SOURCE_DIRECTORY "@RunCMake_BINARY_DIR@/@CASE_NAME@")
set(CTEST_BINARY_DIRECTORY "@RunCMake_BINARY_DIR@/@CASE_NAME@-build")
set(CTEST_CMAKE_GENERATOR "@RunCMake_GENERATOR@")
set(CTEST_CMAKE_GENERATOR_PLATFORM "@RunCMake_GENERATOR_PLATFORM@")
set(CTEST_CMAKE_GENERATOR_TOOLSET "@RunCMake_GENERATOR_TOOLSET@")
set(CTEST_BUILD_CONFIGURATION "$ENV{CMAKE_CONFIG_TYPE}")
set(CTEST_UPDATE_COMMAND "@GIT_EXECUTABLE@")
set(ctest_test_args "@CASE_CTEST_UPDATE_ARGS@")
ctest_start(Experimental)
ctest_update(${ctest_update_args})