From 2df19bec2b7a1902245d817689b394159e8b4965 Mon Sep 17 00:00:00 2001 From: Zack Galbreath Date: Thu, 24 Apr 2025 11:29:15 -0400 Subject: [PATCH] instrumentation: include output sizes in CTest XML --- Source/cmCTest.cxx | 16 ++++++++++++++++ .../InstrumentationInCTestXML-check.cmake | 3 +++ 2 files changed, 19 insertions(+) diff --git a/Source/cmCTest.cxx b/Source/cmCTest.cxx index 3ee79e0763..14e2a8c0b8 100644 --- a/Source/cmCTest.cxx +++ b/Source/cmCTest.cxx @@ -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 } diff --git a/Tests/RunCMake/ctest_instrumentation/InstrumentationInCTestXML-check.cmake b/Tests/RunCMake/ctest_instrumentation/InstrumentationInCTestXML-check.cmake index 643515bc1d..141b467baf 100644 --- a/Tests/RunCMake/ctest_instrumentation/InstrumentationInCTestXML-check.cmake +++ b/Tests/RunCMake/ctest_instrumentation/InstrumentationInCTestXML-check.cmake @@ -20,6 +20,9 @@ foreach(xml_type Configure Build Test) if(NOT xml_content MATCHES " element not found in Build.xml") endif() + if(NOT xml_content MATCHES " element not found in Build.xml") + endif() if(NOT xml_content MATCHES " element not found in Build.xml") endif()