Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1163)

Unified Diff: minidump/minidump_memory_writer_test.cc

Issue 639513002: Pull test utilities from MinidumpMemoryWriter’s test out into their own file (Closed) Base URL: https://chromium.googlesource.com/crashpad/crashpad@master
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: minidump/minidump_memory_writer_test.cc
diff --git a/minidump/minidump_memory_writer_test.cc b/minidump/minidump_memory_writer_test.cc
index 3e469874508899de782968fca7ec17dbb2c188d3..51546c078cff82afc7e2d5c3066c6f397aa6375f 100644
--- a/minidump/minidump_memory_writer_test.cc
+++ b/minidump/minidump_memory_writer_test.cc
@@ -21,6 +21,7 @@
#include "gtest/gtest.h"
#include "minidump/minidump_extensions.h"
#include "minidump/minidump_file_writer.h"
+#include "minidump/minidump_memory_writer_test_util.h"
#include "minidump/minidump_stream_writer.h"
#include "minidump/minidump_test_util.h"
#include "util/file/string_file_writer.h"
@@ -101,88 +102,6 @@ TEST(MinidumpMemoryWriter, EmptyMemoryList) {
EXPECT_EQ(0u, memory_list->NumberOfMemoryRanges);
}
-class TestMemoryWriter final : public MinidumpMemoryWriter {
- public:
- TestMemoryWriter(uint64_t base_address, size_t size, uint8_t value)
- : MinidumpMemoryWriter(),
- base_address_(base_address),
- expected_offset_(-1),
- size_(size),
- value_(value) {}
-
- ~TestMemoryWriter() {}
-
- protected:
- // MinidumpMemoryWriter:
- virtual uint64_t MemoryRangeBaseAddress() const override {
- EXPECT_EQ(state(), kStateFrozen);
- return base_address_;
- }
-
- virtual size_t MemoryRangeSize() const override {
- EXPECT_GE(state(), kStateFrozen);
- return size_;
- }
-
- // MinidumpWritable:
- virtual bool WillWriteAtOffsetImpl(off_t offset) override {
- EXPECT_EQ(state(), kStateFrozen);
- expected_offset_ = offset;
- bool rv = MinidumpMemoryWriter::WillWriteAtOffsetImpl(offset);
- EXPECT_TRUE(rv);
- return rv;
- }
-
- virtual bool WriteObject(FileWriterInterface* file_writer) override {
- EXPECT_EQ(state(), kStateWritable);
- EXPECT_EQ(expected_offset_, file_writer->Seek(0, SEEK_CUR));
-
- bool rv = true;
- if (size_ > 0) {
- std::string data(size_, value_);
- rv = file_writer->Write(&data[0], size_);
- EXPECT_TRUE(rv);
- }
-
- return rv;
- }
-
- private:
- uint64_t base_address_;
- off_t expected_offset_;
- size_t size_;
- uint8_t value_;
-
- DISALLOW_COPY_AND_ASSIGN(TestMemoryWriter);
-};
-
-void ExpectMemoryDescriptorAndContents(
- const MINIDUMP_MEMORY_DESCRIPTOR* expected,
- const MINIDUMP_MEMORY_DESCRIPTOR* observed,
- const std::string& file_contents,
- uint8_t value,
- bool at_eof) {
- const uint32_t kMemoryAlignment = 16;
-
- EXPECT_EQ(expected->StartOfMemoryRange, observed->StartOfMemoryRange);
- EXPECT_EQ(expected->Memory.DataSize, observed->Memory.DataSize);
- EXPECT_EQ(
- (expected->Memory.Rva + kMemoryAlignment - 1) & ~(kMemoryAlignment - 1),
- observed->Memory.Rva);
- if (at_eof) {
- EXPECT_EQ(file_contents.size(),
- observed->Memory.Rva + observed->Memory.DataSize);
- } else {
- EXPECT_GE(file_contents.size(),
- observed->Memory.Rva + observed->Memory.DataSize);
- }
-
- std::string expected_data(expected->Memory.DataSize, value);
- std::string observed_data(&file_contents[observed->Memory.Rva],
- observed->Memory.DataSize);
- EXPECT_EQ(expected_data, observed_data);
-}
-
TEST(MinidumpMemoryWriter, OneMemoryRegion) {
MinidumpFileWriter minidump_file_writer;
MinidumpMemoryListWriter memory_list_writer;
@@ -191,7 +110,7 @@ TEST(MinidumpMemoryWriter, OneMemoryRegion) {
const uint64_t kSize = 0x1000;
const uint8_t kValue = 'm';
- TestMemoryWriter memory_writer(kBaseAddress, kSize, kValue);
+ TestMinidumpMemoryWriter memory_writer(kBaseAddress, kSize, kValue);
memory_list_writer.AddMemory(&memory_writer);
minidump_file_writer.AddStream(&memory_list_writer);
@@ -212,11 +131,11 @@ TEST(MinidumpMemoryWriter, OneMemoryRegion) {
sizeof(MINIDUMP_HEADER) + sizeof(MINIDUMP_DIRECTORY) +
sizeof(MINIDUMP_MEMORY_LIST) +
memory_list->NumberOfMemoryRanges * sizeof(MINIDUMP_MEMORY_DESCRIPTOR);
- ExpectMemoryDescriptorAndContents(&expected,
- &memory_list->MemoryRanges[0],
- file_writer.string(),
- kValue,
- true);
+ ExpectMinidumpMemoryDescriptorAndContents(&expected,
+ &memory_list->MemoryRanges[0],
+ file_writer.string(),
+ kValue,
+ true);
}
TEST(MinidumpMemoryWriter, TwoMemoryRegions) {
@@ -230,9 +149,9 @@ TEST(MinidumpMemoryWriter, TwoMemoryRegions) {
const uint64_t kSize2 = 0x0200;
const uint8_t kValue2 = '!';
- TestMemoryWriter memory_writer_1(kBaseAddress1, kSize1, kValue1);
+ TestMinidumpMemoryWriter memory_writer_1(kBaseAddress1, kSize1, kValue1);
memory_list_writer.AddMemory(&memory_writer_1);
- TestMemoryWriter memory_writer_2(kBaseAddress2, kSize2, kValue2);
+ TestMinidumpMemoryWriter memory_writer_2(kBaseAddress2, kSize2, kValue2);
memory_list_writer.AddMemory(&memory_writer_2);
minidump_file_writer.AddStream(&memory_list_writer);
@@ -259,11 +178,11 @@ TEST(MinidumpMemoryWriter, TwoMemoryRegions) {
sizeof(MINIDUMP_HEADER) + sizeof(MINIDUMP_DIRECTORY) +
sizeof(MINIDUMP_MEMORY_LIST) +
memory_list->NumberOfMemoryRanges * sizeof(MINIDUMP_MEMORY_DESCRIPTOR);
- ExpectMemoryDescriptorAndContents(&expected,
- &memory_list->MemoryRanges[0],
- file_writer.string(),
- kValue1,
- false);
+ ExpectMinidumpMemoryDescriptorAndContents(&expected,
+ &memory_list->MemoryRanges[0],
+ file_writer.string(),
+ kValue1,
+ false);
}
{
@@ -273,11 +192,11 @@ TEST(MinidumpMemoryWriter, TwoMemoryRegions) {
expected.Memory.DataSize = kSize2;
expected.Memory.Rva = memory_list->MemoryRanges[0].Memory.Rva +
memory_list->MemoryRanges[0].Memory.DataSize;
- ExpectMemoryDescriptorAndContents(&expected,
- &memory_list->MemoryRanges[1],
- file_writer.string(),
- kValue2,
- true);
+ ExpectMinidumpMemoryDescriptorAndContents(&expected,
+ &memory_list->MemoryRanges[1],
+ file_writer.string(),
+ kValue2,
+ true);
}
}
@@ -288,7 +207,7 @@ class TestMemoryStream final : public internal::MinidumpStreamWriter {
~TestMemoryStream() {}
- TestMemoryWriter* memory() { return &memory_; }
+ TestMinidumpMemoryWriter* memory() { return &memory_; }
// MinidumpStreamWriter:
virtual MinidumpStreamType StreamType() const override {
@@ -314,7 +233,7 @@ class TestMemoryStream final : public internal::MinidumpStreamWriter {
}
private:
- TestMemoryWriter memory_;
+ TestMinidumpMemoryWriter memory_;
DISALLOW_COPY_AND_ASSIGN(TestMemoryStream);
};
@@ -339,7 +258,7 @@ TEST(MinidumpMemoryWriter, ExtraMemory) {
const uint64_t kSize2 = 0x0400;
const uint8_t kValue2 = 'm';
- TestMemoryWriter memory_writer(kBaseAddress2, kSize2, kValue2);
+ TestMinidumpMemoryWriter memory_writer(kBaseAddress2, kSize2, kValue2);
memory_list_writer.AddMemory(&memory_writer);
minidump_file_writer.AddStream(&memory_list_writer);
@@ -366,11 +285,11 @@ TEST(MinidumpMemoryWriter, ExtraMemory) {
sizeof(MINIDUMP_HEADER) + 2 * sizeof(MINIDUMP_DIRECTORY) +
sizeof(MINIDUMP_MEMORY_LIST) +
memory_list->NumberOfMemoryRanges * sizeof(MINIDUMP_MEMORY_DESCRIPTOR);
- ExpectMemoryDescriptorAndContents(&expected,
- &memory_list->MemoryRanges[0],
- file_writer.string(),
- kValue1,
- false);
+ ExpectMinidumpMemoryDescriptorAndContents(&expected,
+ &memory_list->MemoryRanges[0],
+ file_writer.string(),
+ kValue1,
+ false);
}
{
@@ -380,11 +299,11 @@ TEST(MinidumpMemoryWriter, ExtraMemory) {
expected.Memory.DataSize = kSize2;
expected.Memory.Rva = memory_list->MemoryRanges[0].Memory.Rva +
memory_list->MemoryRanges[0].Memory.DataSize;
- ExpectMemoryDescriptorAndContents(&expected,
- &memory_list->MemoryRanges[1],
- file_writer.string(),
- kValue2,
- true);
+ ExpectMinidumpMemoryDescriptorAndContents(&expected,
+ &memory_list->MemoryRanges[1],
+ file_writer.string(),
+ kValue2,
+ true);
}
}

Powered by Google App Engine
This is Rietveld 408576698