From 712cb8cb14b7e88d2618b63439d2393aa2076e28 Mon Sep 17 00:00:00 2001 From: Daniel Pfeifer Date: Thu, 6 Mar 2025 12:03:39 +0100 Subject: [PATCH] ctest: Restore support for -T Test without dashboard configuration Since commit 774fcbe49c (CTest: Base command line mode on top of scripting commands, 2024-10-05, v4.0.0-rc1~653^2) we drive dashboard client steps through `cmCTestHandlerCommand::ExecuteHandlerCommand` instead of calling `ProcessHandler` directly. This requires the `BuildDirectory` to be known to establish a work directory. Fixes: #26743 Co-authored-by: Brad King --- Source/cmCTest.cxx | 3 +++ .../CTestCommandLine/EmptyDirCoverage-ctest-result.txt | 1 - .../CTestCommandLine/EmptyDirCoverage-ctest-stderr.txt | 2 +- Tests/RunCMake/CTestCommandLine/EmptyDirTest-ctest-stderr.txt | 3 +++ Tests/RunCMake/CTestCommandLine/RunCMakeTest.cmake | 4 ++++ 5 files changed, 11 insertions(+), 2 deletions(-) delete mode 100644 Tests/RunCMake/CTestCommandLine/EmptyDirCoverage-ctest-result.txt create mode 100644 Tests/RunCMake/CTestCommandLine/EmptyDirTest-ctest-stderr.txt diff --git a/Source/cmCTest.cxx b/Source/cmCTest.cxx index eaa3eccda5..8f691bf196 100644 --- a/Source/cmCTest.cxx +++ b/Source/cmCTest.cxx @@ -711,6 +711,9 @@ int cmCTest::ProcessSteps() this->Impl->Verbose = true; this->Impl->ProduceXML = true; + // Minimal dashboard client script configuration. + this->SetCTestConfiguration("BuildDirectory", this->Impl->BinaryDir); + this->UpdateCTestConfiguration(); this->BlockTestErrorDiagnostics(); diff --git a/Tests/RunCMake/CTestCommandLine/EmptyDirCoverage-ctest-result.txt b/Tests/RunCMake/CTestCommandLine/EmptyDirCoverage-ctest-result.txt deleted file mode 100644 index f5c89552bd..0000000000 --- a/Tests/RunCMake/CTestCommandLine/EmptyDirCoverage-ctest-result.txt +++ /dev/null @@ -1 +0,0 @@ -32 diff --git a/Tests/RunCMake/CTestCommandLine/EmptyDirCoverage-ctest-stderr.txt b/Tests/RunCMake/CTestCommandLine/EmptyDirCoverage-ctest-stderr.txt index f6d28a17f3..45230f79a6 100644 --- a/Tests/RunCMake/CTestCommandLine/EmptyDirCoverage-ctest-stderr.txt +++ b/Tests/RunCMake/CTestCommandLine/EmptyDirCoverage-ctest-stderr.txt @@ -1,3 +1,3 @@ Cannot find file: [^ ]*/Tests/RunCMake/CTestCommandLine/EmptyDirCoverage-ctest-build/DartConfiguration.tcl -CTEST_BINARY_DIRECTORY not set + Cannot find any coverage files\. Ignoring Coverage request\.$ diff --git a/Tests/RunCMake/CTestCommandLine/EmptyDirTest-ctest-stderr.txt b/Tests/RunCMake/CTestCommandLine/EmptyDirTest-ctest-stderr.txt new file mode 100644 index 0000000000..d9c2ecbc13 --- /dev/null +++ b/Tests/RunCMake/CTestCommandLine/EmptyDirTest-ctest-stderr.txt @@ -0,0 +1,3 @@ +Cannot find file: [^ +]*/Tests/RunCMake/CTestCommandLine/EmptyDirTest-ctest-build/DartConfiguration.tcl +No tests were found!!!$ diff --git a/Tests/RunCMake/CTestCommandLine/RunCMakeTest.cmake b/Tests/RunCMake/CTestCommandLine/RunCMakeTest.cmake index 0786499318..31f3b72c05 100644 --- a/Tests/RunCMake/CTestCommandLine/RunCMakeTest.cmake +++ b/Tests/RunCMake/CTestCommandLine/RunCMakeTest.cmake @@ -554,6 +554,10 @@ set(ENV{CMAKE_TLS_VERIFY} 0) # Test fallback to env variable. run_FailDrop(TLSVerify-OFF-env) unset(ENV{CMAKE_TLS_VERIFY}) +run_cmake_command(EmptyDirTest-ctest + ${CMAKE_CTEST_COMMAND} -C Debug -M Experimental -T Test + ) + run_cmake_command(EmptyDirCoverage-ctest ${CMAKE_CTEST_COMMAND} -C Debug -M Experimental -T Coverage )