diff options
author | Brad King <brad.king@kitware.com> | 2024-07-19 13:56:43 (GMT) |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2024-07-19 13:56:58 (GMT) |
commit | 4e867bab6ca668ad8acdd5846afe085a4d6975d6 (patch) | |
tree | 31d72ceccf4f39ebdce6b75780176e8b7d023b8c | |
parent | a8d8f26828cda2532dbae960fd881d9fad17cbe8 (diff) | |
parent | 49e9f817deddeb5587090b3362ef0801fcbc29cc (diff) | |
download | CMake-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
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 ) |