instrumentation: include output sizes in CTest XML

This commit is contained in:
Zack Galbreath
2025-04-24 11:29:15 -04:00
parent 468270d8ac
commit 2df19bec2b
2 changed files with 19 additions and 0 deletions

View File

@@ -3789,6 +3789,22 @@ bool cmCTest::ConvertInstrumentationJSONFileToXML(std::string const& fpath,
xml.EndElement(); // NamedMeasurement
}
// Record information about outputs and their sizes if found.
if (root.isMember("outputs") && root.isMember("outputSizes")) {
Json::ArrayIndex num_outputs =
std::min(root["outputs"].size(), root["outputSizes"].size());
if (num_outputs > 0) {
xml.StartElement("Outputs");
for (Json::ArrayIndex i = 0; i < num_outputs; ++i) {
xml.StartElement("Output");
xml.Attribute("name", root["outputs"][i].asString());
xml.Attribute("size", root["outputSizes"][i].asString());
xml.EndElement(); // Output
}
xml.EndElement(); // Outputs
}
}
if (!generating_test_xml) {
xml.EndElement(); // role
}

View File

@@ -20,6 +20,9 @@ foreach(xml_type Configure Build Test)
if(NOT xml_content MATCHES "<Compile")
set(RunCMake_TEST_FAILED "<Compile> element not found in Build.xml")
endif()
if(NOT xml_content MATCHES "<Outputs")
set(RunCMake_TEST_FAILED "<Outputs> element not found in Build.xml")
endif()
if(NOT xml_content MATCHES "<Link")
set(RunCMake_TEST_FAILED "<Link> element not found in Build.xml")
endif()