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 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 92 EXPECT_EQ(expected->ProcessId, observed->ProcessId); | 92 EXPECT_EQ(expected->ProcessId, observed->ProcessId); |
| 93 EXPECT_EQ(expected->ProcessCreateTime, observed->ProcessCreateTime); | 93 EXPECT_EQ(expected->ProcessCreateTime, observed->ProcessCreateTime); |
| 94 EXPECT_EQ(expected->ProcessUserTime, observed->ProcessUserTime); | 94 EXPECT_EQ(expected->ProcessUserTime, observed->ProcessUserTime); |
| 95 EXPECT_EQ(expected->ProcessKernelTime, observed->ProcessKernelTime); | 95 EXPECT_EQ(expected->ProcessKernelTime, observed->ProcessKernelTime); |
| 96 } | 96 } |
| 97 | 97 |
| 98 template <> | 98 template <> |
| 99 void ExpectMiscInfoEqual<MINIDUMP_MISC_INFO_2>( | 99 void ExpectMiscInfoEqual<MINIDUMP_MISC_INFO_2>( |
| 100 const MINIDUMP_MISC_INFO_2* expected, | 100 const MINIDUMP_MISC_INFO_2* expected, |
| 101 const MINIDUMP_MISC_INFO_2* observed) { | 101 const MINIDUMP_MISC_INFO_2* observed) { |
| 102 ExpectMiscInfoEqual<MINIDUMP_MISC_INFO>(expected, observed); | 102 ExpectMiscInfoEqual<MINIDUMP_MISC_INFO>( |
| 103 reinterpret_cast<const MINIDUMP_MISC_INFO*>(expected), | |
| 104 reinterpret_cast<const MINIDUMP_MISC_INFO*>(observed)); | |
| 103 EXPECT_EQ(expected->ProcessorMaxMhz, observed->ProcessorMaxMhz); | 105 EXPECT_EQ(expected->ProcessorMaxMhz, observed->ProcessorMaxMhz); |
| 104 EXPECT_EQ(expected->ProcessorCurrentMhz, observed->ProcessorCurrentMhz); | 106 EXPECT_EQ(expected->ProcessorCurrentMhz, observed->ProcessorCurrentMhz); |
| 105 EXPECT_EQ(expected->ProcessorMhzLimit, observed->ProcessorMhzLimit); | 107 EXPECT_EQ(expected->ProcessorMhzLimit, observed->ProcessorMhzLimit); |
| 106 EXPECT_EQ(expected->ProcessorMaxIdleState, observed->ProcessorMaxIdleState); | 108 EXPECT_EQ(expected->ProcessorMaxIdleState, observed->ProcessorMaxIdleState); |
| 107 EXPECT_EQ(expected->ProcessorCurrentIdleState, | 109 EXPECT_EQ(expected->ProcessorCurrentIdleState, |
| 108 observed->ProcessorCurrentIdleState); | 110 observed->ProcessorCurrentIdleState); |
| 109 } | 111 } |
| 110 | 112 |
| 111 template <> | 113 template <> |
| 112 void ExpectMiscInfoEqual<MINIDUMP_MISC_INFO_3>( | 114 void ExpectMiscInfoEqual<MINIDUMP_MISC_INFO_3>( |
| 113 const MINIDUMP_MISC_INFO_3* expected, | 115 const MINIDUMP_MISC_INFO_3* expected, |
| 114 const MINIDUMP_MISC_INFO_3* observed) { | 116 const MINIDUMP_MISC_INFO_3* observed) { |
| 115 ExpectMiscInfoEqual<MINIDUMP_MISC_INFO_2>(expected, observed); | 117 ExpectMiscInfoEqual<MINIDUMP_MISC_INFO_2>( |
| 118 reinterpret_cast<const MINIDUMP_MISC_INFO_2*>(expected), | |
| 119 reinterpret_cast<const MINIDUMP_MISC_INFO_2*>(observed)); | |
| 116 EXPECT_EQ(expected->ProcessIntegrityLevel, observed->ProcessIntegrityLevel); | 120 EXPECT_EQ(expected->ProcessIntegrityLevel, observed->ProcessIntegrityLevel); |
| 117 EXPECT_EQ(expected->ProcessExecuteFlags, observed->ProcessExecuteFlags); | 121 EXPECT_EQ(expected->ProcessExecuteFlags, observed->ProcessExecuteFlags); |
| 118 EXPECT_EQ(expected->ProtectedProcess, observed->ProtectedProcess); | 122 EXPECT_EQ(expected->ProtectedProcess, observed->ProtectedProcess); |
| 119 EXPECT_EQ(expected->TimeZoneId, observed->TimeZoneId); | 123 EXPECT_EQ(expected->TimeZoneId, observed->TimeZoneId); |
| 120 EXPECT_EQ(expected->TimeZone.Bias, observed->TimeZone.Bias); | 124 EXPECT_EQ(expected->TimeZone.Bias, observed->TimeZone.Bias); |
| 121 { | 125 { |
| 122 SCOPED_TRACE("Standard"); | 126 SCOPED_TRACE("Standard"); |
| 123 ExpectNULPaddedString16Equal(expected->TimeZone.StandardName, | 127 ExpectNULPaddedString16Equal(expected->TimeZone.StandardName, |
| 124 observed->TimeZone.StandardName, | 128 observed->TimeZone.StandardName, |
| 125 arraysize(expected->TimeZone.StandardName)); | 129 arraysize(expected->TimeZone.StandardName)); |
| 126 ExpectSystemTimeEqual(&expected->TimeZone.StandardDate, | 130 ExpectSystemTimeEqual(&expected->TimeZone.StandardDate, |
| 127 &observed->TimeZone.StandardDate); | 131 &observed->TimeZone.StandardDate); |
| 128 EXPECT_EQ(expected->TimeZone.StandardBias, observed->TimeZone.StandardBias); | 132 EXPECT_EQ(expected->TimeZone.StandardBias, observed->TimeZone.StandardBias); |
| 129 } | 133 } |
| 130 { | 134 { |
| 131 SCOPED_TRACE("Daylight"); | 135 SCOPED_TRACE("Daylight"); |
| 132 ExpectNULPaddedString16Equal(expected->TimeZone.DaylightName, | 136 ExpectNULPaddedString16Equal(expected->TimeZone.DaylightName, |
| 133 observed->TimeZone.DaylightName, | 137 observed->TimeZone.DaylightName, |
| 134 arraysize(expected->TimeZone.DaylightName)); | 138 arraysize(expected->TimeZone.DaylightName)); |
| 135 ExpectSystemTimeEqual(&expected->TimeZone.DaylightDate, | 139 ExpectSystemTimeEqual(&expected->TimeZone.DaylightDate, |
| 136 &observed->TimeZone.DaylightDate); | 140 &observed->TimeZone.DaylightDate); |
| 137 EXPECT_EQ(expected->TimeZone.DaylightBias, observed->TimeZone.DaylightBias); | 141 EXPECT_EQ(expected->TimeZone.DaylightBias, observed->TimeZone.DaylightBias); |
| 138 } | 142 } |
| 139 } | 143 } |
| 140 | 144 |
| 141 template <> | 145 template <> |
| 142 void ExpectMiscInfoEqual<MINIDUMP_MISC_INFO_4>( | 146 void ExpectMiscInfoEqual<MINIDUMP_MISC_INFO_4>( |
| 143 const MINIDUMP_MISC_INFO_4* expected, | 147 const MINIDUMP_MISC_INFO_4* expected, |
| 144 const MINIDUMP_MISC_INFO_4* observed) { | 148 const MINIDUMP_MISC_INFO_4* observed) { |
| 145 ExpectMiscInfoEqual<MINIDUMP_MISC_INFO_3>(expected, observed); | 149 ExpectMiscInfoEqual<MINIDUMP_MISC_INFO_3>( |
| 150 reinterpret_cast<const MINIDUMP_MISC_INFO_3*>(expected), | |
| 151 reinterpret_cast<const MINIDUMP_MISC_INFO_3*>(observed)); | |
| 146 { | 152 { |
| 147 SCOPED_TRACE("BuildString"); | 153 SCOPED_TRACE("BuildString"); |
| 148 ExpectNULPaddedString16Equal(expected->BuildString, | 154 ExpectNULPaddedString16Equal(expected->BuildString, |
| 149 observed->BuildString, | 155 observed->BuildString, |
| 150 arraysize(expected->BuildString)); | 156 arraysize(expected->BuildString)); |
| 151 } | 157 } |
| 152 { | 158 { |
| 153 SCOPED_TRACE("DbgBldStr"); | 159 SCOPED_TRACE("DbgBldStr"); |
| 154 ExpectNULPaddedString16Equal(expected->DbgBldStr, | 160 ExpectNULPaddedString16Equal(expected->DbgBldStr, |
| 155 observed->DbgBldStr, | 161 observed->DbgBldStr, |
| (...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 385 | 391 |
| 386 TEST(MinidumpMiscInfoWriter, TimeZoneStringsOverflow) { | 392 TEST(MinidumpMiscInfoWriter, TimeZoneStringsOverflow) { |
| 387 // This test makes sure that the time zone name strings are truncated properly | 393 // This test makes sure that the time zone name strings are truncated properly |
| 388 // to the widths of their fields. | 394 // to the widths of their fields. |
| 389 | 395 |
| 390 MinidumpFileWriter minidump_file_writer; | 396 MinidumpFileWriter minidump_file_writer; |
| 391 auto misc_info_writer = make_scoped_ptr(new MinidumpMiscInfoWriter()); | 397 auto misc_info_writer = make_scoped_ptr(new MinidumpMiscInfoWriter()); |
| 392 | 398 |
| 393 const uint32_t kTimeZoneId = 2; | 399 const uint32_t kTimeZoneId = 2; |
| 394 const int32_t kBias = 300; | 400 const int32_t kBias = 300; |
| 395 std::string standard_name( | 401 MINIDUMP_MISC_INFO_N tmp; (void)tmp; |
|
Mark Mentovai
2015/02/05 14:31:35
Add ALLOW_UNUSED_LOCAL to mini_chromium and use it
scottmg
2015/02/05 17:04:28
Done.
| |
| 396 arraysize(decltype(MINIDUMP_MISC_INFO_N::TimeZone)::StandardName) + 1, | 402 std::string standard_name(arraysize(tmp.TimeZone.StandardName) + 1, 's'); |
| 397 's'); | |
| 398 const int32_t kStandardBias = 0; | 403 const int32_t kStandardBias = 0; |
| 399 std::string daylight_name( | 404 std::string daylight_name(arraysize(tmp.TimeZone.DaylightName), 'd'); |
| 400 arraysize(decltype(MINIDUMP_MISC_INFO_N::TimeZone)::DaylightName), 'd'); | |
| 401 const int32_t kDaylightBias = -60; | 405 const int32_t kDaylightBias = -60; |
| 402 | 406 |
| 403 // Test using kSystemTimeZero, because not all platforms will be able to | 407 // Test using kSystemTimeZero, because not all platforms will be able to |
| 404 // provide daylight saving time transition times. | 408 // provide daylight saving time transition times. |
| 405 const SYSTEMTIME kSystemTimeZero = {}; | 409 const SYSTEMTIME kSystemTimeZero = {}; |
| 406 | 410 |
| 407 misc_info_writer->SetTimeZone(kTimeZoneId, | 411 misc_info_writer->SetTimeZone(kTimeZoneId, |
| 408 kBias, | 412 kBias, |
| 409 standard_name, | 413 standard_name, |
| 410 kSystemTimeZero, | 414 kSystemTimeZero, |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 477 ExpectMiscInfoEqual(&expected, observed); | 481 ExpectMiscInfoEqual(&expected, observed); |
| 478 } | 482 } |
| 479 | 483 |
| 480 TEST(MinidumpMiscInfoWriter, BuildStringsOverflow) { | 484 TEST(MinidumpMiscInfoWriter, BuildStringsOverflow) { |
| 481 // This test makes sure that the build strings are truncated properly to the | 485 // This test makes sure that the build strings are truncated properly to the |
| 482 // widths of their fields. | 486 // widths of their fields. |
| 483 | 487 |
| 484 MinidumpFileWriter minidump_file_writer; | 488 MinidumpFileWriter minidump_file_writer; |
| 485 auto misc_info_writer = make_scoped_ptr(new MinidumpMiscInfoWriter()); | 489 auto misc_info_writer = make_scoped_ptr(new MinidumpMiscInfoWriter()); |
| 486 | 490 |
| 487 std::string build_string(arraysize(MINIDUMP_MISC_INFO_N::BuildString) + 1, | 491 MINIDUMP_MISC_INFO_4 tmp; (void)tmp; |
|
Mark Mentovai
2015/02/05 14:31:35
Here too.
scottmg
2015/02/05 17:04:28
Done.
| |
| 488 'B'); | 492 std::string build_string(arraysize(tmp.BuildString) + 1, 'B'); |
|
Mark Mentovai
2015/02/05 14:31:35
Nice, the local variable makes these lines less ug
| |
| 489 std::string debug_build_string(arraysize(MINIDUMP_MISC_INFO_N::DbgBldStr), | 493 std::string debug_build_string(arraysize(tmp.DbgBldStr), 'D'); |
| 490 'D'); | |
| 491 | 494 |
| 492 misc_info_writer->SetBuildString(build_string, debug_build_string); | 495 misc_info_writer->SetBuildString(build_string, debug_build_string); |
| 493 | 496 |
| 494 minidump_file_writer.AddStream(misc_info_writer.Pass()); | 497 minidump_file_writer.AddStream(misc_info_writer.Pass()); |
| 495 | 498 |
| 496 StringFileWriter file_writer; | 499 StringFileWriter file_writer; |
| 497 ASSERT_TRUE(minidump_file_writer.WriteEverything(&file_writer)); | 500 ASSERT_TRUE(minidump_file_writer.WriteEverything(&file_writer)); |
| 498 | 501 |
| 499 const MINIDUMP_MISC_INFO_4* observed; | 502 const MINIDUMP_MISC_INFO_4* observed; |
| 500 ASSERT_NO_FATAL_FAILURE(GetMiscInfoStream(file_writer.string(), &observed)); | 503 ASSERT_NO_FATAL_FAILURE(GetMiscInfoStream(file_writer.string(), &observed)); |
| (...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 663 arraysize(expect_misc_info.TimeZone.DaylightName)); | 666 arraysize(expect_misc_info.TimeZone.DaylightName)); |
| 664 expect_misc_info.TimeZone.DaylightBias = -60; | 667 expect_misc_info.TimeZone.DaylightBias = -60; |
| 665 c16lcpy(expect_misc_info.BuildString, | 668 c16lcpy(expect_misc_info.BuildString, |
| 666 build_string_utf16.c_str(), | 669 build_string_utf16.c_str(), |
| 667 arraysize(expect_misc_info.BuildString)); | 670 arraysize(expect_misc_info.BuildString)); |
| 668 c16lcpy(expect_misc_info.DbgBldStr, | 671 c16lcpy(expect_misc_info.DbgBldStr, |
| 669 debug_build_string_utf16.c_str(), | 672 debug_build_string_utf16.c_str(), |
| 670 arraysize(expect_misc_info.DbgBldStr)); | 673 arraysize(expect_misc_info.DbgBldStr)); |
| 671 | 674 |
| 672 const timeval kStartTime = | 675 const timeval kStartTime = |
| 673 { implicit_cast<time_t>(expect_misc_info.ProcessCreateTime), 0 }; | 676 { static_cast<time_t>(expect_misc_info.ProcessCreateTime), 0 }; |
| 674 const timeval kUserCPUTime = | 677 const timeval kUserCPUTime = |
| 675 { implicit_cast<time_t>(expect_misc_info.ProcessUserTime), 0 }; | 678 { static_cast<time_t>(expect_misc_info.ProcessUserTime), 0 }; |
| 676 const timeval kSystemCPUTime = | 679 const timeval kSystemCPUTime = |
| 677 { implicit_cast<time_t>(expect_misc_info.ProcessKernelTime), 0 }; | 680 { static_cast<time_t>(expect_misc_info.ProcessKernelTime), 0 }; |
| 678 | 681 |
| 679 TestProcessSnapshot process_snapshot; | 682 TestProcessSnapshot process_snapshot; |
| 680 process_snapshot.SetProcessID(expect_misc_info.ProcessId); | 683 process_snapshot.SetProcessID(expect_misc_info.ProcessId); |
| 681 process_snapshot.SetProcessStartTime(kStartTime); | 684 process_snapshot.SetProcessStartTime(kStartTime); |
| 682 process_snapshot.SetProcessCPUTimes(kUserCPUTime, kSystemCPUTime); | 685 process_snapshot.SetProcessCPUTimes(kUserCPUTime, kSystemCPUTime); |
| 683 | 686 |
| 684 auto system_snapshot = make_scoped_ptr(new TestSystemSnapshot()); | 687 auto system_snapshot = make_scoped_ptr(new TestSystemSnapshot()); |
| 685 const uint64_t kHzPerMHz = 1E6; | 688 const uint64_t kHzPerMHz = static_cast<uint64_t>(1E6); |
| 686 system_snapshot->SetCPUFrequency( | 689 system_snapshot->SetCPUFrequency( |
| 687 expect_misc_info.ProcessorCurrentMhz * kHzPerMHz, | 690 expect_misc_info.ProcessorCurrentMhz * kHzPerMHz, |
| 688 expect_misc_info.ProcessorMaxMhz * kHzPerMHz); | 691 expect_misc_info.ProcessorMaxMhz * kHzPerMHz); |
| 689 system_snapshot->SetTimeZone(SystemSnapshot::kObservingStandardTime, | 692 system_snapshot->SetTimeZone(SystemSnapshot::kObservingStandardTime, |
| 690 expect_misc_info.TimeZone.Bias * -60, | 693 expect_misc_info.TimeZone.Bias * -60, |
| 691 (expect_misc_info.TimeZone.Bias + | 694 (expect_misc_info.TimeZone.Bias + |
| 692 expect_misc_info.TimeZone.DaylightBias) * -60, | 695 expect_misc_info.TimeZone.DaylightBias) * -60, |
| 693 kStandardTimeName, | 696 kStandardTimeName, |
| 694 kDaylightTimeName); | 697 kDaylightTimeName); |
| 695 system_snapshot->SetOSVersionFull(kOSVersionFull); | 698 system_snapshot->SetOSVersionFull(kOSVersionFull); |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 708 | 711 |
| 709 const MINIDUMP_MISC_INFO_4* misc_info; | 712 const MINIDUMP_MISC_INFO_4* misc_info; |
| 710 ASSERT_NO_FATAL_FAILURE(GetMiscInfoStream(file_writer.string(), &misc_info)); | 713 ASSERT_NO_FATAL_FAILURE(GetMiscInfoStream(file_writer.string(), &misc_info)); |
| 711 | 714 |
| 712 ExpectMiscInfoEqual(&expect_misc_info, misc_info); | 715 ExpectMiscInfoEqual(&expect_misc_info, misc_info); |
| 713 } | 716 } |
| 714 | 717 |
| 715 } // namespace | 718 } // namespace |
| 716 } // namespace test | 719 } // namespace test |
| 717 } // namespace crashpad | 720 } // namespace crashpad |
| OLD | NEW |