diff options
Diffstat (limited to 'lldb/unittests/Process')
-rw-r--r-- | lldb/unittests/Process/minidump/CMakeLists.txt | 3 | ||||
-rw-r--r-- | lldb/unittests/Process/minidump/Inputs/bad_duplicate_streams.dmp | bin | 32976 -> 0 bytes | |||
-rw-r--r-- | lldb/unittests/Process/minidump/Inputs/bad_overlapping_streams.dmp | bin | 32976 -> 0 bytes | |||
-rw-r--r-- | lldb/unittests/Process/minidump/MinidumpParserTest.cpp | 41 |
4 files changed, 22 insertions, 22 deletions
diff --git a/lldb/unittests/Process/minidump/CMakeLists.txt b/lldb/unittests/Process/minidump/CMakeLists.txt index 9e3a18e740b..9cbd7a9d9f3 100644 --- a/lldb/unittests/Process/minidump/CMakeLists.txt +++ b/lldb/unittests/Process/minidump/CMakeLists.txt @@ -11,12 +11,11 @@ add_lldb_unittest(LLDBMinidumpTests lldbUtilityHelpers LLVMTestingSupport LINK_COMPONENTS + ObjectYAML Support ) set(test_inputs - bad_duplicate_streams.dmp - bad_overlapping_streams.dmp fizzbuzz_no_heap.dmp fizzbuzz_wow64.dmp linux-i386.dmp diff --git a/lldb/unittests/Process/minidump/Inputs/bad_duplicate_streams.dmp b/lldb/unittests/Process/minidump/Inputs/bad_duplicate_streams.dmp Binary files differdeleted file mode 100644 index d9be8e28571..00000000000 --- a/lldb/unittests/Process/minidump/Inputs/bad_duplicate_streams.dmp +++ /dev/null diff --git a/lldb/unittests/Process/minidump/Inputs/bad_overlapping_streams.dmp b/lldb/unittests/Process/minidump/Inputs/bad_overlapping_streams.dmp Binary files differdeleted file mode 100644 index f131ae7d105..00000000000 --- a/lldb/unittests/Process/minidump/Inputs/bad_overlapping_streams.dmp +++ /dev/null diff --git a/lldb/unittests/Process/minidump/MinidumpParserTest.cpp b/lldb/unittests/Process/minidump/MinidumpParserTest.cpp index ba727e0fac2..a49d0c28452 100644 --- a/lldb/unittests/Process/minidump/MinidumpParserTest.cpp +++ b/lldb/unittests/Process/minidump/MinidumpParserTest.cpp @@ -14,10 +14,12 @@ #include "lldb/Host/FileSystem.h" #include "lldb/Target/MemoryRegionInfo.h" #include "lldb/Utility/ArchSpec.h" +#include "lldb/Utility/DataBufferHeap.h" #include "lldb/Utility/DataExtractor.h" #include "lldb/Utility/FileSpec.h" #include "llvm/ADT/ArrayRef.h" #include "llvm/ADT/Optional.h" +#include "llvm/ObjectYAML/MinidumpYAML.h" #include "llvm/Support/FileSystem.h" #include "llvm/Support/MemoryBuffer.h" #include "llvm/Support/Path.h" @@ -49,18 +51,28 @@ public: ASSERT_GT(parser->GetData().size(), 0UL); } - void InvalidMinidump(const char *minidump_filename, uint64_t load_size) { - std::string filename = GetInputFilePath(minidump_filename); - auto BufferPtr = - FileSystem::Instance().CreateDataBuffer(filename, load_size, 0); - ASSERT_NE(BufferPtr, nullptr); - - EXPECT_THAT_EXPECTED(MinidumpParser::Create(BufferPtr), llvm::Failed()); - } - llvm::Optional<MinidumpParser> parser; }; +TEST_F(MinidumpParserTest, InvalidMinidump) { + std::string duplicate_streams; + llvm::raw_string_ostream os(duplicate_streams); + ASSERT_THAT_ERROR(llvm::MinidumpYAML::writeAsBinary(R"( +--- !minidump +Streams: + - Type: LinuxAuxv + Content: DEADBEEFBAADF00D + - Type: LinuxAuxv + Content: DEADBEEFBAADF00D + )", + os), + llvm::Succeeded()); + os.flush(); + auto data_buffer_sp = std::make_shared<DataBufferHeap>( + duplicate_streams.data(), duplicate_streams.size()); + ASSERT_THAT_EXPECTED(MinidumpParser::Create(data_buffer_sp), llvm::Failed()); +} + TEST_F(MinidumpParserTest, GetThreadsAndGetThreadContext) { SetUpData("linux-x86_64.dmp"); llvm::ArrayRef<MinidumpThread> thread_list; @@ -146,17 +158,6 @@ TEST_F(MinidumpParserTest, GetMemoryListPadded) { EXPECT_EQ((lldb::addr_t)0x8010, mem->start); } -TEST_F(MinidumpParserTest, TruncatedMinidumps) { - InvalidMinidump("linux-x86_64.dmp", 32); - InvalidMinidump("linux-x86_64.dmp", 100); - InvalidMinidump("linux-x86_64.dmp", 20 * 1024); -} - -TEST_F(MinidumpParserTest, IllFormedMinidumps) { - InvalidMinidump("bad_duplicate_streams.dmp", -1); - InvalidMinidump("bad_overlapping_streams.dmp", -1); -} - TEST_F(MinidumpParserTest, GetArchitecture) { SetUpData("linux-x86_64.dmp"); ASSERT_EQ(llvm::Triple::ArchType::x86_64, |