Browse Source

Merge topic 'ctest_instrumentation_outputsizes'

2df19bec2b instrumentation: include output sizes in CTest XML

Acked-by: Kitware Robot <[email protected]>
Tested-by: buildbot <[email protected]>
Acked-by: Martin Duffy <[email protected]>
Merge-request: !10712
Brad King 7 months ago
parent
commit
cd7cbcc8fb

+ 16 - 0
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
   }

+ 3 - 0
Tests/RunCMake/ctest_instrumentation/InstrumentationInCTestXML-check.cmake

@@ -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()