[Lldb-commits] [lldb] c46587b - [lldb][Test] Propagate llvm::yaml error message in TestFile::fromYaml
Michael Buch via lldb-commits
lldb-commits at lists.llvm.org
Thu Dec 15 14:46:10 PST 2022
Author: Michael Buch
Date: 2022-12-15T22:45:46Z
New Revision: c46587bb83232bd639c1e6ba6bce2f290941675d
URL: https://github.com/llvm/llvm-project/commit/c46587bb83232bd639c1e6ba6bce2f290941675d
DIFF: https://github.com/llvm/llvm-project/commit/c46587bb83232bd639c1e6ba6bce2f290941675d.diff
LOG: [lldb][Test] Propagate llvm::yaml error message in TestFile::fromYaml
Currently the test-suite would swallow the error message
on `llvm::yaml::convertYAML` failures.
This patch simply propagates the error string up to the caller.
Before patch:
```
[ RUN ] DWARFASTParserClangTests.TestDefaultTemplateParamParsing
/Users/michaelbuch/Git/llvm-worktrees/playground/lldb/unittests/TestingSupport/Symbol/YAMLModuleTester.cpp:19: Failure
Value of: llvm::detail::TakeExpected(File)
Expected: succeeded
Actual: failed (convertYAML() failed: )
Assertion failed: (!HasError && "Cannot get value when an error exists!"), function getStorage, file Error.h, line 671.
```
After patch:
```
[ RUN ] DWARFASTParserClangTests.TestDefaultTemplateParamParsing
/Users/michaelbuch/Git/llvm-worktrees/playground/lldb/unittests/TestingSupport/Symbol/YAMLModuleTester.cpp:19: Failure
Value of: llvm::detail::TakeExpected(File)
Expected: succeeded
Actual: failed (convertYAML() failed: wrote too much data somewhere, section offsets don't line up)
Assertion failed: (!HasError && "Cannot get value when an error exists!"), function getStorage, file Error.h, line 671.
```
Differential Revision: https://reviews.llvm.org/D140112
Added:
Modified:
lldb/unittests/TestingSupport/TestUtilities.cpp
Removed:
################################################################################
diff --git a/lldb/unittests/TestingSupport/TestUtilities.cpp b/lldb/unittests/TestingSupport/TestUtilities.cpp
index 86f3d1a7dfa75..9e5523e487547 100644
--- a/lldb/unittests/TestingSupport/TestUtilities.cpp
+++ b/lldb/unittests/TestingSupport/TestUtilities.cpp
@@ -30,9 +30,11 @@ llvm::Expected<TestFile> TestFile::fromYaml(llvm::StringRef Yaml) {
std::string Buffer;
llvm::raw_string_ostream OS(Buffer);
llvm::yaml::Input YIn(Yaml);
- if (!llvm::yaml::convertYAML(YIn, OS, [](const llvm::Twine &Msg) {}))
- return llvm::createStringError(llvm::inconvertibleErrorCode(),
- "convertYAML() failed");
+ std::string ErrorMsg("convertYAML() failed: ");
+ if (!llvm::yaml::convertYAML(YIn, OS, [&ErrorMsg](const llvm::Twine &Msg) {
+ ErrorMsg += Msg.str();
+ }))
+ return llvm::createStringError(llvm::inconvertibleErrorCode(), ErrorMsg);
return TestFile(std::move(Buffer));
}
More information about the lldb-commits
mailing list