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

Side by Side Diff: minidump/minidump_memory_writer_test.cc

Issue 1513573005: Provide std::move() in compat instead of using crashpad::move() (Closed) Base URL: https://chromium.googlesource.com/crashpad/crashpad@master
Patch Set: Created 5 years 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 unified diff | Download patch
« no previous file with comments | « minidump/minidump_memory_writer.cc ('k') | minidump/minidump_misc_info_writer_test.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Crashpad Authors. All rights reserved. 1 // Copyright 2014 The Crashpad Authors. All rights reserved.
2 // 2 //
3 // Licensed under the Apache License, Version 2.0 (the "License"); 3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License. 4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at 5 // You may obtain a copy of the License at
6 // 6 //
7 // http://www.apache.org/licenses/LICENSE-2.0 7 // http://www.apache.org/licenses/LICENSE-2.0
8 // 8 //
9 // Unless required by applicable law or agreed to in writing, software 9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS, 10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and 12 // See the License for the specific language governing permissions and
13 // limitations under the License. 13 // limitations under the License.
14 14
15 #include "minidump/minidump_memory_writer.h" 15 #include "minidump/minidump_memory_writer.h"
16 16
17 #include <windows.h> 17 #include <windows.h>
18 #include <dbghelp.h> 18 #include <dbghelp.h>
19 #include <stdint.h> 19 #include <stdint.h>
20 20
21 #include <utility>
22
21 #include "base/basictypes.h" 23 #include "base/basictypes.h"
22 #include "base/format_macros.h" 24 #include "base/format_macros.h"
23 #include "base/strings/stringprintf.h" 25 #include "base/strings/stringprintf.h"
24 #include "gtest/gtest.h" 26 #include "gtest/gtest.h"
25 #include "minidump/minidump_extensions.h" 27 #include "minidump/minidump_extensions.h"
26 #include "minidump/minidump_file_writer.h" 28 #include "minidump/minidump_file_writer.h"
27 #include "minidump/minidump_stream_writer.h" 29 #include "minidump/minidump_stream_writer.h"
28 #include "minidump/test/minidump_file_writer_test_util.h" 30 #include "minidump/test/minidump_file_writer_test_util.h"
29 #include "minidump/test/minidump_memory_writer_test_util.h" 31 #include "minidump/test/minidump_memory_writer_test_util.h"
30 #include "minidump/test/minidump_writable_test_util.h" 32 #include "minidump/test/minidump_writable_test_util.h"
31 #include "snapshot/test/test_memory_snapshot.h" 33 #include "snapshot/test/test_memory_snapshot.h"
32 #include "util/file/string_file.h" 34 #include "util/file/string_file.h"
33 #include "util/stdlib/move.h"
34 #include "util/stdlib/pointer_container.h" 35 #include "util/stdlib/pointer_container.h"
35 36
36 namespace crashpad { 37 namespace crashpad {
37 namespace test { 38 namespace test {
38 namespace { 39 namespace {
39 40
40 const MinidumpStreamType kBogusStreamType = 41 const MinidumpStreamType kBogusStreamType =
41 static_cast<MinidumpStreamType>(1234); 42 static_cast<MinidumpStreamType>(1234);
42 43
43 // expected_streams is the expected number of streams in the file. The memory 44 // expected_streams is the expected number of streams in the file. The memory
(...skipping 30 matching lines...) Expand all
74 75
75 *memory_list = MinidumpWritableAtLocationDescriptor<MINIDUMP_MEMORY_LIST>( 76 *memory_list = MinidumpWritableAtLocationDescriptor<MINIDUMP_MEMORY_LIST>(
76 file_contents, directory[directory_index].Location); 77 file_contents, directory[directory_index].Location);
77 ASSERT_TRUE(memory_list); 78 ASSERT_TRUE(memory_list);
78 } 79 }
79 80
80 TEST(MinidumpMemoryWriter, EmptyMemoryList) { 81 TEST(MinidumpMemoryWriter, EmptyMemoryList) {
81 MinidumpFileWriter minidump_file_writer; 82 MinidumpFileWriter minidump_file_writer;
82 auto memory_list_writer = make_scoped_ptr(new MinidumpMemoryListWriter()); 83 auto memory_list_writer = make_scoped_ptr(new MinidumpMemoryListWriter());
83 84
84 minidump_file_writer.AddStream(crashpad::move(memory_list_writer)); 85 minidump_file_writer.AddStream(std::move(memory_list_writer));
85 86
86 StringFile string_file; 87 StringFile string_file;
87 ASSERT_TRUE(minidump_file_writer.WriteEverything(&string_file)); 88 ASSERT_TRUE(minidump_file_writer.WriteEverything(&string_file));
88 89
89 ASSERT_EQ(sizeof(MINIDUMP_HEADER) + sizeof(MINIDUMP_DIRECTORY) + 90 ASSERT_EQ(sizeof(MINIDUMP_HEADER) + sizeof(MINIDUMP_DIRECTORY) +
90 sizeof(MINIDUMP_MEMORY_LIST), 91 sizeof(MINIDUMP_MEMORY_LIST),
91 string_file.string().size()); 92 string_file.string().size());
92 93
93 const MINIDUMP_MEMORY_LIST* memory_list = nullptr; 94 const MINIDUMP_MEMORY_LIST* memory_list = nullptr;
94 ASSERT_NO_FATAL_FAILURE( 95 ASSERT_NO_FATAL_FAILURE(
95 GetMemoryListStream(string_file.string(), &memory_list, 1)); 96 GetMemoryListStream(string_file.string(), &memory_list, 1));
96 97
97 EXPECT_EQ(0u, memory_list->NumberOfMemoryRanges); 98 EXPECT_EQ(0u, memory_list->NumberOfMemoryRanges);
98 } 99 }
99 100
100 TEST(MinidumpMemoryWriter, OneMemoryRegion) { 101 TEST(MinidumpMemoryWriter, OneMemoryRegion) {
101 MinidumpFileWriter minidump_file_writer; 102 MinidumpFileWriter minidump_file_writer;
102 auto memory_list_writer = make_scoped_ptr(new MinidumpMemoryListWriter()); 103 auto memory_list_writer = make_scoped_ptr(new MinidumpMemoryListWriter());
103 104
104 const uint64_t kBaseAddress = 0xfedcba9876543210; 105 const uint64_t kBaseAddress = 0xfedcba9876543210;
105 const uint64_t kSize = 0x1000; 106 const uint64_t kSize = 0x1000;
106 const uint8_t kValue = 'm'; 107 const uint8_t kValue = 'm';
107 108
108 auto memory_writer = make_scoped_ptr( 109 auto memory_writer = make_scoped_ptr(
109 new TestMinidumpMemoryWriter(kBaseAddress, kSize, kValue)); 110 new TestMinidumpMemoryWriter(kBaseAddress, kSize, kValue));
110 memory_list_writer->AddMemory(crashpad::move(memory_writer)); 111 memory_list_writer->AddMemory(std::move(memory_writer));
111 112
112 minidump_file_writer.AddStream(crashpad::move(memory_list_writer)); 113 minidump_file_writer.AddStream(std::move(memory_list_writer));
113 114
114 StringFile string_file; 115 StringFile string_file;
115 ASSERT_TRUE(minidump_file_writer.WriteEverything(&string_file)); 116 ASSERT_TRUE(minidump_file_writer.WriteEverything(&string_file));
116 117
117 const MINIDUMP_MEMORY_LIST* memory_list = nullptr; 118 const MINIDUMP_MEMORY_LIST* memory_list = nullptr;
118 ASSERT_NO_FATAL_FAILURE( 119 ASSERT_NO_FATAL_FAILURE(
119 GetMemoryListStream(string_file.string(), &memory_list, 1)); 120 GetMemoryListStream(string_file.string(), &memory_list, 1));
120 121
121 MINIDUMP_MEMORY_DESCRIPTOR expected; 122 MINIDUMP_MEMORY_DESCRIPTOR expected;
122 expected.StartOfMemoryRange = kBaseAddress; 123 expected.StartOfMemoryRange = kBaseAddress;
(...skipping 15 matching lines...) Expand all
138 139
139 const uint64_t kBaseAddress0 = 0xc0ffee; 140 const uint64_t kBaseAddress0 = 0xc0ffee;
140 const uint64_t kSize0 = 0x0100; 141 const uint64_t kSize0 = 0x0100;
141 const uint8_t kValue0 = '6'; 142 const uint8_t kValue0 = '6';
142 const uint64_t kBaseAddress1 = 0xfac00fac; 143 const uint64_t kBaseAddress1 = 0xfac00fac;
143 const uint64_t kSize1 = 0x0200; 144 const uint64_t kSize1 = 0x0200;
144 const uint8_t kValue1 = '!'; 145 const uint8_t kValue1 = '!';
145 146
146 auto memory_writer_0 = make_scoped_ptr( 147 auto memory_writer_0 = make_scoped_ptr(
147 new TestMinidumpMemoryWriter(kBaseAddress0, kSize0, kValue0)); 148 new TestMinidumpMemoryWriter(kBaseAddress0, kSize0, kValue0));
148 memory_list_writer->AddMemory(crashpad::move(memory_writer_0)); 149 memory_list_writer->AddMemory(std::move(memory_writer_0));
149 auto memory_writer_1 = make_scoped_ptr( 150 auto memory_writer_1 = make_scoped_ptr(
150 new TestMinidumpMemoryWriter(kBaseAddress1, kSize1, kValue1)); 151 new TestMinidumpMemoryWriter(kBaseAddress1, kSize1, kValue1));
151 memory_list_writer->AddMemory(crashpad::move(memory_writer_1)); 152 memory_list_writer->AddMemory(std::move(memory_writer_1));
152 153
153 minidump_file_writer.AddStream(crashpad::move(memory_list_writer)); 154 minidump_file_writer.AddStream(std::move(memory_list_writer));
154 155
155 StringFile string_file; 156 StringFile string_file;
156 ASSERT_TRUE(minidump_file_writer.WriteEverything(&string_file)); 157 ASSERT_TRUE(minidump_file_writer.WriteEverything(&string_file));
157 158
158 const MINIDUMP_MEMORY_LIST* memory_list = nullptr; 159 const MINIDUMP_MEMORY_LIST* memory_list = nullptr;
159 ASSERT_NO_FATAL_FAILURE( 160 ASSERT_NO_FATAL_FAILURE(
160 GetMemoryListStream(string_file.string(), &memory_list, 1)); 161 GetMemoryListStream(string_file.string(), &memory_list, 1));
161 162
162 EXPECT_EQ(2u, memory_list->NumberOfMemoryRanges); 163 EXPECT_EQ(2u, memory_list->NumberOfMemoryRanges);
163 164
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
242 243
243 const uint64_t kBaseAddress0 = 0x1000; 244 const uint64_t kBaseAddress0 = 0x1000;
244 const size_t kSize0 = 0x0400; 245 const size_t kSize0 = 0x0400;
245 const uint8_t kValue0 = '1'; 246 const uint8_t kValue0 = '1';
246 auto test_memory_stream = 247 auto test_memory_stream =
247 make_scoped_ptr(new TestMemoryStream(kBaseAddress0, kSize0, kValue0)); 248 make_scoped_ptr(new TestMemoryStream(kBaseAddress0, kSize0, kValue0));
248 249
249 auto memory_list_writer = make_scoped_ptr(new MinidumpMemoryListWriter()); 250 auto memory_list_writer = make_scoped_ptr(new MinidumpMemoryListWriter());
250 memory_list_writer->AddExtraMemory(test_memory_stream->memory()); 251 memory_list_writer->AddExtraMemory(test_memory_stream->memory());
251 252
252 minidump_file_writer.AddStream(crashpad::move(test_memory_stream)); 253 minidump_file_writer.AddStream(std::move(test_memory_stream));
253 254
254 const uint64_t kBaseAddress1 = 0x2000; 255 const uint64_t kBaseAddress1 = 0x2000;
255 const size_t kSize1 = 0x0400; 256 const size_t kSize1 = 0x0400;
256 const uint8_t kValue1 = 'm'; 257 const uint8_t kValue1 = 'm';
257 258
258 auto memory_writer = make_scoped_ptr( 259 auto memory_writer = make_scoped_ptr(
259 new TestMinidumpMemoryWriter(kBaseAddress1, kSize1, kValue1)); 260 new TestMinidumpMemoryWriter(kBaseAddress1, kSize1, kValue1));
260 memory_list_writer->AddMemory(crashpad::move(memory_writer)); 261 memory_list_writer->AddMemory(std::move(memory_writer));
261 262
262 minidump_file_writer.AddStream(crashpad::move(memory_list_writer)); 263 minidump_file_writer.AddStream(std::move(memory_list_writer));
263 264
264 StringFile string_file; 265 StringFile string_file;
265 ASSERT_TRUE(minidump_file_writer.WriteEverything(&string_file)); 266 ASSERT_TRUE(minidump_file_writer.WriteEverything(&string_file));
266 267
267 const MINIDUMP_MEMORY_LIST* memory_list = nullptr; 268 const MINIDUMP_MEMORY_LIST* memory_list = nullptr;
268 ASSERT_NO_FATAL_FAILURE( 269 ASSERT_NO_FATAL_FAILURE(
269 GetMemoryListStream(string_file.string(), &memory_list, 2)); 270 GetMemoryListStream(string_file.string(), &memory_list, 2));
270 271
271 EXPECT_EQ(2u, memory_list->NumberOfMemoryRanges); 272 EXPECT_EQ(2u, memory_list->NumberOfMemoryRanges);
272 273
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
330 expect_memory_descriptors[index].StartOfMemoryRange); 331 expect_memory_descriptors[index].StartOfMemoryRange);
331 memory_snapshot->SetSize(expect_memory_descriptors[index].Memory.DataSize); 332 memory_snapshot->SetSize(expect_memory_descriptors[index].Memory.DataSize);
332 memory_snapshot->SetValue(values[index]); 333 memory_snapshot->SetValue(values[index]);
333 memory_snapshots.push_back(memory_snapshot); 334 memory_snapshots.push_back(memory_snapshot);
334 } 335 }
335 336
336 auto memory_list_writer = make_scoped_ptr(new MinidumpMemoryListWriter()); 337 auto memory_list_writer = make_scoped_ptr(new MinidumpMemoryListWriter());
337 memory_list_writer->AddFromSnapshot(memory_snapshots); 338 memory_list_writer->AddFromSnapshot(memory_snapshots);
338 339
339 MinidumpFileWriter minidump_file_writer; 340 MinidumpFileWriter minidump_file_writer;
340 minidump_file_writer.AddStream(crashpad::move(memory_list_writer)); 341 minidump_file_writer.AddStream(std::move(memory_list_writer));
341 342
342 StringFile string_file; 343 StringFile string_file;
343 ASSERT_TRUE(minidump_file_writer.WriteEverything(&string_file)); 344 ASSERT_TRUE(minidump_file_writer.WriteEverything(&string_file));
344 345
345 const MINIDUMP_MEMORY_LIST* memory_list = nullptr; 346 const MINIDUMP_MEMORY_LIST* memory_list = nullptr;
346 ASSERT_NO_FATAL_FAILURE( 347 ASSERT_NO_FATAL_FAILURE(
347 GetMemoryListStream(string_file.string(), &memory_list, 1)); 348 GetMemoryListStream(string_file.string(), &memory_list, 1));
348 349
349 ASSERT_EQ(3u, memory_list->NumberOfMemoryRanges); 350 ASSERT_EQ(3u, memory_list->NumberOfMemoryRanges);
350 351
351 for (size_t index = 0; index < memory_list->NumberOfMemoryRanges; ++index) { 352 for (size_t index = 0; index < memory_list->NumberOfMemoryRanges; ++index) {
352 SCOPED_TRACE(base::StringPrintf("index %" PRIuS, index)); 353 SCOPED_TRACE(base::StringPrintf("index %" PRIuS, index));
353 ExpectMinidumpMemoryDescriptorAndContents( 354 ExpectMinidumpMemoryDescriptorAndContents(
354 &expect_memory_descriptors[index], 355 &expect_memory_descriptors[index],
355 &memory_list->MemoryRanges[index], 356 &memory_list->MemoryRanges[index],
356 string_file.string(), 357 string_file.string(),
357 values[index], 358 values[index],
358 index == memory_list->NumberOfMemoryRanges - 1); 359 index == memory_list->NumberOfMemoryRanges - 1);
359 } 360 }
360 } 361 }
361 362
362 } // namespace 363 } // namespace
363 } // namespace test 364 } // namespace test
364 } // namespace crashpad 365 } // namespace crashpad
OLDNEW
« no previous file with comments | « minidump/minidump_memory_writer.cc ('k') | minidump/minidump_misc_info_writer_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698