[PATCH] D116106: [unittest][DebugInfo/DWARF] Check that dwarfgen::Generator is created
Igor Kudrin via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Dec 21 06:59:17 PST 2021
ikudrin created this revision.
ikudrin added reviewers: dblaikie, jhenderson, probinson, MaskRay.
ikudrin added a project: LLVM.
ikudrin requested review of this revision.
If `Generator::create()` returns an error, tests should fail gracefully and report the cause, for example:
[ RUN ] DebugLineBasicFixture.ParserSkipsCorrectly
.../llvm/unittests/DebugInfo/DWARF/DWARFDebugLineTest.cpp:47: Failure
Value of: llvm::detail::TakeExpected(ExpectedGenerator)
Expected: succeeded
Actual: failed (no asm backend for target nvptx64-nvidia-cuda)
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D116106
Files:
llvm/unittests/DebugInfo/DWARF/DWARFDebugLineTest.cpp
Index: llvm/unittests/DebugInfo/DWARF/DWARFDebugLineTest.cpp
===================================================================
--- llvm/unittests/DebugInfo/DWARF/DWARFDebugLineTest.cpp
+++ llvm/unittests/DebugInfo/DWARF/DWARFDebugLineTest.cpp
@@ -36,16 +36,21 @@
EXPECT_FALSE(Unrecoverable);
}
- bool setupGenerator(uint16_t Version = 4, uint8_t AddrSize = 8) {
+ // Note: ASSERT_THAT_EXPECTED cannot be used in a non-void function, so
+ // setupGenerator() is split into two.
+ void setupGeneratorImpl(uint16_t Version, uint8_t AddrSize) {
AddressSize = AddrSize;
- Triple T =
- getDefaultTargetTripleForAddrSize(AddressSize == 0 ? 8 : AddressSize);
+ Triple T = getDefaultTargetTripleForAddrSize(AddressSize ? AddressSize : 8);
if (!isConfigurationSupported(T))
- return false;
+ return;
auto ExpectedGenerator = Generator::create(T, Version);
- if (ExpectedGenerator)
- Gen.reset(ExpectedGenerator->release());
- return true;
+ ASSERT_THAT_EXPECTED(ExpectedGenerator, Succeeded());
+ Gen.reset(ExpectedGenerator->release());
+ }
+
+ bool setupGenerator(uint16_t Version = 4, uint8_t AddrSize = 8) {
+ setupGeneratorImpl(Version, AddrSize);
+ return Gen != nullptr;
}
void generate() {
@@ -60,8 +65,7 @@
}
std::unique_ptr<DWARFContext> createContext() {
- if (!Gen)
- return nullptr;
+ assert(Gen != nullptr && "Generator is not set up");
StringRef FileBytes = Gen->generate();
MemoryBufferRef FileBuffer(FileBytes, "dwarf");
auto Obj = object::ObjectFile::createObjectFile(FileBuffer);
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D116106.395666.patch
Type: text/x-patch
Size: 1610 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20211221/e19af9c5/attachment.bin>
More information about the llvm-commits
mailing list