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

Side by Side Diff: minidump/minidump_thread_writer_test.cc

Issue 1483073004: Replace use of .Pass() with crashpad::move(). (Closed) Base URL: https://chromium.googlesource.com/crashpad/crashpad@master
Patch Set: pass: . 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_thread_writer.cc ('k') | snapshot/test/test_process_snapshot.h » ('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,
(...skipping 19 matching lines...) Expand all
30 #include "minidump/minidump_thread_id_map.h" 30 #include "minidump/minidump_thread_id_map.h"
31 #include "minidump/test/minidump_context_test_util.h" 31 #include "minidump/test/minidump_context_test_util.h"
32 #include "minidump/test/minidump_memory_writer_test_util.h" 32 #include "minidump/test/minidump_memory_writer_test_util.h"
33 #include "minidump/test/minidump_file_writer_test_util.h" 33 #include "minidump/test/minidump_file_writer_test_util.h"
34 #include "minidump/test/minidump_writable_test_util.h" 34 #include "minidump/test/minidump_writable_test_util.h"
35 #include "snapshot/test/test_cpu_context.h" 35 #include "snapshot/test/test_cpu_context.h"
36 #include "snapshot/test/test_memory_snapshot.h" 36 #include "snapshot/test/test_memory_snapshot.h"
37 #include "snapshot/test/test_thread_snapshot.h" 37 #include "snapshot/test/test_thread_snapshot.h"
38 #include "test/gtest_death_check.h" 38 #include "test/gtest_death_check.h"
39 #include "util/file/string_file.h" 39 #include "util/file/string_file.h"
40 #include "util/stdlib/move.h"
40 41
41 namespace crashpad { 42 namespace crashpad {
42 namespace test { 43 namespace test {
43 namespace { 44 namespace {
44 45
45 // This returns the MINIDUMP_THREAD_LIST stream in |thread_list|. If 46 // This returns the MINIDUMP_THREAD_LIST stream in |thread_list|. If
46 // |memory_list| is not nullptr, a MINIDUMP_MEMORY_LIST stream is also expected 47 // |memory_list| is not nullptr, a MINIDUMP_MEMORY_LIST stream is also expected
47 // in |file_contents|, and that stream will be returned in |memory_list|. 48 // in |file_contents|, and that stream will be returned in |memory_list|.
48 void GetThreadListStream(const std::string& file_contents, 49 void GetThreadListStream(const std::string& file_contents,
49 const MINIDUMP_THREAD_LIST** thread_list, 50 const MINIDUMP_THREAD_LIST** thread_list,
(...skipping 26 matching lines...) Expand all
76 *memory_list = MinidumpWritableAtLocationDescriptor<MINIDUMP_MEMORY_LIST>( 77 *memory_list = MinidumpWritableAtLocationDescriptor<MINIDUMP_MEMORY_LIST>(
77 file_contents, directory[1].Location); 78 file_contents, directory[1].Location);
78 ASSERT_TRUE(*memory_list); 79 ASSERT_TRUE(*memory_list);
79 } 80 }
80 } 81 }
81 82
82 TEST(MinidumpThreadWriter, EmptyThreadList) { 83 TEST(MinidumpThreadWriter, EmptyThreadList) {
83 MinidumpFileWriter minidump_file_writer; 84 MinidumpFileWriter minidump_file_writer;
84 auto thread_list_writer = make_scoped_ptr(new MinidumpThreadListWriter()); 85 auto thread_list_writer = make_scoped_ptr(new MinidumpThreadListWriter());
85 86
86 minidump_file_writer.AddStream(thread_list_writer.Pass()); 87 minidump_file_writer.AddStream(crashpad::move(thread_list_writer));
87 88
88 StringFile string_file; 89 StringFile string_file;
89 ASSERT_TRUE(minidump_file_writer.WriteEverything(&string_file)); 90 ASSERT_TRUE(minidump_file_writer.WriteEverything(&string_file));
90 91
91 ASSERT_EQ(sizeof(MINIDUMP_HEADER) + sizeof(MINIDUMP_DIRECTORY) + 92 ASSERT_EQ(sizeof(MINIDUMP_HEADER) + sizeof(MINIDUMP_DIRECTORY) +
92 sizeof(MINIDUMP_THREAD_LIST), 93 sizeof(MINIDUMP_THREAD_LIST),
93 string_file.string().size()); 94 string_file.string().size());
94 95
95 const MINIDUMP_THREAD_LIST* thread_list = nullptr; 96 const MINIDUMP_THREAD_LIST* thread_list = nullptr;
96 ASSERT_NO_FATAL_FAILURE( 97 ASSERT_NO_FATAL_FAILURE(
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
153 154
154 auto thread_writer = make_scoped_ptr(new MinidumpThreadWriter()); 155 auto thread_writer = make_scoped_ptr(new MinidumpThreadWriter());
155 thread_writer->SetThreadID(kThreadID); 156 thread_writer->SetThreadID(kThreadID);
156 thread_writer->SetSuspendCount(kSuspendCount); 157 thread_writer->SetSuspendCount(kSuspendCount);
157 thread_writer->SetPriorityClass(kPriorityClass); 158 thread_writer->SetPriorityClass(kPriorityClass);
158 thread_writer->SetPriority(kPriority); 159 thread_writer->SetPriority(kPriority);
159 thread_writer->SetTEB(kTEB); 160 thread_writer->SetTEB(kTEB);
160 161
161 auto context_x86_writer = make_scoped_ptr(new MinidumpContextX86Writer()); 162 auto context_x86_writer = make_scoped_ptr(new MinidumpContextX86Writer());
162 InitializeMinidumpContextX86(context_x86_writer->context(), kSeed); 163 InitializeMinidumpContextX86(context_x86_writer->context(), kSeed);
163 thread_writer->SetContext(context_x86_writer.Pass()); 164 thread_writer->SetContext(crashpad::move(context_x86_writer));
164 165
165 thread_list_writer->AddThread(thread_writer.Pass()); 166 thread_list_writer->AddThread(crashpad::move(thread_writer));
166 minidump_file_writer.AddStream(thread_list_writer.Pass()); 167 minidump_file_writer.AddStream(crashpad::move(thread_list_writer));
167 168
168 StringFile string_file; 169 StringFile string_file;
169 ASSERT_TRUE(minidump_file_writer.WriteEverything(&string_file)); 170 ASSERT_TRUE(minidump_file_writer.WriteEverything(&string_file));
170 171
171 ASSERT_EQ(sizeof(MINIDUMP_HEADER) + sizeof(MINIDUMP_DIRECTORY) + 172 ASSERT_EQ(sizeof(MINIDUMP_HEADER) + sizeof(MINIDUMP_DIRECTORY) +
172 sizeof(MINIDUMP_THREAD_LIST) + 1 * sizeof(MINIDUMP_THREAD) + 173 sizeof(MINIDUMP_THREAD_LIST) + 1 * sizeof(MINIDUMP_THREAD) +
173 1 * sizeof(MinidumpContextX86), 174 1 * sizeof(MinidumpContextX86),
174 string_file.string().size()); 175 string_file.string().size());
175 176
176 const MINIDUMP_THREAD_LIST* thread_list = nullptr; 177 const MINIDUMP_THREAD_LIST* thread_list = nullptr;
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
215 216
216 auto thread_writer = make_scoped_ptr(new MinidumpThreadWriter()); 217 auto thread_writer = make_scoped_ptr(new MinidumpThreadWriter());
217 thread_writer->SetThreadID(kThreadID); 218 thread_writer->SetThreadID(kThreadID);
218 thread_writer->SetSuspendCount(kSuspendCount); 219 thread_writer->SetSuspendCount(kSuspendCount);
219 thread_writer->SetPriorityClass(kPriorityClass); 220 thread_writer->SetPriorityClass(kPriorityClass);
220 thread_writer->SetPriority(kPriority); 221 thread_writer->SetPriority(kPriority);
221 thread_writer->SetTEB(kTEB); 222 thread_writer->SetTEB(kTEB);
222 223
223 auto memory_writer = make_scoped_ptr( 224 auto memory_writer = make_scoped_ptr(
224 new TestMinidumpMemoryWriter(kMemoryBase, kMemorySize, kMemoryValue)); 225 new TestMinidumpMemoryWriter(kMemoryBase, kMemorySize, kMemoryValue));
225 thread_writer->SetStack(memory_writer.Pass()); 226 thread_writer->SetStack(crashpad::move(memory_writer));
226 227
227 MSVC_SUPPRESS_WARNING(4316); // Object allocated on heap may not be aligned. 228 MSVC_SUPPRESS_WARNING(4316); // Object allocated on heap may not be aligned.
228 auto context_amd64_writer = make_scoped_ptr(new MinidumpContextAMD64Writer()); 229 auto context_amd64_writer = make_scoped_ptr(new MinidumpContextAMD64Writer());
229 InitializeMinidumpContextAMD64(context_amd64_writer->context(), kSeed); 230 InitializeMinidumpContextAMD64(context_amd64_writer->context(), kSeed);
230 thread_writer->SetContext(context_amd64_writer.Pass()); 231 thread_writer->SetContext(crashpad::move(context_amd64_writer));
231 232
232 thread_list_writer->AddThread(thread_writer.Pass()); 233 thread_list_writer->AddThread(crashpad::move(thread_writer));
233 minidump_file_writer.AddStream(thread_list_writer.Pass()); 234 minidump_file_writer.AddStream(crashpad::move(thread_list_writer));
234 235
235 StringFile string_file; 236 StringFile string_file;
236 ASSERT_TRUE(minidump_file_writer.WriteEverything(&string_file)); 237 ASSERT_TRUE(minidump_file_writer.WriteEverything(&string_file));
237 238
238 ASSERT_EQ(sizeof(MINIDUMP_HEADER) + sizeof(MINIDUMP_DIRECTORY) + 239 ASSERT_EQ(sizeof(MINIDUMP_HEADER) + sizeof(MINIDUMP_DIRECTORY) +
239 sizeof(MINIDUMP_THREAD_LIST) + 1 * sizeof(MINIDUMP_THREAD) + 240 sizeof(MINIDUMP_THREAD_LIST) + 1 * sizeof(MINIDUMP_THREAD) +
240 1 * sizeof(MinidumpContextAMD64) + kMemorySize, 241 1 * sizeof(MinidumpContextAMD64) + kMemorySize,
241 string_file.string().size()); 242 string_file.string().size());
242 243
243 const MINIDUMP_THREAD_LIST* thread_list = nullptr; 244 const MINIDUMP_THREAD_LIST* thread_list = nullptr;
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
293 294
294 auto thread_writer_0 = make_scoped_ptr(new MinidumpThreadWriter()); 295 auto thread_writer_0 = make_scoped_ptr(new MinidumpThreadWriter());
295 thread_writer_0->SetThreadID(kThreadID0); 296 thread_writer_0->SetThreadID(kThreadID0);
296 thread_writer_0->SetSuspendCount(kSuspendCount0); 297 thread_writer_0->SetSuspendCount(kSuspendCount0);
297 thread_writer_0->SetPriorityClass(kPriorityClass0); 298 thread_writer_0->SetPriorityClass(kPriorityClass0);
298 thread_writer_0->SetPriority(kPriority0); 299 thread_writer_0->SetPriority(kPriority0);
299 thread_writer_0->SetTEB(kTEB0); 300 thread_writer_0->SetTEB(kTEB0);
300 301
301 auto memory_writer_0 = make_scoped_ptr( 302 auto memory_writer_0 = make_scoped_ptr(
302 new TestMinidumpMemoryWriter(kMemoryBase0, kMemorySize0, kMemoryValue0)); 303 new TestMinidumpMemoryWriter(kMemoryBase0, kMemorySize0, kMemoryValue0));
303 thread_writer_0->SetStack(memory_writer_0.Pass()); 304 thread_writer_0->SetStack(crashpad::move(memory_writer_0));
304 305
305 auto context_x86_writer_0 = make_scoped_ptr(new MinidumpContextX86Writer()); 306 auto context_x86_writer_0 = make_scoped_ptr(new MinidumpContextX86Writer());
306 InitializeMinidumpContextX86(context_x86_writer_0->context(), kSeed0); 307 InitializeMinidumpContextX86(context_x86_writer_0->context(), kSeed0);
307 thread_writer_0->SetContext(context_x86_writer_0.Pass()); 308 thread_writer_0->SetContext(crashpad::move(context_x86_writer_0));
308 309
309 thread_list_writer->AddThread(thread_writer_0.Pass()); 310 thread_list_writer->AddThread(crashpad::move(thread_writer_0));
310 311
311 const uint32_t kThreadID1 = 2222222; 312 const uint32_t kThreadID1 = 2222222;
312 const uint32_t kSuspendCount1 = 222222; 313 const uint32_t kSuspendCount1 = 222222;
313 const uint32_t kPriorityClass1 = 22222; 314 const uint32_t kPriorityClass1 = 22222;
314 const uint32_t kPriority1 = 2222; 315 const uint32_t kPriority1 = 2222;
315 const uint64_t kTEB1 = 222; 316 const uint64_t kTEB1 = 222;
316 const uint64_t kMemoryBase1 = 0x2220; 317 const uint64_t kMemoryBase1 = 0x2220;
317 const size_t kMemorySize1 = 32; 318 const size_t kMemorySize1 = 32;
318 const uint8_t kMemoryValue1 = 22; 319 const uint8_t kMemoryValue1 = 22;
319 const uint32_t kSeed1 = 2; 320 const uint32_t kSeed1 = 2;
320 321
321 auto thread_writer_1 = make_scoped_ptr(new MinidumpThreadWriter()); 322 auto thread_writer_1 = make_scoped_ptr(new MinidumpThreadWriter());
322 thread_writer_1->SetThreadID(kThreadID1); 323 thread_writer_1->SetThreadID(kThreadID1);
323 thread_writer_1->SetSuspendCount(kSuspendCount1); 324 thread_writer_1->SetSuspendCount(kSuspendCount1);
324 thread_writer_1->SetPriorityClass(kPriorityClass1); 325 thread_writer_1->SetPriorityClass(kPriorityClass1);
325 thread_writer_1->SetPriority(kPriority1); 326 thread_writer_1->SetPriority(kPriority1);
326 thread_writer_1->SetTEB(kTEB1); 327 thread_writer_1->SetTEB(kTEB1);
327 328
328 auto memory_writer_1 = make_scoped_ptr( 329 auto memory_writer_1 = make_scoped_ptr(
329 new TestMinidumpMemoryWriter(kMemoryBase1, kMemorySize1, kMemoryValue1)); 330 new TestMinidumpMemoryWriter(kMemoryBase1, kMemorySize1, kMemoryValue1));
330 thread_writer_1->SetStack(memory_writer_1.Pass()); 331 thread_writer_1->SetStack(crashpad::move(memory_writer_1));
331 332
332 auto context_x86_writer_1 = make_scoped_ptr(new MinidumpContextX86Writer()); 333 auto context_x86_writer_1 = make_scoped_ptr(new MinidumpContextX86Writer());
333 InitializeMinidumpContextX86(context_x86_writer_1->context(), kSeed1); 334 InitializeMinidumpContextX86(context_x86_writer_1->context(), kSeed1);
334 thread_writer_1->SetContext(context_x86_writer_1.Pass()); 335 thread_writer_1->SetContext(crashpad::move(context_x86_writer_1));
335 336
336 thread_list_writer->AddThread(thread_writer_1.Pass()); 337 thread_list_writer->AddThread(crashpad::move(thread_writer_1));
337 338
338 const uint32_t kThreadID2 = 3333333; 339 const uint32_t kThreadID2 = 3333333;
339 const uint32_t kSuspendCount2 = 333333; 340 const uint32_t kSuspendCount2 = 333333;
340 const uint32_t kPriorityClass2 = 33333; 341 const uint32_t kPriorityClass2 = 33333;
341 const uint32_t kPriority2 = 3333; 342 const uint32_t kPriority2 = 3333;
342 const uint64_t kTEB2 = 333; 343 const uint64_t kTEB2 = 333;
343 const uint64_t kMemoryBase2 = 0x3330; 344 const uint64_t kMemoryBase2 = 0x3330;
344 const size_t kMemorySize2 = 48; 345 const size_t kMemorySize2 = 48;
345 const uint8_t kMemoryValue2 = 33; 346 const uint8_t kMemoryValue2 = 33;
346 const uint32_t kSeed2 = 3; 347 const uint32_t kSeed2 = 3;
347 348
348 auto thread_writer_2 = make_scoped_ptr(new MinidumpThreadWriter()); 349 auto thread_writer_2 = make_scoped_ptr(new MinidumpThreadWriter());
349 thread_writer_2->SetThreadID(kThreadID2); 350 thread_writer_2->SetThreadID(kThreadID2);
350 thread_writer_2->SetSuspendCount(kSuspendCount2); 351 thread_writer_2->SetSuspendCount(kSuspendCount2);
351 thread_writer_2->SetPriorityClass(kPriorityClass2); 352 thread_writer_2->SetPriorityClass(kPriorityClass2);
352 thread_writer_2->SetPriority(kPriority2); 353 thread_writer_2->SetPriority(kPriority2);
353 thread_writer_2->SetTEB(kTEB2); 354 thread_writer_2->SetTEB(kTEB2);
354 355
355 auto memory_writer_2 = make_scoped_ptr( 356 auto memory_writer_2 = make_scoped_ptr(
356 new TestMinidumpMemoryWriter(kMemoryBase2, kMemorySize2, kMemoryValue2)); 357 new TestMinidumpMemoryWriter(kMemoryBase2, kMemorySize2, kMemoryValue2));
357 thread_writer_2->SetStack(memory_writer_2.Pass()); 358 thread_writer_2->SetStack(crashpad::move(memory_writer_2));
358 359
359 auto context_x86_writer_2 = make_scoped_ptr(new MinidumpContextX86Writer()); 360 auto context_x86_writer_2 = make_scoped_ptr(new MinidumpContextX86Writer());
360 InitializeMinidumpContextX86(context_x86_writer_2->context(), kSeed2); 361 InitializeMinidumpContextX86(context_x86_writer_2->context(), kSeed2);
361 thread_writer_2->SetContext(context_x86_writer_2.Pass()); 362 thread_writer_2->SetContext(crashpad::move(context_x86_writer_2));
362 363
363 thread_list_writer->AddThread(thread_writer_2.Pass()); 364 thread_list_writer->AddThread(crashpad::move(thread_writer_2));
364 365
365 minidump_file_writer.AddStream(thread_list_writer.Pass()); 366 minidump_file_writer.AddStream(crashpad::move(thread_list_writer));
366 minidump_file_writer.AddStream(memory_list_writer.Pass()); 367 minidump_file_writer.AddStream(crashpad::move(memory_list_writer));
367 368
368 StringFile string_file; 369 StringFile string_file;
369 ASSERT_TRUE(minidump_file_writer.WriteEverything(&string_file)); 370 ASSERT_TRUE(minidump_file_writer.WriteEverything(&string_file));
370 371
371 ASSERT_EQ(sizeof(MINIDUMP_HEADER) + 2 * sizeof(MINIDUMP_DIRECTORY) + 372 ASSERT_EQ(sizeof(MINIDUMP_HEADER) + 2 * sizeof(MINIDUMP_DIRECTORY) +
372 sizeof(MINIDUMP_THREAD_LIST) + 3 * sizeof(MINIDUMP_THREAD) + 373 sizeof(MINIDUMP_THREAD_LIST) + 3 * sizeof(MINIDUMP_THREAD) +
373 sizeof(MINIDUMP_MEMORY_LIST) + 374 sizeof(MINIDUMP_MEMORY_LIST) +
374 3 * sizeof(MINIDUMP_MEMORY_DESCRIPTOR) + 375 3 * sizeof(MINIDUMP_MEMORY_DESCRIPTOR) +
375 3 * sizeof(MinidumpContextX86) + kMemorySize0 + kMemorySize1 + 376 3 * sizeof(MinidumpContextX86) + kMemorySize0 + kMemorySize1 +
376 kMemorySize2 + 12, // 12 for alignment 377 kMemorySize2 + 12, // 12 for alignment
(...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after
593 thread_snapshot->SetSuspendCount(expect_threads[index].SuspendCount); 594 thread_snapshot->SetSuspendCount(expect_threads[index].SuspendCount);
594 thread_snapshot->SetPriority(expect_threads[index].Priority); 595 thread_snapshot->SetPriority(expect_threads[index].Priority);
595 thread_snapshot->SetThreadSpecificDataAddress(expect_threads[index].Teb); 596 thread_snapshot->SetThreadSpecificDataAddress(expect_threads[index].Teb);
596 597
597 if (expect_threads[index].Stack.Memory.DataSize) { 598 if (expect_threads[index].Stack.Memory.DataSize) {
598 auto memory_snapshot = make_scoped_ptr(new TestMemorySnapshot()); 599 auto memory_snapshot = make_scoped_ptr(new TestMemorySnapshot());
599 memory_snapshot->SetAddress( 600 memory_snapshot->SetAddress(
600 expect_threads[index].Stack.StartOfMemoryRange); 601 expect_threads[index].Stack.StartOfMemoryRange);
601 memory_snapshot->SetSize(expect_threads[index].Stack.Memory.DataSize); 602 memory_snapshot->SetSize(expect_threads[index].Stack.Memory.DataSize);
602 memory_snapshot->SetValue(memory_values[index]); 603 memory_snapshot->SetValue(memory_values[index]);
603 thread_snapshot->SetStack(memory_snapshot.Pass()); 604 thread_snapshot->SetStack(crashpad::move(memory_snapshot));
604 } 605 }
605 606
606 Traits::InitializeCPUContext(thread_snapshot->MutableContext(), 607 Traits::InitializeCPUContext(thread_snapshot->MutableContext(),
607 context_seeds[index]); 608 context_seeds[index]);
608 609
609 auto teb_snapshot = make_scoped_ptr(new TestMemorySnapshot()); 610 auto teb_snapshot = make_scoped_ptr(new TestMemorySnapshot());
610 teb_snapshot->SetAddress(expect_threads[index].Teb); 611 teb_snapshot->SetAddress(expect_threads[index].Teb);
611 teb_snapshot->SetSize(kTebSize); 612 teb_snapshot->SetSize(kTebSize);
612 teb_snapshot->SetValue(static_cast<char>('t' + index)); 613 teb_snapshot->SetValue(static_cast<char>('t' + index));
613 thread_snapshot->AddExtraMemory(teb_snapshot.Pass()); 614 thread_snapshot->AddExtraMemory(crashpad::move(teb_snapshot));
614 615
615 thread_snapshots.push_back(thread_snapshot); 616 thread_snapshots.push_back(thread_snapshot);
616 } 617 }
617 618
618 auto thread_list_writer = make_scoped_ptr(new MinidumpThreadListWriter()); 619 auto thread_list_writer = make_scoped_ptr(new MinidumpThreadListWriter());
619 auto memory_list_writer = make_scoped_ptr(new MinidumpMemoryListWriter()); 620 auto memory_list_writer = make_scoped_ptr(new MinidumpMemoryListWriter());
620 thread_list_writer->SetMemoryListWriter(memory_list_writer.get()); 621 thread_list_writer->SetMemoryListWriter(memory_list_writer.get());
621 MinidumpThreadIDMap thread_id_map; 622 MinidumpThreadIDMap thread_id_map;
622 thread_list_writer->InitializeFromSnapshot(thread_snapshots, &thread_id_map); 623 thread_list_writer->InitializeFromSnapshot(thread_snapshots, &thread_id_map);
623 624
624 MinidumpFileWriter minidump_file_writer; 625 MinidumpFileWriter minidump_file_writer;
625 minidump_file_writer.AddStream(thread_list_writer.Pass()); 626 minidump_file_writer.AddStream(crashpad::move(thread_list_writer));
626 minidump_file_writer.AddStream(memory_list_writer.Pass()); 627 minidump_file_writer.AddStream(crashpad::move(memory_list_writer));
627 628
628 StringFile string_file; 629 StringFile string_file;
629 ASSERT_TRUE(minidump_file_writer.WriteEverything(&string_file)); 630 ASSERT_TRUE(minidump_file_writer.WriteEverything(&string_file));
630 631
631 const MINIDUMP_THREAD_LIST* thread_list = nullptr; 632 const MINIDUMP_THREAD_LIST* thread_list = nullptr;
632 const MINIDUMP_MEMORY_LIST* memory_list = nullptr; 633 const MINIDUMP_MEMORY_LIST* memory_list = nullptr;
633 ASSERT_NO_FATAL_FAILURE( 634 ASSERT_NO_FATAL_FAILURE(
634 GetThreadListStream(string_file.string(), &thread_list, &memory_list)); 635 GetThreadListStream(string_file.string(), &thread_list, &memory_list));
635 636
636 ASSERT_EQ(3u, thread_list->NumberOfThreads); 637 ASSERT_EQ(3u, thread_list->NumberOfThreads);
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
693 TEST(MinidumpThreadWriter, InitializeFromSnapshot_ThreadIDCollision) { 694 TEST(MinidumpThreadWriter, InitializeFromSnapshot_ThreadIDCollision) {
694 RunInitializeFromSnapshotTest<InitializeFromSnapshotX86Traits>(true); 695 RunInitializeFromSnapshotTest<InitializeFromSnapshotX86Traits>(true);
695 } 696 }
696 697
697 TEST(MinidumpThreadWriterDeathTest, NoContext) { 698 TEST(MinidumpThreadWriterDeathTest, NoContext) {
698 MinidumpFileWriter minidump_file_writer; 699 MinidumpFileWriter minidump_file_writer;
699 auto thread_list_writer = make_scoped_ptr(new MinidumpThreadListWriter()); 700 auto thread_list_writer = make_scoped_ptr(new MinidumpThreadListWriter());
700 701
701 auto thread_writer = make_scoped_ptr(new MinidumpThreadWriter()); 702 auto thread_writer = make_scoped_ptr(new MinidumpThreadWriter());
702 703
703 thread_list_writer->AddThread(thread_writer.Pass()); 704 thread_list_writer->AddThread(crashpad::move(thread_writer));
704 minidump_file_writer.AddStream(thread_list_writer.Pass()); 705 minidump_file_writer.AddStream(crashpad::move(thread_list_writer));
705 706
706 StringFile string_file; 707 StringFile string_file;
707 ASSERT_DEATH_CHECK(minidump_file_writer.WriteEverything(&string_file), 708 ASSERT_DEATH_CHECK(minidump_file_writer.WriteEverything(&string_file),
708 "context_"); 709 "context_");
709 } 710 }
710 711
711 TEST(MinidumpThreadWriterDeathTest, InitializeFromSnapshot_NoContext) { 712 TEST(MinidumpThreadWriterDeathTest, InitializeFromSnapshot_NoContext) {
712 ASSERT_DEATH_CHECK( 713 ASSERT_DEATH_CHECK(
713 RunInitializeFromSnapshotTest<InitializeFromSnapshotNoContextTraits>( 714 RunInitializeFromSnapshotTest<InitializeFromSnapshotNoContextTraits>(
714 false), "context_"); 715 false), "context_");
715 } 716 }
716 717
717 } // namespace 718 } // namespace
718 } // namespace test 719 } // namespace test
719 } // namespace crashpad 720 } // namespace crashpad
OLDNEW
« no previous file with comments | « minidump/minidump_thread_writer.cc ('k') | snapshot/test/test_process_snapshot.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698