================ @@ -336,3 +336,88 @@ TEST(MinidumpYAML, ExceptionStream_ExtraParameter) { 0xab, 0xad, 0xca, 0xfe}), *ExpectedContext); } + +TEST(MinidumpYAML, MemoryRegion_64bit) { + SmallString<0> Storage; + auto ExpectedFile = toBinary(Storage, R"( +--- !minidump +Streams: + - Type: Memory64List + Memory Ranges: + - Start of Memory Range: 0x7FFFFFCF0818283 + Content: '68656c6c6f' + - Start of Memory Range: 0x7FFFFFFF0818283 + Content: '776f726c64' + )"); + + ASSERT_THAT_EXPECTED(ExpectedFile, Succeeded()); + object::MinidumpFile &File = **ExpectedFile; + + ASSERT_THAT(File.streams().size(), 1u); + + Error Err = Error::success(); + // Explicit Err check + ASSERT_FALSE(Err); + Expected<iterator_range<object::MinidumpFile::FallibleMemory64Iterator>> + ExpectedMemoryList = File.getMemory64List(Err); + + ASSERT_THAT_EXPECTED(ExpectedMemoryList, Succeeded()); + + iterator_range<object::MinidumpFile::FallibleMemory64Iterator> MemoryList = + *ExpectedMemoryList; + auto Iterator = MemoryList.begin(); + + auto DescOnePair = *Iterator; + const minidump::MemoryDescriptor_64 &DescOne = DescOnePair.first; + ASSERT_THAT(DescOne.StartOfMemoryRange, 0x7FFFFFCF0818283u); + ASSERT_THAT(DescOne.DataSize, 5u); + ++Iterator; + ASSERT_FALSE(Err); + + auto DescTwoPair = *Iterator; + const minidump::MemoryDescriptor_64 &DescTwo = DescTwoPair.first; + ASSERT_THAT(DescTwo.StartOfMemoryRange, 0x7FFFFFFF0818283u); + ASSERT_THAT(DescTwo.DataSize, 5u); + ++Iterator; + ASSERT_FALSE(Err); + + const std::optional<ArrayRef<uint8_t>> ExpectedContent = + File.getRawStream(StreamType::Memory64List); + ASSERT_TRUE(ExpectedContent); + const size_t ExpectedStreamSize = + sizeof(Memory64ListHeader) + (sizeof(MemoryDescriptor_64) * 2); + ASSERT_THAT(ExpectedStreamSize, ExpectedContent->size()); ---------------- labath wrote:
and reverse the order here :) https://github.com/llvm/llvm-project/pull/101272 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits