From f134468a9827da42b1aeb0b77a045b44c6f85c70 Mon Sep 17 00:00:00 2001 From: Martin Duffy Date: Wed, 12 Mar 2025 15:59:29 -0400 Subject: JSON: Improve JSON error message formatting This improves the output of JSON-related error messages. It adds the filename to the output and excludes the column number. This is particularly useful when there are multiple JSON files being read that could be responsible for an error, ie CMakePresets.json and CMakeUserPresets.json, or multiple instrumentation queries. Issue: #26717 --- Source/CTest/cmCTestMultiProcessHandler.cxx | 2 +- Source/cmCTest.cxx | 2 +- Source/cmInstrumentation.cxx | 10 ++++++++++ Source/cmInstrumentation.h | 3 ++- Source/cmJSONState.cxx | 23 ++++++++++++---------- Source/cmJSONState.h | 15 +++----------- Source/cmake.cxx | 16 +++++++-------- Tests/CMakeLib/testJSONHelpers.cxx | 2 +- .../CMakePresets/CommentValidOldSchema-stderr.txt | 2 +- .../CMakePresets/EmptyPenvInInclude-stderr.txt | 2 +- .../CMakePresets/EmptyPresetName-stderr.txt | 2 +- .../CMakePresets/ExtraPresetField-stderr.txt | 2 +- .../CMakePresets/ExtraRootField-stderr.txt | 2 +- .../CMakePresets/ExtraVariableField-stderr.txt | 2 +- Tests/RunCMake/CMakePresets/HighVersion-stderr.txt | 2 +- .../InvalidArchitectureStrategy-stderr.txt | 2 +- .../CMakePresets/InvalidPresetBinaryDir-stderr.txt | 2 +- .../CMakePresets/InvalidPresetGenerator-stderr.txt | 2 +- .../CMakePresets/InvalidPresetName-stderr.txt | 2 +- .../CMakePresets/InvalidPresetVendor-stderr.txt | 2 +- .../CMakePresets/InvalidPresets-stderr.txt | 2 +- Tests/RunCMake/CMakePresets/InvalidRoot-stderr.txt | 2 +- .../CMakePresets/InvalidToolsetStrategy-stderr.txt | 2 +- .../CMakePresets/InvalidVariableValue-stderr.txt | 2 +- .../CMakePresets/InvalidVariables-stderr.txt | 2 +- .../RunCMake/CMakePresets/InvalidVendor-stderr.txt | 2 +- .../CMakePresets/InvalidVersion-stderr.txt | 2 +- Tests/RunCMake/CMakePresets/LowVersion-stderr.txt | 2 +- .../CMakePresets/MinimumRequiredInvalid-stderr.txt | 2 +- .../CMakePresets/MinimumRequiredMajor-stderr.txt | 2 +- .../CMakePresets/MinimumRequiredMinor-stderr.txt | 2 +- .../CMakePresets/MinimumRequiredPatch-stderr.txt | 2 +- .../RunCMake/CMakePresets/NoPresetName-stderr.txt | 2 +- .../CMakePresets/NoVariableValue-stderr.txt | 2 +- .../CMakePresets/PresetNotObject-stderr.txt | 2 +- .../UnknownArchitectureStrategy-stderr.txt | 2 +- .../CMakePresets/UnknownToolsetStrategy-stderr.txt | 2 +- .../CMakePresets/VariableNotObject-stderr.txt | 2 +- .../dynamic-resource-nofile-ctest-s-stderr.txt | 2 +- .../invalid-nofile-ctest-stderr.txt | 2 +- .../invalid-not-json-ctest-stderr.txt | 2 +- Tests/RunCMake/Instrumentation/bad-hook-stderr.txt | 5 +++-- .../RunCMake/Instrumentation/bad-query-stderr.txt | 5 +++-- Tests/RunCMake/Instrumentation/empty-stderr.txt | 5 +++-- 44 files changed, 80 insertions(+), 74 deletions(-) diff --git a/Source/CTest/cmCTestMultiProcessHandler.cxx b/Source/CTest/cmCTestMultiProcessHandler.cxx index bf8f3bc..1fd0fa8 100644 --- a/Source/CTest/cmCTestMultiProcessHandler.cxx +++ b/Source/CTest/cmCTestMultiProcessHandler.cxx @@ -1668,7 +1668,7 @@ bool cmCTestMultiProcessHandler::InitResourceAllocator(std::string& error) { if (!this->ResourceSpec.ReadFromJSONFile(this->ResourceSpecFile)) { error = cmStrCat("Could not read/parse resource spec file ", - this->ResourceSpecFile, ": ", + this->ResourceSpecFile, ":\n", this->ResourceSpec.parseState.GetErrorMessage()); return false; } diff --git a/Source/cmCTest.cxx b/Source/cmCTest.cxx index 2e0b07e..5b9c0fb 100644 --- a/Source/cmCTest.cxx +++ b/Source/cmCTest.cxx @@ -1572,7 +1572,7 @@ bool cmCTest::SetArgsFromPreset(std::string const& presetName, auto result = settingsFile.ReadProjectPresets(workingDirectory); if (result != true) { cmSystemTools::Error(cmStrCat("Could not read presets from ", - workingDirectory, ":", + workingDirectory, ":\n", settingsFile.parseState.GetErrorMessage())); return false; } diff --git a/Source/cmInstrumentation.cxx b/Source/cmInstrumentation.cxx index 2c4414f..19d0cf4 100644 --- a/Source/cmInstrumentation.cxx +++ b/Source/cmInstrumentation.cxx @@ -148,6 +148,16 @@ void cmInstrumentation::ReadJSONQuery(std::string const& file) auto query = cmInstrumentationQuery(); query.ReadJSON(file, this->errorMsg, this->queries, this->hooks, this->callbacks); + if (!this->errorMsg.empty()) { + cmSystemTools::Error(cmStrCat( + "Could not load instrumentation queries from ", + cmSystemTools::GetParentDirectory(file), ":\n", this->errorMsg)); + } +} + +bool cmInstrumentation::HasErrors() const +{ + return !this->errorMsg.empty(); } void cmInstrumentation::WriteJSONQuery( diff --git a/Source/cmInstrumentation.h b/Source/cmInstrumentation.h index 0382495..b2eb7ca 100644 --- a/Source/cmInstrumentation.h +++ b/Source/cmInstrumentation.h @@ -53,7 +53,7 @@ public: int CollectTimingAfterBuild(int ppid); void AddHook(cmInstrumentationQuery::Hook hook); void AddQuery(cmInstrumentationQuery::Query query); - std::string errorMsg; + bool HasErrors() const; std::string const& GetCDashDir(); private: @@ -83,5 +83,6 @@ private: std::vector queryFiles; std::map cdashSnippetsMap; Json::Value preTestStats; + std::string errorMsg; bool hasQuery = false; }; diff --git a/Source/cmJSONState.cxx b/Source/cmJSONState.cxx index 7add5df..1d87728 100644 --- a/Source/cmJSONState.cxx +++ b/Source/cmJSONState.cxx @@ -12,12 +12,14 @@ #include "cmsys/FStream.hxx" #include "cmStringAlgorithms.h" +#include "cmSystemTools.h" -cmJSONState::cmJSONState(std::string const& filename, Json::Value* root) +cmJSONState::cmJSONState(std::string jsonFile, Json::Value* root) + : Filename(std::move(jsonFile)) { - cmsys::ifstream fin(filename.c_str(), std::ios::in | std::ios::binary); + cmsys::ifstream fin(this->Filename.c_str(), std::ios::in | std::ios::binary); if (!fin) { - this->AddError(cmStrCat("File not found: ", filename)); + this->AddError(cmStrCat("File not found: ", this->Filename)); return; } // If there's a BOM, toss it. @@ -38,7 +40,7 @@ cmJSONState::cmJSONState(std::string const& filename, Json::Value* root) Json::CharReaderBuilder::strictMode(&builder.settings_); std::string errMsg; if (!Json::parseFromStream(builder, fin, root, &errMsg)) { - errMsg = cmStrCat("JSON Parse Error: ", filename, ":\n", errMsg); + errMsg = cmStrCat("JSON Parse Error: ", this->Filename, ":\n", errMsg); this->AddError(errMsg); } } @@ -72,16 +74,17 @@ void cmJSONState::AddErrorAtOffset(std::string const& errMsg, std::string cmJSONState::GetErrorMessage(bool showContext) { std::string message; + std::string filenameName = cmSystemTools::GetFilenameName(this->Filename); for (auto const& error : this->errors) { + Location loc = error.GetLocation(); + if (!filenameName.empty() && loc.line > 0) { + message = cmStrCat(message, filenameName, ':', loc.line, ": "); + } message = cmStrCat(message, error.GetErrorMessage(), "\n"); - if (showContext) { - Location loc = error.GetLocation(); - if (loc.column > 0) { - message = cmStrCat(message, GetJsonContext(loc), "\n"); - } + if (showContext && loc.line > 0) { + message = cmStrCat(message, GetJsonContext(loc), "\n"); } } - message = cmStrCat("\n", message); message.pop_back(); return message; } diff --git a/Source/cmJSONState.h b/Source/cmJSONState.h index 9dfa3e2..837ff2a 100644 --- a/Source/cmJSONState.h +++ b/Source/cmJSONState.h @@ -9,8 +9,6 @@ #include #include -#include "cmStringAlgorithms.h" - namespace Json { class Value; } @@ -26,7 +24,7 @@ class cmJSONState public: using JsonPair = std::pair; cmJSONState() = default; - cmJSONState(std::string const& filename, Json::Value* root); + cmJSONState(std::string jsonFile, Json::Value* root); void AddError(std::string const& errMsg); void AddErrorAtValue(std::string const& errMsg, Json::Value const* value); void AddErrorAtOffset(std::string const& errMsg, std::ptrdiff_t offset); @@ -46,15 +44,7 @@ public: Error(std::string errMsg) : location({ -1, -1 }) , message(std::move(errMsg)) {}; - std::string GetErrorMessage() const - { - std::string output = message; - if (location.line > 0) { - output = cmStrCat("Error: @", location.line, ",", location.column, - ": ", output); - } - return output; - } + std::string GetErrorMessage() const { return message; } Location GetLocation() const { return location; } private: @@ -70,4 +60,5 @@ public: private: std::string GetJsonContext(Location loc); Location LocateInDocument(ptrdiff_t offset); + std::string Filename; }; diff --git a/Source/cmake.cxx b/Source/cmake.cxx index f880884..d872594 100644 --- a/Source/cmake.cxx +++ b/Source/cmake.cxx @@ -1525,8 +1525,8 @@ void cmake::SetArgs(std::vector const& args) auto result = presetsGraph.ReadProjectPresets(this->GetHomeDirectory()); if (result != true) { std::string errorMsg = - cmStrCat("Could not read presets from ", this->GetHomeDirectory(), ":", - presetsGraph.parseState.GetErrorMessage()); + cmStrCat("Could not read presets from ", this->GetHomeDirectory(), + ":\n", presetsGraph.parseState.GetErrorMessage()); cmSystemTools::Error(errorMsg); return; } @@ -2620,8 +2620,7 @@ int cmake::ActualConfigure() // actually do the configure auto startTime = std::chrono::steady_clock::now(); #if !defined(CMAKE_BOOTSTRAP) - if (!this->Instrumentation->errorMsg.empty()) { - cmSystemTools::Error(this->Instrumentation->errorMsg); + if (this->Instrumentation->HasErrors()) { return 1; } auto doConfigure = [this]() -> int { @@ -3735,8 +3734,8 @@ int cmake::Build(int jobs, std::string dir, std::vector targets, auto result = settingsFile.ReadProjectPresets(this->GetHomeDirectory()); if (result != true) { cmSystemTools::Error( - cmStrCat("Could not read presets from ", this->GetHomeDirectory(), ":", - settingsFile.parseState.GetErrorMessage())); + cmStrCat("Could not read presets from ", this->GetHomeDirectory(), + ":\n", settingsFile.parseState.GetErrorMessage())); return 1; } @@ -3962,8 +3961,7 @@ int cmake::Build(int jobs, std::string dir, std::vector targets, #if !defined(CMAKE_BOOTSTRAP) cmInstrumentation instrumentation(dir); - if (!instrumentation.errorMsg.empty()) { - cmSystemTools::Error(instrumentation.errorMsg); + if (instrumentation.HasErrors()) { return 1; } instrumentation.CollectTimingData( @@ -4105,7 +4103,7 @@ int cmake::Workflow(std::string const& presetName, auto result = settingsFile.ReadProjectPresets(this->GetHomeDirectory()); if (result != true) { cmSystemTools::Error(cmStrCat("Could not read presets from ", - this->GetHomeDirectory(), ":", + this->GetHomeDirectory(), ":\n", settingsFile.parseState.GetErrorMessage())); return 1; } diff --git a/Tests/CMakeLib/testJSONHelpers.cxx b/Tests/CMakeLib/testJSONHelpers.cxx index ef7da75..02ec322 100644 --- a/Tests/CMakeLib/testJSONHelpers.cxx +++ b/Tests/CMakeLib/testJSONHelpers.cxx @@ -505,7 +505,7 @@ bool testFilteredObject() ASSERT_TRUE(m == expected); auto error = state.GetErrorMessage(); - ASSERT_TRUE(error == "\nFaulty Object Property"); + ASSERT_TRUE(error == "Faulty Object Property"); return true; } diff --git a/Tests/RunCMake/CMakePresets/CommentValidOldSchema-stderr.txt b/Tests/RunCMake/CMakePresets/CommentValidOldSchema-stderr.txt index b102f5b..8296a51 100644 --- a/Tests/RunCMake/CMakePresets/CommentValidOldSchema-stderr.txt +++ b/Tests/RunCMake/CMakePresets/CommentValidOldSchema-stderr.txt @@ -1,2 +1,2 @@ ^CMake Error: Could not read presets from .* -Error: @2,15: Invalid extra field \"\$comment\" in root object +CMakePresets.json:2: Invalid extra field \"\$comment\" in root object diff --git a/Tests/RunCMake/CMakePresets/EmptyPenvInInclude-stderr.txt b/Tests/RunCMake/CMakePresets/EmptyPenvInInclude-stderr.txt index e0f858a..77579fc 100644 --- a/Tests/RunCMake/CMakePresets/EmptyPenvInInclude-stderr.txt +++ b/Tests/RunCMake/CMakePresets/EmptyPenvInInclude-stderr.txt @@ -1,5 +1,5 @@ ^CMake Error: Could not read presets from [^ ]*/Tests/RunCMake/CMakePresets/EmptyPenvInInclude: -Error: @3,15: Invalid "include" field +CMakePresets.json:3: Invalid "include" field "include": \["\$penv\{\}"\], \^$ diff --git a/Tests/RunCMake/CMakePresets/EmptyPresetName-stderr.txt b/Tests/RunCMake/CMakePresets/EmptyPresetName-stderr.txt index 6f84690..6cb7c2a 100644 --- a/Tests/RunCMake/CMakePresets/EmptyPresetName-stderr.txt +++ b/Tests/RunCMake/CMakePresets/EmptyPresetName-stderr.txt @@ -1,5 +1,5 @@ ^CMake Error: Could not read presets from [^ ]*/Tests/RunCMake/CMakePresets/EmptyPresetName: -Error: @5,15: Invalid Preset Name +CMakePresets.json:5: Invalid Preset Name "name": "", \^$ diff --git a/Tests/RunCMake/CMakePresets/ExtraPresetField-stderr.txt b/Tests/RunCMake/CMakePresets/ExtraPresetField-stderr.txt index 2e94831..ce25505 100644 --- a/Tests/RunCMake/CMakePresets/ExtraPresetField-stderr.txt +++ b/Tests/RunCMake/CMakePresets/ExtraPresetField-stderr.txt @@ -1,5 +1,5 @@ ^CMake Error: Could not read presets from [^ ]*/Tests/RunCMake/CMakePresets/ExtraPresetField: -Error: @8,18: Invalid extra field "invalid" in Preset +CMakePresets.json:8: Invalid extra field "invalid" in Preset "invalid": true \^$ diff --git a/Tests/RunCMake/CMakePresets/ExtraRootField-stderr.txt b/Tests/RunCMake/CMakePresets/ExtraRootField-stderr.txt index 554cd4a..0af4eda 100644 --- a/Tests/RunCMake/CMakePresets/ExtraRootField-stderr.txt +++ b/Tests/RunCMake/CMakePresets/ExtraRootField-stderr.txt @@ -1,5 +1,5 @@ ^CMake Error: Could not read presets from [^ ]*/Tests/RunCMake/CMakePresets/ExtraRootField: -Error: @10,14: Invalid extra field "invalid" in root object +CMakePresets.json:10: Invalid extra field "invalid" in root object "invalid": true \^$ diff --git a/Tests/RunCMake/CMakePresets/ExtraVariableField-stderr.txt b/Tests/RunCMake/CMakePresets/ExtraVariableField-stderr.txt index 5cb777c..adf6996 100644 --- a/Tests/RunCMake/CMakePresets/ExtraVariableField-stderr.txt +++ b/Tests/RunCMake/CMakePresets/ExtraVariableField-stderr.txt @@ -1,5 +1,5 @@ ^CMake Error: Could not read presets from [^ ]*/Tests/RunCMake/CMakePresets/ExtraVariableField: -Error: @11,22: Invalid extra field "invalid" in variable "EXTRA" for preset "ExtraVariableField" +CMakePresets.json:11: Invalid extra field "invalid" in variable "EXTRA" for preset "ExtraVariableField" "invalid": true \^$ diff --git a/Tests/RunCMake/CMakePresets/HighVersion-stderr.txt b/Tests/RunCMake/CMakePresets/HighVersion-stderr.txt index f8454b9..f1e7c04 100644 --- a/Tests/RunCMake/CMakePresets/HighVersion-stderr.txt +++ b/Tests/RunCMake/CMakePresets/HighVersion-stderr.txt @@ -1,5 +1,5 @@ ^CMake Error: Could not read presets from [^ ]*/Tests/RunCMake/CMakePresets/HighVersion: -Error: @2,14: Unrecognized "version" 1000: must be >=1 and <=10 +CMakePresets.json:2: Unrecognized "version" 1000: must be >=1 and <=10 "version": 1000, \^$ diff --git a/Tests/RunCMake/CMakePresets/InvalidArchitectureStrategy-stderr.txt b/Tests/RunCMake/CMakePresets/InvalidArchitectureStrategy-stderr.txt index 5df075d..713fec0 100644 --- a/Tests/RunCMake/CMakePresets/InvalidArchitectureStrategy-stderr.txt +++ b/Tests/RunCMake/CMakePresets/InvalidArchitectureStrategy-stderr.txt @@ -1,5 +1,5 @@ ^CMake Error: Could not read presets from [^ ]*/Tests/RunCMake/CMakePresets/InvalidArchitectureStrategy: -Error: @9,21: Invalid preset +CMakePresets.json:9: Invalid preset "strategy": {} \^$ diff --git a/Tests/RunCMake/CMakePresets/InvalidPresetBinaryDir-stderr.txt b/Tests/RunCMake/CMakePresets/InvalidPresetBinaryDir-stderr.txt index deb35b4..72030c6 100644 --- a/Tests/RunCMake/CMakePresets/InvalidPresetBinaryDir-stderr.txt +++ b/Tests/RunCMake/CMakePresets/InvalidPresetBinaryDir-stderr.txt @@ -1,5 +1,5 @@ ^CMake Error: Could not read presets from [^ ]*/Tests/RunCMake/CMakePresets/InvalidPresetBinaryDir: -Error: @7,20: "binaryDir" expected a string +CMakePresets.json:7: "binaryDir" expected a string "binaryDir": \[\] \^$ diff --git a/Tests/RunCMake/CMakePresets/InvalidPresetGenerator-stderr.txt b/Tests/RunCMake/CMakePresets/InvalidPresetGenerator-stderr.txt index 7f19412..e4c8b95 100644 --- a/Tests/RunCMake/CMakePresets/InvalidPresetGenerator-stderr.txt +++ b/Tests/RunCMake/CMakePresets/InvalidPresetGenerator-stderr.txt @@ -1,5 +1,5 @@ ^CMake Error: Could not read presets from [^ ]*/Tests/RunCMake/CMakePresets/InvalidPresetGenerator: -Error: @6,20: "generator" expected a string +CMakePresets.json:6: "generator" expected a string "generator": \[\], \^$ diff --git a/Tests/RunCMake/CMakePresets/InvalidPresetName-stderr.txt b/Tests/RunCMake/CMakePresets/InvalidPresetName-stderr.txt index 4cceb73..2a9d2b7 100644 --- a/Tests/RunCMake/CMakePresets/InvalidPresetName-stderr.txt +++ b/Tests/RunCMake/CMakePresets/InvalidPresetName-stderr.txt @@ -1,5 +1,5 @@ ^CMake Error: Could not read presets from [^ ]*/Tests/RunCMake/CMakePresets/InvalidPresetName: -Error: @5,15: Invalid Preset Name +CMakePresets.json:5: Invalid Preset Name "name": \[\], \^$ diff --git a/Tests/RunCMake/CMakePresets/InvalidPresetVendor-stderr.txt b/Tests/RunCMake/CMakePresets/InvalidPresetVendor-stderr.txt index f92c48e..923f317 100644 --- a/Tests/RunCMake/CMakePresets/InvalidPresetVendor-stderr.txt +++ b/Tests/RunCMake/CMakePresets/InvalidPresetVendor-stderr.txt @@ -1,5 +1,5 @@ ^CMake Error: Could not read presets from [^ ]*/Tests/RunCMake/CMakePresets/InvalidPresetVendor: -Error: @8,17: Invalid preset +CMakePresets.json:8: Invalid preset "vendor": true \^$ diff --git a/Tests/RunCMake/CMakePresets/InvalidPresets-stderr.txt b/Tests/RunCMake/CMakePresets/InvalidPresets-stderr.txt index d7081af..40e7a6a 100644 --- a/Tests/RunCMake/CMakePresets/InvalidPresets-stderr.txt +++ b/Tests/RunCMake/CMakePresets/InvalidPresets-stderr.txt @@ -1,5 +1,5 @@ ^CMake Error: Could not read presets from [^ ]*/Tests/RunCMake/CMakePresets/InvalidPresets: -Error: @3,23: Invalid "configurePresets" field +CMakePresets.json:3: Invalid "configurePresets" field "configurePresets": {} \^$ diff --git a/Tests/RunCMake/CMakePresets/InvalidRoot-stderr.txt b/Tests/RunCMake/CMakePresets/InvalidRoot-stderr.txt index 5f2dcc1..39960db 100644 --- a/Tests/RunCMake/CMakePresets/InvalidRoot-stderr.txt +++ b/Tests/RunCMake/CMakePresets/InvalidRoot-stderr.txt @@ -1,5 +1,5 @@ ^CMake Error: Could not read presets from [^ ]*/Tests/RunCMake/CMakePresets/InvalidRoot: -Error: \@1\,1\: Invalid root object +CMakePresets.json:1: Invalid root object \[\] \^$ diff --git a/Tests/RunCMake/CMakePresets/InvalidToolsetStrategy-stderr.txt b/Tests/RunCMake/CMakePresets/InvalidToolsetStrategy-stderr.txt index d0974ac..644985e 100644 --- a/Tests/RunCMake/CMakePresets/InvalidToolsetStrategy-stderr.txt +++ b/Tests/RunCMake/CMakePresets/InvalidToolsetStrategy-stderr.txt @@ -1,5 +1,5 @@ ^CMake Error: Could not read presets from [^ ]*/Tests/RunCMake/CMakePresets/InvalidToolsetStrategy: -Error: @9,21: Invalid preset +CMakePresets.json:9: Invalid preset "strategy": {} \^$ diff --git a/Tests/RunCMake/CMakePresets/InvalidVariableValue-stderr.txt b/Tests/RunCMake/CMakePresets/InvalidVariableValue-stderr.txt index fdb7072..84e87b4 100644 --- a/Tests/RunCMake/CMakePresets/InvalidVariableValue-stderr.txt +++ b/Tests/RunCMake/CMakePresets/InvalidVariableValue-stderr.txt @@ -1,5 +1,5 @@ ^CMake Error: Could not read presets from [^ ]*/Tests/RunCMake/CMakePresets/InvalidVariableValue: -Error: @10,20: "value" expected a string +CMakePresets.json:10: "value" expected a string "value": \[\] \^$ diff --git a/Tests/RunCMake/CMakePresets/InvalidVariables-stderr.txt b/Tests/RunCMake/CMakePresets/InvalidVariables-stderr.txt index f329d97..b9a87ad 100644 --- a/Tests/RunCMake/CMakePresets/InvalidVariables-stderr.txt +++ b/Tests/RunCMake/CMakePresets/InvalidVariables-stderr.txt @@ -1,5 +1,5 @@ ^CMake Error: Could not read presets from [^ ]*/Tests/RunCMake/CMakePresets/InvalidVariables: -Error: @8,25: Invalid preset +CMakePresets.json:8: Invalid preset "cacheVariables": \[\] \^$ diff --git a/Tests/RunCMake/CMakePresets/InvalidVendor-stderr.txt b/Tests/RunCMake/CMakePresets/InvalidVendor-stderr.txt index fc6534e..6f8de99 100644 --- a/Tests/RunCMake/CMakePresets/InvalidVendor-stderr.txt +++ b/Tests/RunCMake/CMakePresets/InvalidVendor-stderr.txt @@ -1,5 +1,5 @@ ^CMake Error: Could not read presets from [^ ]*/Tests/RunCMake/CMakePresets/InvalidVendor: -Error: @3,13: Invalid root object +CMakePresets.json:3: Invalid root object "vendor": true, \^$ diff --git a/Tests/RunCMake/CMakePresets/InvalidVersion-stderr.txt b/Tests/RunCMake/CMakePresets/InvalidVersion-stderr.txt index 97fe9d6..b539eff 100644 --- a/Tests/RunCMake/CMakePresets/InvalidVersion-stderr.txt +++ b/Tests/RunCMake/CMakePresets/InvalidVersion-stderr.txt @@ -1,5 +1,5 @@ ^CMake Error: Could not read presets from [^ ]*/Tests/RunCMake/CMakePresets/InvalidVersion: -Error: @2,14: Invalid "version" field +CMakePresets.json:2: Invalid "version" field "version": "1.0", \^$ diff --git a/Tests/RunCMake/CMakePresets/LowVersion-stderr.txt b/Tests/RunCMake/CMakePresets/LowVersion-stderr.txt index f4f65f9..19b4fe8 100644 --- a/Tests/RunCMake/CMakePresets/LowVersion-stderr.txt +++ b/Tests/RunCMake/CMakePresets/LowVersion-stderr.txt @@ -1,5 +1,5 @@ ^CMake Error: Could not read presets from [^ ]*/Tests/RunCMake/CMakePresets/LowVersion: -Error: @2,14: Unrecognized "version" 0: must be >=1 and <=10 +CMakePresets.json:2: Unrecognized "version" 0: must be >=1 and <=10 "version": 0, \^ diff --git a/Tests/RunCMake/CMakePresets/MinimumRequiredInvalid-stderr.txt b/Tests/RunCMake/CMakePresets/MinimumRequiredInvalid-stderr.txt index 30ab9ce..8f50614 100644 --- a/Tests/RunCMake/CMakePresets/MinimumRequiredInvalid-stderr.txt +++ b/Tests/RunCMake/CMakePresets/MinimumRequiredInvalid-stderr.txt @@ -1,5 +1,5 @@ ^CMake Error: Could not read presets from [^ ]*/Tests/RunCMake/CMakePresets/MinimumRequiredInvalid: -Error: @3,27: Invalid "cmakeMinimumRequired" +CMakePresets.json:3: Invalid "cmakeMinimumRequired" "cmakeMinimumRequired": "3.18", \^$ diff --git a/Tests/RunCMake/CMakePresets/MinimumRequiredMajor-stderr.txt b/Tests/RunCMake/CMakePresets/MinimumRequiredMajor-stderr.txt index c9001ea..582b4de 100644 --- a/Tests/RunCMake/CMakePresets/MinimumRequiredMajor-stderr.txt +++ b/Tests/RunCMake/CMakePresets/MinimumRequiredMajor-stderr.txt @@ -1,5 +1,5 @@ ^CMake Error: Could not read presets from [^ ]*/Tests/RunCMake/CMakePresets/MinimumRequiredMajor: -Error: @4,14: "cmakeMinimumRequired" major version 1000 must be less than [0-9]* +CMakePresets.json:4: "cmakeMinimumRequired" major version 1000 must be less than [0-9]* "major": 1000 \^$ diff --git a/Tests/RunCMake/CMakePresets/MinimumRequiredMinor-stderr.txt b/Tests/RunCMake/CMakePresets/MinimumRequiredMinor-stderr.txt index 3911c84..1344a67 100644 --- a/Tests/RunCMake/CMakePresets/MinimumRequiredMinor-stderr.txt +++ b/Tests/RunCMake/CMakePresets/MinimumRequiredMinor-stderr.txt @@ -1,5 +1,5 @@ ^CMake Error: Could not read presets from [^ ]*/Tests/RunCMake/CMakePresets/MinimumRequiredMinor: -Error: @5,14: "cmakeMinimumRequired" minor version 1000 must be less than [0-9]* +CMakePresets.json:5: "cmakeMinimumRequired" minor version 1000 must be less than [0-9]* "minor": 1000 \^$ diff --git a/Tests/RunCMake/CMakePresets/MinimumRequiredPatch-stderr.txt b/Tests/RunCMake/CMakePresets/MinimumRequiredPatch-stderr.txt index e989fa8..0452442 100644 --- a/Tests/RunCMake/CMakePresets/MinimumRequiredPatch-stderr.txt +++ b/Tests/RunCMake/CMakePresets/MinimumRequiredPatch-stderr.txt @@ -1,5 +1,5 @@ ^CMake Error: Could not read presets from [^ ]*/Tests/RunCMake/CMakePresets/MinimumRequiredPatch: -Error: @6,14: "cmakeMinimumRequired" patch version 50000000 must be less than [0-9]* +CMakePresets.json:6: "cmakeMinimumRequired" patch version 50000000 must be less than [0-9]* "patch": 50000000 \^$ diff --git a/Tests/RunCMake/CMakePresets/NoPresetName-stderr.txt b/Tests/RunCMake/CMakePresets/NoPresetName-stderr.txt index 9aff07f..a00ba78 100644 --- a/Tests/RunCMake/CMakePresets/NoPresetName-stderr.txt +++ b/Tests/RunCMake/CMakePresets/NoPresetName-stderr.txt @@ -1,5 +1,5 @@ ^CMake Error: Could not read presets from [^ ]*/Tests/RunCMake/CMakePresets/NoPresetName: -Error: @4,5: Missing required field "name" in Preset +CMakePresets.json:4: Missing required field "name" in Preset { \^$ diff --git a/Tests/RunCMake/CMakePresets/NoVariableValue-stderr.txt b/Tests/RunCMake/CMakePresets/NoVariableValue-stderr.txt index 630c288..0ba51fc 100644 --- a/Tests/RunCMake/CMakePresets/NoVariableValue-stderr.txt +++ b/Tests/RunCMake/CMakePresets/NoVariableValue-stderr.txt @@ -1,5 +1,5 @@ ^CMake Error: Could not read presets from [^ ]*/Tests/RunCMake/CMakePresets/NoVariableValue: -Error: @9,16: Missing required field "value" in variable "VAR" for preset "NoVariableValue" +CMakePresets.json:9: Missing required field "value" in variable "VAR" for preset "NoVariableValue" "VAR": {} \^$ diff --git a/Tests/RunCMake/CMakePresets/PresetNotObject-stderr.txt b/Tests/RunCMake/CMakePresets/PresetNotObject-stderr.txt index 62e9248..d7df034 100644 --- a/Tests/RunCMake/CMakePresets/PresetNotObject-stderr.txt +++ b/Tests/RunCMake/CMakePresets/PresetNotObject-stderr.txt @@ -1,5 +1,5 @@ ^CMake Error: Could not read presets from [^ ]*/Tests/RunCMake/CMakePresets/PresetNotObject: -Error: @4,5: Invalid Preset +CMakePresets.json:4: Invalid Preset \[\] \^$ diff --git a/Tests/RunCMake/CMakePresets/UnknownArchitectureStrategy-stderr.txt b/Tests/RunCMake/CMakePresets/UnknownArchitectureStrategy-stderr.txt index 6063762..bd72eb0 100644 --- a/Tests/RunCMake/CMakePresets/UnknownArchitectureStrategy-stderr.txt +++ b/Tests/RunCMake/CMakePresets/UnknownArchitectureStrategy-stderr.txt @@ -1,5 +1,5 @@ ^CMake Error: Could not read presets from [^ ]*/Tests/RunCMake/CMakePresets/UnknownArchitectureStrategy: -Error: @9,21: Invalid preset +CMakePresets.json:9: Invalid preset "strategy": "unknown" \^$ diff --git a/Tests/RunCMake/CMakePresets/UnknownToolsetStrategy-stderr.txt b/Tests/RunCMake/CMakePresets/UnknownToolsetStrategy-stderr.txt index 55f9c7a..fd41955 100644 --- a/Tests/RunCMake/CMakePresets/UnknownToolsetStrategy-stderr.txt +++ b/Tests/RunCMake/CMakePresets/UnknownToolsetStrategy-stderr.txt @@ -1,5 +1,5 @@ ^CMake Error: Could not read presets from [^ ]*/Tests/RunCMake/CMakePresets/UnknownToolsetStrategy: -Error: @9,21: Invalid preset +CMakePresets.json:9: Invalid preset "strategy": "unknown" \^$ diff --git a/Tests/RunCMake/CMakePresets/VariableNotObject-stderr.txt b/Tests/RunCMake/CMakePresets/VariableNotObject-stderr.txt index ce1aa20..973fc95 100644 --- a/Tests/RunCMake/CMakePresets/VariableNotObject-stderr.txt +++ b/Tests/RunCMake/CMakePresets/VariableNotObject-stderr.txt @@ -1,5 +1,5 @@ ^CMake Error: Could not read presets from [^ ]*/Tests/RunCMake/CMakePresets/VariableNotObject: -Error: @9,16: Invalid CMake variable "VAR" for preset "VariableNotObject" +CMakePresets.json:9: Invalid CMake variable "VAR" for preset "VariableNotObject" "VAR": \[\] \^$ diff --git a/Tests/RunCMake/CTestResourceAllocation/dynamic-resource-nofile-ctest-s-stderr.txt b/Tests/RunCMake/CTestResourceAllocation/dynamic-resource-nofile-ctest-s-stderr.txt index 343f632..acba99d 100644 --- a/Tests/RunCMake/CTestResourceAllocation/dynamic-resource-nofile-ctest-s-stderr.txt +++ b/Tests/RunCMake/CTestResourceAllocation/dynamic-resource-nofile-ctest-s-stderr.txt @@ -1,5 +1,5 @@ ^Could not read/parse resource spec file [^ -]*/Tests/RunCMake/CTestResourceAllocation/dynamic-resource-nofile-ctest-s-build/dynamic-resspec\.json:[ ] +]*/Tests/RunCMake/CTestResourceAllocation/dynamic-resource-nofile-ctest-s-build/dynamic-resspec\.json: File not found: [^ ]*/Tests/RunCMake/CTestResourceAllocation/dynamic-resource-nofile-ctest-s-build/dynamic-resspec\.json CMake Error at [^ diff --git a/Tests/RunCMake/CTestResourceAllocation/invalid-nofile-ctest-stderr.txt b/Tests/RunCMake/CTestResourceAllocation/invalid-nofile-ctest-stderr.txt index df1135e..b7e8d7f 100644 --- a/Tests/RunCMake/CTestResourceAllocation/invalid-nofile-ctest-stderr.txt +++ b/Tests/RunCMake/CTestResourceAllocation/invalid-nofile-ctest-stderr.txt @@ -1,5 +1,5 @@ ^Could not read/parse resource spec file [^ -]*/Tests/RunCMake/CTestResourceAllocation/noexist\.json:[ ] +]*/Tests/RunCMake/CTestResourceAllocation/noexist\.json: File not found: [^ ]*/Tests/RunCMake/CTestResourceAllocation/noexist.json Errors while running CTest diff --git a/Tests/RunCMake/CTestResourceAllocation/invalid-not-json-ctest-stderr.txt b/Tests/RunCMake/CTestResourceAllocation/invalid-not-json-ctest-stderr.txt index 5bd9d97..c77ca8c 100644 --- a/Tests/RunCMake/CTestResourceAllocation/invalid-not-json-ctest-stderr.txt +++ b/Tests/RunCMake/CTestResourceAllocation/invalid-not-json-ctest-stderr.txt @@ -1,5 +1,5 @@ ^Could not read/parse resource spec file [^ -]*/Tests/RunCMake/CTestResourceAllocation/invalid\.json:[ ] +]*/Tests/RunCMake/CTestResourceAllocation/invalid\.json: JSON Parse Error: [^ ]*/Tests/RunCMake/CTestResourceAllocation/invalid\.json: \* Line 1, Column 1 diff --git a/Tests/RunCMake/Instrumentation/bad-hook-stderr.txt b/Tests/RunCMake/Instrumentation/bad-hook-stderr.txt index 651de1d..6ef5f48 100644 --- a/Tests/RunCMake/Instrumentation/bad-hook-stderr.txt +++ b/Tests/RunCMake/Instrumentation/bad-hook-stderr.txt @@ -1,4 +1,5 @@ -^CMake Error: + -Error: @3,13: Not a valid hook: "bad hook" +^CMake Error: Could not load instrumentation queries from [^ +]+: +bad-hook.json:3: Not a valid hook: "bad hook" "hooks": \["bad hook", "postGenerate", "preCMakeBuild", "postCMakeBuild", "postInstall"\] \^$ diff --git a/Tests/RunCMake/Instrumentation/bad-query-stderr.txt b/Tests/RunCMake/Instrumentation/bad-query-stderr.txt index caa0eec..93be7e4 100644 --- a/Tests/RunCMake/Instrumentation/bad-query-stderr.txt +++ b/Tests/RunCMake/Instrumentation/bad-query-stderr.txt @@ -1,4 +1,5 @@ -^CMake Error: + -Error: @3,42: Not a valid query: "bad query" +^CMake Error: Could not load instrumentation queries from [^ +]+: +bad-query.json:[0-9]+: Not a valid query: "bad query" "queries": \["staticSystemInformation", "bad query"\] \^$ diff --git a/Tests/RunCMake/Instrumentation/empty-stderr.txt b/Tests/RunCMake/Instrumentation/empty-stderr.txt index c8a5397..b5ae5f8 100644 --- a/Tests/RunCMake/Instrumentation/empty-stderr.txt +++ b/Tests/RunCMake/Instrumentation/empty-stderr.txt @@ -1,4 +1,5 @@ -^CMake Error: + -Error: @1,1: Missing required field "version" in root object +^CMake Error: Could not load instrumentation queries from [^ +]+: +empty.json:[0-9]+: Missing required field "version" in root object { \^$ -- cgit v0.12