From 8d4743b9e98268e693007b3af01b63c8f0b4334a Mon Sep 17 00:00:00 2001 From: Daniel Pfeifer Date: Tue, 28 Jan 2025 13:10:53 +0100 Subject: [PATCH] cmCTestBuildHandler: Store path of temporary log file --- Source/CTest/cmCTestBuildHandler.cxx | 5 +++-- Source/CTest/cmCTestBuildHandler.h | 1 + Source/CTest/cmCTestGenericHandler.cxx | 4 +--- Source/CTest/cmCTestGenericHandler.h | 6 ------ Source/cmCTest.cxx | 1 - Source/cmGeneratedFileStream.h | 5 +++++ 6 files changed, 10 insertions(+), 12 deletions(-) diff --git a/Source/CTest/cmCTestBuildHandler.cxx b/Source/CTest/cmCTestBuildHandler.cxx index a830bef520..af54e56e34 100644 --- a/Source/CTest/cmCTestBuildHandler.cxx +++ b/Source/CTest/cmCTestBuildHandler.cxx @@ -302,6 +302,8 @@ int cmCTestBuildHandler::ProcessHandler() "Cannot create build log file" << std::endl); } + this->LogFileName = ofs.GetTempName(); + // Create lists of regular expression strings for errors, error exceptions, // warnings and warning exceptions. std::vector::size_type cc; @@ -884,8 +886,7 @@ bool cmCTestBuildHandler::RunMakeCommand(std::string const& command, // Use temporary BuildLog file to populate this error for // CDash. ofs.flush(); - reporter.LogOut = this->LogFileNames["Build"]; - reporter.LogOut += ".tmp"; + reporter.LogOut = this->LogFileName; reporter.WriteXML(); } } else { diff --git a/Source/CTest/cmCTestBuildHandler.h b/Source/CTest/cmCTestBuildHandler.h index 00ed8c2d3f..9d9b847d60 100644 --- a/Source/CTest/cmCTestBuildHandler.h +++ b/Source/CTest/cmCTestBuildHandler.h @@ -145,6 +145,7 @@ private: bool UseCTestLaunch = false; std::string CTestLaunchDir; + std::string LogFileName; class LaunchHelper; friend class LaunchHelper; diff --git a/Source/CTest/cmCTestGenericHandler.cxx b/Source/CTest/cmCTestGenericHandler.cxx index 625333fe8e..1e3d20d6d1 100644 --- a/Source/CTest/cmCTestGenericHandler.cxx +++ b/Source/CTest/cmCTestGenericHandler.cxx @@ -3,9 +3,9 @@ #include "cmCTestGenericHandler.h" #include +#include #include "cmCTest.h" -#include "cmStringAlgorithms.h" #include "cmSystemTools.h" cmCTestGenericHandler::cmCTestGenericHandler(cmCTest* ctest) @@ -72,8 +72,6 @@ bool cmCTestGenericHandler::StartLogFile(char const* name, ostr << "_" << this->CTest->GetCurrentTag(); } ostr << ".log"; - this->LogFileNames[name] = - cmStrCat(this->CTest->GetBinaryDir(), "/Testing/Temporary/", ostr.str()); if (!this->CTest->OpenOutputFile("Temporary", ostr.str(), xofs)) { cmCTestLog(this->CTest, ERROR_MESSAGE, "Cannot create log file: " << ostr.str() << std::endl); diff --git a/Source/CTest/cmCTestGenericHandler.h b/Source/CTest/cmCTestGenericHandler.h index 02fce7813d..4fc9adb052 100644 --- a/Source/CTest/cmCTestGenericHandler.h +++ b/Source/CTest/cmCTestGenericHandler.h @@ -4,9 +4,6 @@ #include "cmConfigure.h" // IWYU pragma: keep -#include -#include - #include "cmCTest.h" #include "cmSystemTools.h" @@ -52,8 +49,6 @@ public: cmCTestGenericHandler(cmCTest* ctest); virtual ~cmCTestGenericHandler(); - using t_StringToString = std::map; - void SetSubmitIndex(int idx) { this->SubmitIndex = idx; } int GetSubmitIndex() { return this->SubmitIndex; } @@ -75,7 +70,6 @@ protected: unsigned long TestLoad = 0; cmSystemTools::OutputOption HandlerVerbose = cmSystemTools::OUTPUT_NONE; cmCTest* CTest; - t_StringToString LogFileNames; cmake* CMake = nullptr; int SubmitIndex = 0; diff --git a/Source/cmCTest.cxx b/Source/cmCTest.cxx index 603b1f4b5e..af5308596b 100644 --- a/Source/cmCTest.cxx +++ b/Source/cmCTest.cxx @@ -665,7 +665,6 @@ bool cmCTest::OpenOutputFile(std::string const& path, std::string const& name, } } std::string filename = testingDir + "/" + name; - stream.SetTempExt("tmp"); stream.Open(filename); if (!stream) { cmCTestLog(this, ERROR_MESSAGE, diff --git a/Source/cmGeneratedFileStream.h b/Source/cmGeneratedFileStream.h index b440fa9e1f..c832bc3456 100644 --- a/Source/cmGeneratedFileStream.h +++ b/Source/cmGeneratedFileStream.h @@ -147,6 +147,11 @@ public: */ void SetTempExt(std::string const& ext); + /** + * Get the name of the temporary file. + */ + std::string const& GetTempName() const { return this->TempName; } + /** * Write a specific string using an alternate encoding. * Afterward, the original encoding is restored.