summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2024-07-19 13:56:43 (GMT)
committerKitware Robot <kwrobot@kitware.com>2024-07-19 13:56:58 (GMT)
commit4e867bab6ca668ad8acdd5846afe085a4d6975d6 (patch)
tree31d72ceccf4f39ebdce6b75780176e8b7d023b8c
parenta8d8f26828cda2532dbae960fd881d9fad17cbe8 (diff)
parent49e9f817deddeb5587090b3362ef0801fcbc29cc (diff)
downloadCMake-4e867bab6ca668ad8acdd5846afe085a4d6975d6.zip
CMake-4e867bab6ca668ad8acdd5846afe085a4d6975d6.tar.gz
CMake-4e867bab6ca668ad8acdd5846afe085a4d6975d6.tar.bz2
Merge topic 'ctest-failure-summary-labels'
49e9f817de ctest: Display test labels in failure summary Acked-by: Kitware Robot <kwrobot@kitware.com> Acked-by: buildbot <buildbot@kitware.com> Merge-request: !9652
-rw-r--r--Source/CTest/cmCTestTestHandler.cxx16
-rw-r--r--Tests/RunCMake/CTestCommandLine/FailureLabels-result.txt1
-rw-r--r--Tests/RunCMake/CTestCommandLine/FailureLabels-stderr.txt1
-rw-r--r--Tests/RunCMake/CTestCommandLine/FailureLabels-stdout.txt4
-rw-r--r--Tests/RunCMake/CTestCommandLine/RunCMakeTest.cmake16
5 files changed, 35 insertions, 3 deletions
diff --git a/Source/CTest/cmCTestTestHandler.cxx b/Source/CTest/cmCTestTestHandler.cxx
index 2018b73..c7875cd 100644
--- a/Source/CTest/cmCTestTestHandler.cxx
+++ b/Source/CTest/cmCTestTestHandler.cxx
@@ -702,13 +702,23 @@ void cmCTestTestHandler::LogFailedTests(const std::vector<std::string>& failed,
if (this->GetTestStatus(ft) == "Not Run") {
testColor = cmCTest::Color::YELLOW;
}
+ std::string ft_name_and_status =
+ cmStrCat(ft.Name, " (", this->GetTestStatus(ft), ")");
+ std::string labels;
+ const cmCTestTestProperties& p = *ft.Properties;
+ if (!p.Labels.empty()) {
+ static size_t const maxLen = 50;
+ size_t const ns = ft_name_and_status.size() >= maxLen
+ ? 1
+ : maxLen - ft_name_and_status.size();
+ labels = cmStrCat(std::string(ns, ' '), cmJoin(p.Labels, " "));
+ }
cmCTestLog(
this->CTest, HANDLER_OUTPUT,
"\t" << this->CTest->GetColorCode(testColor) << std::setw(3)
- << ft.TestCount << " - " << ft.Name << " ("
- << this->GetTestStatus(ft) << ")"
+ << ft.TestCount << " - " << ft_name_and_status
<< this->CTest->GetColorCode(cmCTest::Color::CLEAR_COLOR)
- << std::endl);
+ << labels << std::endl);
}
}
}
diff --git a/Tests/RunCMake/CTestCommandLine/FailureLabels-result.txt b/Tests/RunCMake/CTestCommandLine/FailureLabels-result.txt
new file mode 100644
index 0000000..45a4fb7
--- /dev/null
+++ b/Tests/RunCMake/CTestCommandLine/FailureLabels-result.txt
@@ -0,0 +1 @@
+8
diff --git a/Tests/RunCMake/CTestCommandLine/FailureLabels-stderr.txt b/Tests/RunCMake/CTestCommandLine/FailureLabels-stderr.txt
new file mode 100644
index 0000000..ba4235d
--- /dev/null
+++ b/Tests/RunCMake/CTestCommandLine/FailureLabels-stderr.txt
@@ -0,0 +1 @@
+Errors while running CTest
diff --git a/Tests/RunCMake/CTestCommandLine/FailureLabels-stdout.txt b/Tests/RunCMake/CTestCommandLine/FailureLabels-stdout.txt
new file mode 100644
index 0000000..3fa9fb8
--- /dev/null
+++ b/Tests/RunCMake/CTestCommandLine/FailureLabels-stdout.txt
@@ -0,0 +1,4 @@
+The following tests FAILED:
+[ ]+1 - ShortName \(Failed\) Label1 Label2
+[ ]+2 - LongerName \(Failed\) Label3
+[ ]+3 - Long_Test_Name_That_Is_Over_Fifty_Characters_In_Length \(Failed\) Label4
diff --git a/Tests/RunCMake/CTestCommandLine/RunCMakeTest.cmake b/Tests/RunCMake/CTestCommandLine/RunCMakeTest.cmake
index 190c6c1..c1c26ed 100644
--- a/Tests/RunCMake/CTestCommandLine/RunCMakeTest.cmake
+++ b/Tests/RunCMake/CTestCommandLine/RunCMakeTest.cmake
@@ -7,6 +7,22 @@ set(ENV{no_proxy} "$ENV{no_proxy},badhostname.invalid")
set(RunCMake_TEST_TIMEOUT 60)
+block()
+ set(RunCMake_TEST_BINARY_DIR ${RunCMake_BINARY_DIR}/FailureLabels)
+ set(RunCMake_TEST_NO_CLEAN 1)
+ file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}")
+ file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}")
+ file(WRITE "${RunCMake_TEST_BINARY_DIR}/CTestTestfile.cmake" "
+add_test(ShortName \"${CMAKE_COMMAND}\" -E false)
+set_tests_properties(ShortName PROPERTIES LABELS \"Label1;Label2\")
+add_test(LongerName \"${CMAKE_COMMAND}\" -E false)
+set_tests_properties(LongerName PROPERTIES LABELS \"Label3\")
+add_test(Long_Test_Name_That_Is_Over_Fifty_Characters_In_Length \"${CMAKE_COMMAND}\" -E false)
+set_tests_properties(Long_Test_Name_That_Is_Over_Fifty_Characters_In_Length PROPERTIES LABELS \"Label4\")
+")
+ run_cmake_command(FailureLabels ${CMAKE_CTEST_COMMAND})
+endblock()
+
run_cmake_command(repeat-opt-bad1
${CMAKE_CTEST_COMMAND} --repeat until-pass
)