Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 223 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 234 ASSERT_NO_FATAL_FAILURE(VerifyMinidumpHeader(header, 1, 0)); | 234 ASSERT_NO_FATAL_FAILURE(VerifyMinidumpHeader(header, 1, 0)); |
| 235 ASSERT_TRUE(directory); | 235 ASSERT_TRUE(directory); |
| 236 | 236 |
| 237 EXPECT_EQ(kStreamType, directory[0].StreamType); | 237 EXPECT_EQ(kStreamType, directory[0].StreamType); |
| 238 EXPECT_EQ(kStreamSize, directory[0].Location.DataSize); | 238 EXPECT_EQ(kStreamSize, directory[0].Location.DataSize); |
| 239 EXPECT_EQ(kStreamOffset, directory[0].Location.Rva); | 239 EXPECT_EQ(kStreamOffset, directory[0].Location.Rva); |
| 240 } | 240 } |
| 241 | 241 |
| 242 TEST(MinidumpFileWriter, InitializeFromSnapshot_Basic) { | 242 TEST(MinidumpFileWriter, InitializeFromSnapshot_Basic) { |
| 243 const uint32_t kSnapshotTime = 0x4976043c; | 243 const uint32_t kSnapshotTime = 0x4976043c; |
| 244 const timeval kSnapshotTimeval = { implicit_cast<time_t>(kSnapshotTime), 0 }; | 244 const timeval kSnapshotTimeval = { static_cast<time_t>(kSnapshotTime), 0 }; |
| 245 | 245 |
| 246 TestProcessSnapshot process_snapshot; | 246 TestProcessSnapshot process_snapshot; |
| 247 process_snapshot.SetSnapshotTime(kSnapshotTimeval); | 247 process_snapshot.SetSnapshotTime(kSnapshotTimeval); |
| 248 | 248 |
| 249 auto system_snapshot = make_scoped_ptr(new TestSystemSnapshot()); | 249 auto system_snapshot = make_scoped_ptr(new TestSystemSnapshot()); |
| 250 system_snapshot->SetCPUArchitecture(kCPUArchitectureX86_64); | 250 system_snapshot->SetCPUArchitecture(kCPUArchitectureX86_64); |
| 251 system_snapshot->SetOperatingSystem(SystemSnapshot::kOperatingSystemMacOSX); | 251 system_snapshot->SetOperatingSystem(SystemSnapshot::kOperatingSystemMacOSX); |
| 252 process_snapshot.SetSystem(system_snapshot.Pass()); | 252 process_snapshot.SetSystem(system_snapshot.Pass()); |
| 253 | 253 |
| 254 MinidumpFileWriter minidump_file_writer; | 254 MinidumpFileWriter minidump_file_writer; |
| (...skipping 25 matching lines...) Expand all Loading... | |
| 280 file_writer.string(), directory[3].Location)); | 280 file_writer.string(), directory[3].Location)); |
| 281 | 281 |
| 282 EXPECT_EQ(kMinidumpStreamTypeMemoryList, directory[4].StreamType); | 282 EXPECT_EQ(kMinidumpStreamTypeMemoryList, directory[4].StreamType); |
| 283 EXPECT_TRUE(MinidumpWritableAtLocationDescriptor<MINIDUMP_MEMORY_LIST>( | 283 EXPECT_TRUE(MinidumpWritableAtLocationDescriptor<MINIDUMP_MEMORY_LIST>( |
| 284 file_writer.string(), directory[4].Location)); | 284 file_writer.string(), directory[4].Location)); |
| 285 } | 285 } |
| 286 | 286 |
| 287 TEST(MinidumpFileWriter, InitializeFromSnapshot_Exception) { | 287 TEST(MinidumpFileWriter, InitializeFromSnapshot_Exception) { |
| 288 // In a 32-bit environment, this will give a “timestamp out of range” warning, | 288 // In a 32-bit environment, this will give a “timestamp out of range” warning, |
| 289 // but the test should complete without failure. | 289 // but the test should complete without failure. |
| 290 #if defined(OS_WIN) && defined(ARCH_CPU_X86) | |
| 291 #pragma warning(push) | |
| 292 #pragma warning(disable: 4309) // Truncation of constant value. | |
|
Mark Mentovai
2015/02/05 14:24:32
If this comes up in many more places, perhaps we s
| |
| 293 #endif // OS_WIN && ARCH_CPU_X86 | |
| 290 const uint32_t kSnapshotTime = 0xfd469ab8; | 294 const uint32_t kSnapshotTime = 0xfd469ab8; |
| 291 const timeval kSnapshotTimeval = { implicit_cast<time_t>(kSnapshotTime), 0 }; | 295 const timeval kSnapshotTimeval = { static_cast<time_t>(kSnapshotTime), 0 }; |
| 296 #if defined(OS_WIN) && defined(ARCH_CPU_X86) | |
| 297 #pragma warning(pop) | |
| 298 #endif // OS_WIN && ARCH_CPU_X86 | |
| 292 | 299 |
| 293 TestProcessSnapshot process_snapshot; | 300 TestProcessSnapshot process_snapshot; |
| 294 process_snapshot.SetSnapshotTime(kSnapshotTimeval); | 301 process_snapshot.SetSnapshotTime(kSnapshotTimeval); |
| 295 | 302 |
| 296 auto system_snapshot = make_scoped_ptr(new TestSystemSnapshot()); | 303 auto system_snapshot = make_scoped_ptr(new TestSystemSnapshot()); |
| 297 system_snapshot->SetCPUArchitecture(kCPUArchitectureX86_64); | 304 system_snapshot->SetCPUArchitecture(kCPUArchitectureX86_64); |
| 298 system_snapshot->SetOperatingSystem(SystemSnapshot::kOperatingSystemMacOSX); | 305 system_snapshot->SetOperatingSystem(SystemSnapshot::kOperatingSystemMacOSX); |
| 299 process_snapshot.SetSystem(system_snapshot.Pass()); | 306 process_snapshot.SetSystem(system_snapshot.Pass()); |
| 300 | 307 |
| 301 auto thread_snapshot = make_scoped_ptr(new TestThreadSnapshot()); | 308 auto thread_snapshot = make_scoped_ptr(new TestThreadSnapshot()); |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 345 EXPECT_TRUE(MinidumpWritableAtLocationDescriptor<MINIDUMP_MODULE_LIST>( | 352 EXPECT_TRUE(MinidumpWritableAtLocationDescriptor<MINIDUMP_MODULE_LIST>( |
| 346 file_writer.string(), directory[4].Location)); | 353 file_writer.string(), directory[4].Location)); |
| 347 | 354 |
| 348 EXPECT_EQ(kMinidumpStreamTypeMemoryList, directory[5].StreamType); | 355 EXPECT_EQ(kMinidumpStreamTypeMemoryList, directory[5].StreamType); |
| 349 EXPECT_TRUE(MinidumpWritableAtLocationDescriptor<MINIDUMP_MEMORY_LIST>( | 356 EXPECT_TRUE(MinidumpWritableAtLocationDescriptor<MINIDUMP_MEMORY_LIST>( |
| 350 file_writer.string(), directory[5].Location)); | 357 file_writer.string(), directory[5].Location)); |
| 351 } | 358 } |
| 352 | 359 |
| 353 TEST(MinidumpFileWriter, InitializeFromSnapshot_CrashpadInfo) { | 360 TEST(MinidumpFileWriter, InitializeFromSnapshot_CrashpadInfo) { |
| 354 const uint32_t kSnapshotTime = 0x15393bd3; | 361 const uint32_t kSnapshotTime = 0x15393bd3; |
| 355 const timeval kSnapshotTimeval = { implicit_cast<time_t>(kSnapshotTime), 0 }; | 362 const timeval kSnapshotTimeval = { static_cast<time_t>(kSnapshotTime), 0 }; |
| 356 | 363 |
| 357 TestProcessSnapshot process_snapshot; | 364 TestProcessSnapshot process_snapshot; |
| 358 process_snapshot.SetSnapshotTime(kSnapshotTimeval); | 365 process_snapshot.SetSnapshotTime(kSnapshotTimeval); |
| 359 | 366 |
| 360 auto system_snapshot = make_scoped_ptr(new TestSystemSnapshot()); | 367 auto system_snapshot = make_scoped_ptr(new TestSystemSnapshot()); |
| 361 system_snapshot->SetCPUArchitecture(kCPUArchitectureX86_64); | 368 system_snapshot->SetCPUArchitecture(kCPUArchitectureX86_64); |
| 362 system_snapshot->SetOperatingSystem(SystemSnapshot::kOperatingSystemMacOSX); | 369 system_snapshot->SetOperatingSystem(SystemSnapshot::kOperatingSystemMacOSX); |
| 363 process_snapshot.SetSystem(system_snapshot.Pass()); | 370 process_snapshot.SetSystem(system_snapshot.Pass()); |
| 364 | 371 |
| 365 auto thread_snapshot = make_scoped_ptr(new TestThreadSnapshot()); | 372 auto thread_snapshot = make_scoped_ptr(new TestThreadSnapshot()); |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 433 const MinidumpStreamType kStream1Type = static_cast<MinidumpStreamType>(0x4d); | 440 const MinidumpStreamType kStream1Type = static_cast<MinidumpStreamType>(0x4d); |
| 434 const uint8_t kStream1Value = 0xa5; | 441 const uint8_t kStream1Value = 0xa5; |
| 435 auto stream1 = make_scoped_ptr( | 442 auto stream1 = make_scoped_ptr( |
| 436 new TestStream(kStream1Type, kStream1Size, kStream1Value)); | 443 new TestStream(kStream1Type, kStream1Size, kStream1Value)); |
| 437 ASSERT_DEATH(minidump_file.AddStream(stream1.Pass()), "already present"); | 444 ASSERT_DEATH(minidump_file.AddStream(stream1.Pass()), "already present"); |
| 438 } | 445 } |
| 439 | 446 |
| 440 } // namespace | 447 } // namespace |
| 441 } // namespace test | 448 } // namespace test |
| 442 } // namespace crashpad | 449 } // namespace crashpad |
| OLD | NEW |