| 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);
 | 
|    }
 | 
|  }
 | 
|  
 | 
| 
 |