Răsfoiți Sursa

Merge topic 'ctest-json-REQUIRED_FILES'

5778880d20 CTest: Fix --show-only=json-v1 output with REQUIRED_FILES property

Acked-by: Kitware Robot <[email protected]>
Merge-request: !3719
Brad King 6 ani în urmă
părinte
comite
a6b01b7d45

+ 2 - 2
Source/CTest/cmCTestMultiProcessHandler.cxx

@@ -858,8 +858,8 @@ static Json::Value DumpCTestProperties(
       DumpCTestProperty("PROCESSORS", testProperties.Processors));
   }
   if (!testProperties.RequiredFiles.empty()) {
-    properties["REQUIRED_FILES"] =
-      DumpToJsonArray(testProperties.RequiredFiles);
+    properties.append(DumpCTestProperty(
+      "REQUIRED_FILES", DumpToJsonArray(testProperties.RequiredFiles)));
   }
   if (!testProperties.LockedResources.empty()) {
     properties.append(DumpCTestProperty(

+ 5 - 1
Tests/RunCMake/CTestCommandLine/RunCMakeTest.cmake

@@ -256,7 +256,11 @@ function(run_ShowOnly)
   file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}")
   file(WRITE "${RunCMake_TEST_BINARY_DIR}/CTestTestfile.cmake" "
     add_test(ShowOnly \"${CMAKE_COMMAND}\" -E echo)
-    set_tests_properties(ShowOnly PROPERTIES WILL_FAIL true _BACKTRACE_TRIPLES \"file1;1;add_test;file0;;\")
+    set_tests_properties(ShowOnly PROPERTIES
+      WILL_FAIL true
+      REQUIRED_FILES RequiredFileDoesNotExist
+      _BACKTRACE_TRIPLES \"file1;1;add_test;file0;;\"
+      )
     add_test(ShowOnlyNotAvailable NOT_AVAILABLE)
 ")
   run_cmake_command(show-only_human ${CMAKE_CTEST_COMMAND} --show-only=human)

+ 13 - 3
Tests/RunCMake/CTestCommandLine/show-only_json-v1_check.py

@@ -63,6 +63,15 @@ def check_command(c):
     assert is_string(c[2])
     assert c[2] == "echo"
 
+def check_reqfiles_property(p):
+    assert is_dict(p)
+    assert sorted(p.keys()) == ["name", "value"]
+    assert is_string(p["name"])
+    assert is_list(p["value"])
+    assert p["name"] == "REQUIRED_FILES"
+    assert len(p["value"]) == 1
+    assert p["value"][0] == "RequiredFileDoesNotExist"
+
 def check_willfail_property(p):
     assert is_dict(p)
     assert sorted(p.keys()) == ["name", "value"]
@@ -81,9 +90,10 @@ def check_workingdir_property(p):
 
 def check_properties(p):
     assert is_list(p)
-    assert len(p) == 2
-    check_willfail_property(p[0])
-    check_workingdir_property(p[1])
+    assert len(p) == 3
+    check_reqfiles_property(p[0])
+    check_willfail_property(p[1])
+    check_workingdir_property(p[2])
 
 def check_tests(t):
     assert is_list(t)