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

Side by Side Diff: minidump/minidump_thread_writer_test.cc

Issue 903603002: win: warning fixes in minidump_thread_writer_test.cc (Closed) Base URL: https://chromium.googlesource.com/crashpad/crashpad@minidump_test-9
Patch Set: use MSVC_SUPPRESS_WARNING Created 5 years, 10 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 unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | 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 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 80
81 minidump_file_writer.AddStream(thread_list_writer.Pass()); 81 minidump_file_writer.AddStream(thread_list_writer.Pass());
82 82
83 StringFileWriter file_writer; 83 StringFileWriter file_writer;
84 ASSERT_TRUE(minidump_file_writer.WriteEverything(&file_writer)); 84 ASSERT_TRUE(minidump_file_writer.WriteEverything(&file_writer));
85 85
86 ASSERT_EQ(sizeof(MINIDUMP_HEADER) + sizeof(MINIDUMP_DIRECTORY) + 86 ASSERT_EQ(sizeof(MINIDUMP_HEADER) + sizeof(MINIDUMP_DIRECTORY) +
87 sizeof(MINIDUMP_THREAD_LIST), 87 sizeof(MINIDUMP_THREAD_LIST),
88 file_writer.string().size()); 88 file_writer.string().size());
89 89
90 const MINIDUMP_THREAD_LIST* thread_list; 90 const MINIDUMP_THREAD_LIST* thread_list = nullptr;
91 ASSERT_NO_FATAL_FAILURE( 91 ASSERT_NO_FATAL_FAILURE(
92 GetThreadListStream(file_writer.string(), &thread_list, nullptr)); 92 GetThreadListStream(file_writer.string(), &thread_list, nullptr));
93 93
94 EXPECT_EQ(0u, thread_list->NumberOfThreads); 94 EXPECT_EQ(0u, thread_list->NumberOfThreads);
95 } 95 }
96 96
97 // The MINIDUMP_THREADs |expected| and |observed| are compared against each 97 // The MINIDUMP_THREADs |expected| and |observed| are compared against each
98 // other using gtest assertions. If |stack| is not nullptr, |observed| is 98 // other using gtest assertions. If |stack| is not nullptr, |observed| is
99 // expected to contain a populated MINIDUMP_MEMORY_DESCRIPTOR in its Stack 99 // expected to contain a populated MINIDUMP_MEMORY_DESCRIPTOR in its Stack
100 // field, otherwise, its Stack field is expected to be zeroed out. The memory 100 // field, otherwise, its Stack field is expected to be zeroed out. The memory
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
161 minidump_file_writer.AddStream(thread_list_writer.Pass()); 161 minidump_file_writer.AddStream(thread_list_writer.Pass());
162 162
163 StringFileWriter file_writer; 163 StringFileWriter file_writer;
164 ASSERT_TRUE(minidump_file_writer.WriteEverything(&file_writer)); 164 ASSERT_TRUE(minidump_file_writer.WriteEverything(&file_writer));
165 165
166 ASSERT_EQ(sizeof(MINIDUMP_HEADER) + sizeof(MINIDUMP_DIRECTORY) + 166 ASSERT_EQ(sizeof(MINIDUMP_HEADER) + sizeof(MINIDUMP_DIRECTORY) +
167 sizeof(MINIDUMP_THREAD_LIST) + 1 * sizeof(MINIDUMP_THREAD) + 167 sizeof(MINIDUMP_THREAD_LIST) + 1 * sizeof(MINIDUMP_THREAD) +
168 1 * sizeof(MinidumpContextX86), 168 1 * sizeof(MinidumpContextX86),
169 file_writer.string().size()); 169 file_writer.string().size());
170 170
171 const MINIDUMP_THREAD_LIST* thread_list; 171 const MINIDUMP_THREAD_LIST* thread_list = nullptr;
172 ASSERT_NO_FATAL_FAILURE( 172 ASSERT_NO_FATAL_FAILURE(
173 GetThreadListStream(file_writer.string(), &thread_list, nullptr)); 173 GetThreadListStream(file_writer.string(), &thread_list, nullptr));
174 174
175 EXPECT_EQ(1u, thread_list->NumberOfThreads); 175 EXPECT_EQ(1u, thread_list->NumberOfThreads);
176 176
177 MINIDUMP_THREAD expected = {}; 177 MINIDUMP_THREAD expected = {};
178 expected.ThreadId = kThreadID; 178 expected.ThreadId = kThreadID;
179 expected.SuspendCount = kSuspendCount; 179 expected.SuspendCount = kSuspendCount;
180 expected.PriorityClass = kPriorityClass; 180 expected.PriorityClass = kPriorityClass;
181 expected.Priority = kPriority; 181 expected.Priority = kPriority;
182 expected.Teb = kTEB; 182 expected.Teb = kTEB;
183 expected.ThreadContext.DataSize = sizeof(MinidumpContextX86); 183 expected.ThreadContext.DataSize = sizeof(MinidumpContextX86);
184 184
185 const MinidumpContextX86* observed_context; 185 const MinidumpContextX86* observed_context = nullptr;
186 ASSERT_NO_FATAL_FAILURE( 186 ASSERT_NO_FATAL_FAILURE(
187 ExpectThread(&expected, 187 ExpectThread(&expected,
188 &thread_list->Threads[0], 188 &thread_list->Threads[0],
189 file_writer.string(), 189 file_writer.string(),
190 nullptr, 190 nullptr,
191 reinterpret_cast<const void**>(&observed_context))); 191 reinterpret_cast<const void**>(&observed_context)));
192 192
193 ASSERT_NO_FATAL_FAILURE( 193 ASSERT_NO_FATAL_FAILURE(
194 ExpectMinidumpContextX86(kSeed, observed_context, false)); 194 ExpectMinidumpContextX86(kSeed, observed_context, false));
195 } 195 }
(...skipping 16 matching lines...) Expand all
212 thread_writer->SetThreadID(kThreadID); 212 thread_writer->SetThreadID(kThreadID);
213 thread_writer->SetSuspendCount(kSuspendCount); 213 thread_writer->SetSuspendCount(kSuspendCount);
214 thread_writer->SetPriorityClass(kPriorityClass); 214 thread_writer->SetPriorityClass(kPriorityClass);
215 thread_writer->SetPriority(kPriority); 215 thread_writer->SetPriority(kPriority);
216 thread_writer->SetTEB(kTEB); 216 thread_writer->SetTEB(kTEB);
217 217
218 auto memory_writer = make_scoped_ptr( 218 auto memory_writer = make_scoped_ptr(
219 new TestMinidumpMemoryWriter(kMemoryBase, kMemorySize, kMemoryValue)); 219 new TestMinidumpMemoryWriter(kMemoryBase, kMemorySize, kMemoryValue));
220 thread_writer->SetStack(memory_writer.Pass()); 220 thread_writer->SetStack(memory_writer.Pass());
221 221
222 MSVC_SUPPRESS_WARNING(4316) // Object allocated on heap may not be aligned.
Mark Mentovai 2015/02/05 18:21:31 A semicolon will make this look a little more code
222 auto context_amd64_writer = make_scoped_ptr(new MinidumpContextAMD64Writer()); 223 auto context_amd64_writer = make_scoped_ptr(new MinidumpContextAMD64Writer());
223 InitializeMinidumpContextAMD64(context_amd64_writer->context(), kSeed); 224 InitializeMinidumpContextAMD64(context_amd64_writer->context(), kSeed);
224 thread_writer->SetContext(context_amd64_writer.Pass()); 225 thread_writer->SetContext(context_amd64_writer.Pass());
225 226
226 thread_list_writer->AddThread(thread_writer.Pass()); 227 thread_list_writer->AddThread(thread_writer.Pass());
227 minidump_file_writer.AddStream(thread_list_writer.Pass()); 228 minidump_file_writer.AddStream(thread_list_writer.Pass());
228 229
229 StringFileWriter file_writer; 230 StringFileWriter file_writer;
230 ASSERT_TRUE(minidump_file_writer.WriteEverything(&file_writer)); 231 ASSERT_TRUE(minidump_file_writer.WriteEverything(&file_writer));
231 232
232 ASSERT_EQ(sizeof(MINIDUMP_HEADER) + sizeof(MINIDUMP_DIRECTORY) + 233 ASSERT_EQ(sizeof(MINIDUMP_HEADER) + sizeof(MINIDUMP_DIRECTORY) +
233 sizeof(MINIDUMP_THREAD_LIST) + 1 * sizeof(MINIDUMP_THREAD) + 234 sizeof(MINIDUMP_THREAD_LIST) + 1 * sizeof(MINIDUMP_THREAD) +
234 1 * sizeof(MinidumpContextAMD64) + kMemorySize, 235 1 * sizeof(MinidumpContextAMD64) + kMemorySize,
235 file_writer.string().size()); 236 file_writer.string().size());
236 237
237 const MINIDUMP_THREAD_LIST* thread_list; 238 const MINIDUMP_THREAD_LIST* thread_list = nullptr;
238 ASSERT_NO_FATAL_FAILURE( 239 ASSERT_NO_FATAL_FAILURE(
239 GetThreadListStream(file_writer.string(), &thread_list, nullptr)); 240 GetThreadListStream(file_writer.string(), &thread_list, nullptr));
240 241
241 EXPECT_EQ(1u, thread_list->NumberOfThreads); 242 EXPECT_EQ(1u, thread_list->NumberOfThreads);
242 243
243 MINIDUMP_THREAD expected = {}; 244 MINIDUMP_THREAD expected = {};
244 expected.ThreadId = kThreadID; 245 expected.ThreadId = kThreadID;
245 expected.SuspendCount = kSuspendCount; 246 expected.SuspendCount = kSuspendCount;
246 expected.PriorityClass = kPriorityClass; 247 expected.PriorityClass = kPriorityClass;
247 expected.Priority = kPriority; 248 expected.Priority = kPriority;
248 expected.Teb = kTEB; 249 expected.Teb = kTEB;
249 expected.Stack.StartOfMemoryRange = kMemoryBase; 250 expected.Stack.StartOfMemoryRange = kMemoryBase;
250 expected.Stack.Memory.DataSize = kMemorySize; 251 expected.Stack.Memory.DataSize = kMemorySize;
251 expected.ThreadContext.DataSize = sizeof(MinidumpContextAMD64); 252 expected.ThreadContext.DataSize = sizeof(MinidumpContextAMD64);
252 253
253 const MINIDUMP_MEMORY_DESCRIPTOR* observed_stack; 254 const MINIDUMP_MEMORY_DESCRIPTOR* observed_stack = nullptr;
254 const MinidumpContextAMD64* observed_context; 255 const MinidumpContextAMD64* observed_context = nullptr;
255 ASSERT_NO_FATAL_FAILURE( 256 ASSERT_NO_FATAL_FAILURE(
256 ExpectThread(&expected, 257 ExpectThread(&expected,
257 &thread_list->Threads[0], 258 &thread_list->Threads[0],
258 file_writer.string(), 259 file_writer.string(),
259 &observed_stack, 260 &observed_stack,
260 reinterpret_cast<const void**>(&observed_context))); 261 reinterpret_cast<const void**>(&observed_context)));
261 262
262 ASSERT_NO_FATAL_FAILURE( 263 ASSERT_NO_FATAL_FAILURE(
263 ExpectMinidumpMemoryDescriptorAndContents(&expected.Stack, 264 ExpectMinidumpMemoryDescriptorAndContents(&expected.Stack,
264 observed_stack, 265 observed_stack,
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
363 ASSERT_TRUE(minidump_file_writer.WriteEverything(&file_writer)); 364 ASSERT_TRUE(minidump_file_writer.WriteEverything(&file_writer));
364 365
365 ASSERT_EQ(sizeof(MINIDUMP_HEADER) + 2 * sizeof(MINIDUMP_DIRECTORY) + 366 ASSERT_EQ(sizeof(MINIDUMP_HEADER) + 2 * sizeof(MINIDUMP_DIRECTORY) +
366 sizeof(MINIDUMP_THREAD_LIST) + 3 * sizeof(MINIDUMP_THREAD) + 367 sizeof(MINIDUMP_THREAD_LIST) + 3 * sizeof(MINIDUMP_THREAD) +
367 sizeof(MINIDUMP_MEMORY_LIST) + 368 sizeof(MINIDUMP_MEMORY_LIST) +
368 3 * sizeof(MINIDUMP_MEMORY_DESCRIPTOR) + 369 3 * sizeof(MINIDUMP_MEMORY_DESCRIPTOR) +
369 3 * sizeof(MinidumpContextX86) + kMemorySize0 + kMemorySize1 + 370 3 * sizeof(MinidumpContextX86) + kMemorySize0 + kMemorySize1 +
370 kMemorySize2 + 12, // 12 for alignment 371 kMemorySize2 + 12, // 12 for alignment
371 file_writer.string().size()); 372 file_writer.string().size());
372 373
373 const MINIDUMP_THREAD_LIST* thread_list; 374 const MINIDUMP_THREAD_LIST* thread_list = nullptr;
374 const MINIDUMP_MEMORY_LIST* memory_list; 375 const MINIDUMP_MEMORY_LIST* memory_list = nullptr;
375 ASSERT_NO_FATAL_FAILURE( 376 ASSERT_NO_FATAL_FAILURE(
376 GetThreadListStream(file_writer.string(), &thread_list, &memory_list)); 377 GetThreadListStream(file_writer.string(), &thread_list, &memory_list));
377 378
378 EXPECT_EQ(3u, thread_list->NumberOfThreads); 379 EXPECT_EQ(3u, thread_list->NumberOfThreads);
379 EXPECT_EQ(3u, memory_list->NumberOfMemoryRanges); 380 EXPECT_EQ(3u, memory_list->NumberOfMemoryRanges);
380 381
381 { 382 {
382 SCOPED_TRACE("thread 0"); 383 SCOPED_TRACE("thread 0");
383 384
384 MINIDUMP_THREAD expected = {}; 385 MINIDUMP_THREAD expected = {};
385 expected.ThreadId = kThreadID0; 386 expected.ThreadId = kThreadID0;
386 expected.SuspendCount = kSuspendCount0; 387 expected.SuspendCount = kSuspendCount0;
387 expected.PriorityClass = kPriorityClass0; 388 expected.PriorityClass = kPriorityClass0;
388 expected.Priority = kPriority0; 389 expected.Priority = kPriority0;
389 expected.Teb = kTEB0; 390 expected.Teb = kTEB0;
390 expected.Stack.StartOfMemoryRange = kMemoryBase0; 391 expected.Stack.StartOfMemoryRange = kMemoryBase0;
391 expected.Stack.Memory.DataSize = kMemorySize0; 392 expected.Stack.Memory.DataSize = kMemorySize0;
392 expected.ThreadContext.DataSize = sizeof(MinidumpContextX86); 393 expected.ThreadContext.DataSize = sizeof(MinidumpContextX86);
393 394
394 const MINIDUMP_MEMORY_DESCRIPTOR* observed_stack; 395 const MINIDUMP_MEMORY_DESCRIPTOR* observed_stack = nullptr;
395 const MinidumpContextX86* observed_context; 396 const MinidumpContextX86* observed_context = nullptr;
396 ASSERT_NO_FATAL_FAILURE( 397 ASSERT_NO_FATAL_FAILURE(
397 ExpectThread(&expected, 398 ExpectThread(&expected,
398 &thread_list->Threads[0], 399 &thread_list->Threads[0],
399 file_writer.string(), 400 file_writer.string(),
400 &observed_stack, 401 &observed_stack,
401 reinterpret_cast<const void**>(&observed_context))); 402 reinterpret_cast<const void**>(&observed_context)));
402 403
403 ASSERT_NO_FATAL_FAILURE( 404 ASSERT_NO_FATAL_FAILURE(
404 ExpectMinidumpMemoryDescriptorAndContents(&expected.Stack, 405 ExpectMinidumpMemoryDescriptorAndContents(&expected.Stack,
405 observed_stack, 406 observed_stack,
(...skipping 12 matching lines...) Expand all
418 MINIDUMP_THREAD expected = {}; 419 MINIDUMP_THREAD expected = {};
419 expected.ThreadId = kThreadID1; 420 expected.ThreadId = kThreadID1;
420 expected.SuspendCount = kSuspendCount1; 421 expected.SuspendCount = kSuspendCount1;
421 expected.PriorityClass = kPriorityClass1; 422 expected.PriorityClass = kPriorityClass1;
422 expected.Priority = kPriority1; 423 expected.Priority = kPriority1;
423 expected.Teb = kTEB1; 424 expected.Teb = kTEB1;
424 expected.Stack.StartOfMemoryRange = kMemoryBase1; 425 expected.Stack.StartOfMemoryRange = kMemoryBase1;
425 expected.Stack.Memory.DataSize = kMemorySize1; 426 expected.Stack.Memory.DataSize = kMemorySize1;
426 expected.ThreadContext.DataSize = sizeof(MinidumpContextX86); 427 expected.ThreadContext.DataSize = sizeof(MinidumpContextX86);
427 428
428 const MINIDUMP_MEMORY_DESCRIPTOR* observed_stack; 429 const MINIDUMP_MEMORY_DESCRIPTOR* observed_stack = nullptr;
429 const MinidumpContextX86* observed_context; 430 const MinidumpContextX86* observed_context = nullptr;
430 ASSERT_NO_FATAL_FAILURE( 431 ASSERT_NO_FATAL_FAILURE(
431 ExpectThread(&expected, 432 ExpectThread(&expected,
432 &thread_list->Threads[1], 433 &thread_list->Threads[1],
433 file_writer.string(), 434 file_writer.string(),
434 &observed_stack, 435 &observed_stack,
435 reinterpret_cast<const void**>(&observed_context))); 436 reinterpret_cast<const void**>(&observed_context)));
436 437
437 ASSERT_NO_FATAL_FAILURE( 438 ASSERT_NO_FATAL_FAILURE(
438 ExpectMinidumpMemoryDescriptorAndContents(&expected.Stack, 439 ExpectMinidumpMemoryDescriptorAndContents(&expected.Stack,
439 observed_stack, 440 observed_stack,
(...skipping 12 matching lines...) Expand all
452 MINIDUMP_THREAD expected = {}; 453 MINIDUMP_THREAD expected = {};
453 expected.ThreadId = kThreadID2; 454 expected.ThreadId = kThreadID2;
454 expected.SuspendCount = kSuspendCount2; 455 expected.SuspendCount = kSuspendCount2;
455 expected.PriorityClass = kPriorityClass2; 456 expected.PriorityClass = kPriorityClass2;
456 expected.Priority = kPriority2; 457 expected.Priority = kPriority2;
457 expected.Teb = kTEB2; 458 expected.Teb = kTEB2;
458 expected.Stack.StartOfMemoryRange = kMemoryBase2; 459 expected.Stack.StartOfMemoryRange = kMemoryBase2;
459 expected.Stack.Memory.DataSize = kMemorySize2; 460 expected.Stack.Memory.DataSize = kMemorySize2;
460 expected.ThreadContext.DataSize = sizeof(MinidumpContextX86); 461 expected.ThreadContext.DataSize = sizeof(MinidumpContextX86);
461 462
462 const MINIDUMP_MEMORY_DESCRIPTOR* observed_stack; 463 const MINIDUMP_MEMORY_DESCRIPTOR* observed_stack = nullptr;
463 const MinidumpContextX86* observed_context; 464 const MinidumpContextX86* observed_context = nullptr;
464 ASSERT_NO_FATAL_FAILURE( 465 ASSERT_NO_FATAL_FAILURE(
465 ExpectThread(&expected, 466 ExpectThread(&expected,
466 &thread_list->Threads[2], 467 &thread_list->Threads[2],
467 file_writer.string(), 468 file_writer.string(),
468 &observed_stack, 469 &observed_stack,
469 reinterpret_cast<const void**>(&observed_context))); 470 reinterpret_cast<const void**>(&observed_context)));
470 471
471 ASSERT_NO_FATAL_FAILURE( 472 ASSERT_NO_FATAL_FAILURE(
472 ExpectMinidumpMemoryDescriptorAndContents(&expected.Stack, 473 ExpectMinidumpMemoryDescriptorAndContents(&expected.Stack,
473 observed_stack, 474 observed_stack,
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
556 thread_ids[0] = 0x0123456700000001; 557 thread_ids[0] = 0x0123456700000001;
557 thread_ids[1] = 0x89abcdef00000001; 558 thread_ids[1] = 0x89abcdef00000001;
558 thread_ids[2] = 4; 559 thread_ids[2] = 4;
559 expect_threads[0].ThreadId = 0; 560 expect_threads[0].ThreadId = 0;
560 expect_threads[1].ThreadId = 1; 561 expect_threads[1].ThreadId = 1;
561 expect_threads[2].ThreadId = 2; 562 expect_threads[2].ThreadId = 2;
562 } else { 563 } else {
563 thread_ids[0] = 1; 564 thread_ids[0] = 1;
564 thread_ids[1] = 11; 565 thread_ids[1] = 11;
565 thread_ids[2] = 22; 566 thread_ids[2] = 22;
566 expect_threads[0].ThreadId = thread_ids[0]; 567 expect_threads[0].ThreadId = static_cast<uint32_t>(thread_ids[0]);
567 expect_threads[1].ThreadId = thread_ids[1]; 568 expect_threads[1].ThreadId = static_cast<uint32_t>(thread_ids[1]);
568 expect_threads[2].ThreadId = thread_ids[2]; 569 expect_threads[2].ThreadId = static_cast<uint32_t>(thread_ids[2]);
569 } 570 }
570 571
571 PointerVector<TestThreadSnapshot> thread_snapshots_owner; 572 PointerVector<TestThreadSnapshot> thread_snapshots_owner;
572 std::vector<const ThreadSnapshot*> thread_snapshots; 573 std::vector<const ThreadSnapshot*> thread_snapshots;
573 for (size_t index = 0; index < arraysize(expect_threads); ++index) { 574 for (size_t index = 0; index < arraysize(expect_threads); ++index) {
574 TestThreadSnapshot* thread_snapshot = new TestThreadSnapshot(); 575 TestThreadSnapshot* thread_snapshot = new TestThreadSnapshot();
575 thread_snapshots_owner.push_back(thread_snapshot); 576 thread_snapshots_owner.push_back(thread_snapshot);
576 577
577 thread_snapshot->SetThreadID(thread_ids[index]); 578 thread_snapshot->SetThreadID(thread_ids[index]);
578 thread_snapshot->SetSuspendCount(expect_threads[index].SuspendCount); 579 thread_snapshot->SetSuspendCount(expect_threads[index].SuspendCount);
(...skipping 21 matching lines...) Expand all
600 MinidumpThreadIDMap thread_id_map; 601 MinidumpThreadIDMap thread_id_map;
601 thread_list_writer->InitializeFromSnapshot(thread_snapshots, &thread_id_map); 602 thread_list_writer->InitializeFromSnapshot(thread_snapshots, &thread_id_map);
602 603
603 MinidumpFileWriter minidump_file_writer; 604 MinidumpFileWriter minidump_file_writer;
604 minidump_file_writer.AddStream(thread_list_writer.Pass()); 605 minidump_file_writer.AddStream(thread_list_writer.Pass());
605 minidump_file_writer.AddStream(memory_list_writer.Pass()); 606 minidump_file_writer.AddStream(memory_list_writer.Pass());
606 607
607 StringFileWriter file_writer; 608 StringFileWriter file_writer;
608 ASSERT_TRUE(minidump_file_writer.WriteEverything(&file_writer)); 609 ASSERT_TRUE(minidump_file_writer.WriteEverything(&file_writer));
609 610
610 const MINIDUMP_THREAD_LIST* thread_list; 611 const MINIDUMP_THREAD_LIST* thread_list = nullptr;
611 const MINIDUMP_MEMORY_LIST* memory_list; 612 const MINIDUMP_MEMORY_LIST* memory_list = nullptr;
612 ASSERT_NO_FATAL_FAILURE( 613 ASSERT_NO_FATAL_FAILURE(
613 GetThreadListStream(file_writer.string(), &thread_list, &memory_list)); 614 GetThreadListStream(file_writer.string(), &thread_list, &memory_list));
614 615
615 ASSERT_EQ(3u, thread_list->NumberOfThreads); 616 ASSERT_EQ(3u, thread_list->NumberOfThreads);
616 ASSERT_EQ(2u, memory_list->NumberOfMemoryRanges); 617 ASSERT_EQ(2u, memory_list->NumberOfMemoryRanges);
617 618
618 size_t memory_index = 0; 619 size_t memory_index = 0;
619 for (size_t index = 0; index < thread_list->NumberOfThreads; ++index) { 620 for (size_t index = 0; index < thread_list->NumberOfThreads; ++index) {
620 SCOPED_TRACE(base::StringPrintf("index %zu", index)); 621 SCOPED_TRACE(base::StringPrintf("index %zu", index));
621 622
622 const MINIDUMP_MEMORY_DESCRIPTOR* observed_stack; 623 const MINIDUMP_MEMORY_DESCRIPTOR* observed_stack = nullptr;
623 const MINIDUMP_MEMORY_DESCRIPTOR** observed_stack_p = 624 const MINIDUMP_MEMORY_DESCRIPTOR** observed_stack_p =
624 expect_threads[index].Stack.Memory.DataSize ? &observed_stack : nullptr; 625 expect_threads[index].Stack.Memory.DataSize ? &observed_stack : nullptr;
625 const MinidumpContextType* observed_context; 626 const MinidumpContextType* observed_context = nullptr;
626 ASSERT_NO_FATAL_FAILURE( 627 ASSERT_NO_FATAL_FAILURE(
627 ExpectThread(&expect_threads[index], 628 ExpectThread(&expect_threads[index],
628 &thread_list->Threads[index], 629 &thread_list->Threads[index],
629 file_writer.string(), 630 file_writer.string(),
630 observed_stack_p, 631 observed_stack_p,
631 reinterpret_cast<const void**>(&observed_context))); 632 reinterpret_cast<const void**>(&observed_context)));
632 633
633 ASSERT_NO_FATAL_FAILURE(Traits::ExpectMinidumpContext( 634 ASSERT_NO_FATAL_FAILURE(Traits::ExpectMinidumpContext(
634 context_seeds[index], observed_context, true)); 635 context_seeds[index], observed_context, true));
635 636
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
676 677
677 TEST(MinidumpThreadWriterDeathTest, InitializeFromSnapshot_NoContext) { 678 TEST(MinidumpThreadWriterDeathTest, InitializeFromSnapshot_NoContext) {
678 ASSERT_DEATH( 679 ASSERT_DEATH(
679 RunInitializeFromSnapshotTest<InitializeFromSnapshotNoContextTraits>( 680 RunInitializeFromSnapshotTest<InitializeFromSnapshotNoContextTraits>(
680 false), "context_"); 681 false), "context_");
681 } 682 }
682 683
683 } // namespace 684 } // namespace
684 } // namespace test 685 } // namespace test
685 } // namespace crashpad 686 } // namespace crashpad
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698