ctest_memcheck: generate DynamicAnalysis-Test.xml
as well
This is useful so that memcheck results also show up as test results on CDash. It will be submitted with the other `MemCheck` parts. Fixes: #22190
This commit is contained in:
parent
9c8e25c5fd
commit
ce44c2cec3
@ -30,7 +30,8 @@ The options are:
|
|||||||
Build = ctest_build results, in Build.xml
|
Build = ctest_build results, in Build.xml
|
||||||
Test = ctest_test results, in Test.xml
|
Test = ctest_test results, in Test.xml
|
||||||
Coverage = ctest_coverage results, in Coverage.xml
|
Coverage = ctest_coverage results, in Coverage.xml
|
||||||
MemCheck = ctest_memcheck results, in DynamicAnalysis.xml
|
MemCheck = ctest_memcheck results, in DynamicAnalysis.xml and
|
||||||
|
DynamicAnalysis-Test.xml
|
||||||
Notes = Files listed by CTEST_NOTES_FILES, in Notes.xml
|
Notes = Files listed by CTEST_NOTES_FILES, in Notes.xml
|
||||||
ExtraFiles = Files listed by CTEST_EXTRA_SUBMIT_FILES
|
ExtraFiles = Files listed by CTEST_EXTRA_SUBMIT_FILES
|
||||||
Upload = Files prepared for upload by ctest_upload(), in Upload.xml
|
Upload = Files prepared for upload by ctest_upload(), in Upload.xml
|
||||||
|
6
Help/release/dev/ctest_memcheck-generate-test.xml.rst
Normal file
6
Help/release/dev/ctest_memcheck-generate-test.xml.rst
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
ctest_memcheck-generate-test.xml
|
||||||
|
--------------------------------
|
||||||
|
|
||||||
|
* The :command:`ctest_memcheck` command now also generates a
|
||||||
|
`DynamicAnalysis-Test.xml` file which may be used to submit test results to
|
||||||
|
CDash.
|
@ -804,6 +804,7 @@ int cmCTestSubmitHandler::ProcessHandler()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
this->CTest->AddIfExists(cmCTest::PartMemCheck, "DynamicAnalysis.xml");
|
this->CTest->AddIfExists(cmCTest::PartMemCheck, "DynamicAnalysis.xml");
|
||||||
|
this->CTest->AddIfExists(cmCTest::PartMemCheck, "DynamicAnalysis-Test.xml");
|
||||||
this->CTest->AddIfExists(cmCTest::PartMemCheck, "Purify.xml");
|
this->CTest->AddIfExists(cmCTest::PartMemCheck, "Purify.xml");
|
||||||
this->CTest->AddIfExists(cmCTest::PartNotes, "Notes.xml");
|
this->CTest->AddIfExists(cmCTest::PartNotes, "Notes.xml");
|
||||||
this->CTest->AddIfExists(cmCTest::PartUpload, "Upload.xml");
|
this->CTest->AddIfExists(cmCTest::PartUpload, "Upload.xml");
|
||||||
|
@ -705,6 +705,21 @@ bool cmCTestTestHandler::GenerateXML()
|
|||||||
this->GenerateCTestXML(xml);
|
this->GenerateCTestXML(xml);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this->MemCheck) {
|
||||||
|
cmGeneratedFileStream xmlfile;
|
||||||
|
if (!this->StartResultingXML(cmCTest::PartTest, "DynamicAnalysis-Test",
|
||||||
|
xmlfile)) {
|
||||||
|
cmCTestLog(this->CTest, ERROR_MESSAGE,
|
||||||
|
"Cannot create testing XML file" << std::endl);
|
||||||
|
this->LogFile = nullptr;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
cmXMLWriter xml(xmlfile);
|
||||||
|
// Explicitly call this class' `GenerateCTestXML` method to make `Test.xml`
|
||||||
|
// as well.
|
||||||
|
this->cmCTestTestHandler::GenerateCTestXML(xml);
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
10
Tests/RunCMake/ctest_memcheck/ExpectedOutputs-check.cmake
Normal file
10
Tests/RunCMake/ctest_memcheck/ExpectedOutputs-check.cmake
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
function (find_xml_file name)
|
||||||
|
file(GLOB test_xml_file "${RunCMake_TEST_BINARY_DIR}/Testing/*/${name}.xml")
|
||||||
|
if (NOT test_xml_file)
|
||||||
|
message(FATAL_ERROR
|
||||||
|
"${name}.xml not created.")
|
||||||
|
endif ()
|
||||||
|
endfunction ()
|
||||||
|
|
||||||
|
find_xml_file(DynamicAnalysis)
|
||||||
|
find_xml_file(DynamicAnalysis-Test)
|
1
Tests/RunCMake/ctest_memcheck/ExpectedOutputs-stderr.txt
Normal file
1
Tests/RunCMake/ctest_memcheck/ExpectedOutputs-stderr.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
Cannot find memory tester output file: .*/Tests/RunCMake/ctest_memcheck/ExpectedOutputs-build/Testing/Temporary/MemoryChecker.1.log\.\*
|
2
Tests/RunCMake/ctest_memcheck/ExpectedOutputs-stdout.txt
Normal file
2
Tests/RunCMake/ctest_memcheck/ExpectedOutputs-stdout.txt
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
Memory checking results:
|
||||||
|
left shift of negative value -256 - 1
|
@ -94,6 +94,19 @@ run_mc_test(DummyUndefinedBehaviorSanitizer "" -DMEMCHECK_TYPE=UndefinedBehavior
|
|||||||
unset(CMAKELISTS_EXTRA_CODE)
|
unset(CMAKELISTS_EXTRA_CODE)
|
||||||
unset(CTEST_EXTRA_CODE)
|
unset(CTEST_EXTRA_CODE)
|
||||||
|
|
||||||
|
#-----------------------------------------------------------------------------
|
||||||
|
# add output test
|
||||||
|
set(CTEST_EXTRA_CODE
|
||||||
|
"set(CTEST_MEMORYCHECK_SANITIZER_OPTIONS \"simulate_sanitizer=1\")
|
||||||
|
")
|
||||||
|
set(CMAKELISTS_EXTRA_CODE
|
||||||
|
"add_test(NAME TestSan COMMAND \"\${CMAKE_COMMAND}\"
|
||||||
|
-P \"${RunCMake_SOURCE_DIR}/testUndefinedBehaviorSanitizer.cmake\")
|
||||||
|
")
|
||||||
|
run_mc_test(ExpectedOutputs "" -DMEMCHECK_TYPE=UndefinedBehaviorSanitizer)
|
||||||
|
unset(CMAKELISTS_EXTRA_CODE)
|
||||||
|
unset(CTEST_EXTRA_CODE)
|
||||||
|
|
||||||
#-----------------------------------------------------------------------------
|
#-----------------------------------------------------------------------------
|
||||||
set(CTEST_EXTRA_CODE "string(REPLACE \" \" \"\\\\ \" PRE_POST_COMMAND \"\${CTEST_MEMORYCHECK_COMMAND}\")
|
set(CTEST_EXTRA_CODE "string(REPLACE \" \" \"\\\\ \" PRE_POST_COMMAND \"\${CTEST_MEMORYCHECK_COMMAND}\")
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user