[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