mirror of
https://github.com/chromium/crashpad.git
synced 2025-03-09 22:26:06 +00:00
win: Fixes for minidump_misc_info_writer_test.cc
MINIDUMP_MISC_INFO and MINIDUMP_MISC_INFO_2, etc. are not derived from each other in Windows' dbghelp.h, so need a reinterpret_cast. arraysize fails on Struct::Member with a big mess (below) but works ok on a local stack instance. d:\src\crashpad\crashpad\minidump\minidump_misc_info_writer_test.cc(405) : error C2664: 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>::basic_string(std::initializer_list<_Elem>,const std::allocator<char> &)' : cannot convert argument 1 from 'char' to 'const std::basic_string<char,std::char_traits<char>,std::allocator<char>> &' with [ _Elem=char ] Reason: cannot convert from 'char' to 'const std::basic_string<char,std::char_traits<char>,std::allocator<char>>' No constructor could take the source type, or constructor overload resolution was ambiguous d:\src\crashpad\crashpad\minidump\minidump_misc_info_writer_test.cc(408) : error C2784: 'char (&ArraySizeHelper(const T (&)[N]))[N]' : could not deduce template argument for 'const T (&)[N]' from 'unknown' d:\src\crashpad\crashpad\third_party\mini_chromium\mini_chromium\base\basictypes.h(39) : see declaration of 'ArraySizeHelper' R=mark@chromium.org BUG=crashpad:1 Review URL: https://codereview.chromium.org/899163004
This commit is contained in:
parent
619cc5f3df
commit
2d2ad633ea
@ -21,6 +21,7 @@
|
||||
#include <string>
|
||||
|
||||
#include "base/basictypes.h"
|
||||
#include "base/compiler_specific.h"
|
||||
#include "base/memory/scoped_ptr.h"
|
||||
#include "base/strings/string16.h"
|
||||
#include "base/strings/utf_string_conversions.h"
|
||||
@ -99,7 +100,9 @@ template <>
|
||||
void ExpectMiscInfoEqual<MINIDUMP_MISC_INFO_2>(
|
||||
const MINIDUMP_MISC_INFO_2* expected,
|
||||
const MINIDUMP_MISC_INFO_2* observed) {
|
||||
ExpectMiscInfoEqual<MINIDUMP_MISC_INFO>(expected, observed);
|
||||
ExpectMiscInfoEqual<MINIDUMP_MISC_INFO>(
|
||||
reinterpret_cast<const MINIDUMP_MISC_INFO*>(expected),
|
||||
reinterpret_cast<const MINIDUMP_MISC_INFO*>(observed));
|
||||
EXPECT_EQ(expected->ProcessorMaxMhz, observed->ProcessorMaxMhz);
|
||||
EXPECT_EQ(expected->ProcessorCurrentMhz, observed->ProcessorCurrentMhz);
|
||||
EXPECT_EQ(expected->ProcessorMhzLimit, observed->ProcessorMhzLimit);
|
||||
@ -112,7 +115,9 @@ template <>
|
||||
void ExpectMiscInfoEqual<MINIDUMP_MISC_INFO_3>(
|
||||
const MINIDUMP_MISC_INFO_3* expected,
|
||||
const MINIDUMP_MISC_INFO_3* observed) {
|
||||
ExpectMiscInfoEqual<MINIDUMP_MISC_INFO_2>(expected, observed);
|
||||
ExpectMiscInfoEqual<MINIDUMP_MISC_INFO_2>(
|
||||
reinterpret_cast<const MINIDUMP_MISC_INFO_2*>(expected),
|
||||
reinterpret_cast<const MINIDUMP_MISC_INFO_2*>(observed));
|
||||
EXPECT_EQ(expected->ProcessIntegrityLevel, observed->ProcessIntegrityLevel);
|
||||
EXPECT_EQ(expected->ProcessExecuteFlags, observed->ProcessExecuteFlags);
|
||||
EXPECT_EQ(expected->ProtectedProcess, observed->ProtectedProcess);
|
||||
@ -142,7 +147,9 @@ template <>
|
||||
void ExpectMiscInfoEqual<MINIDUMP_MISC_INFO_4>(
|
||||
const MINIDUMP_MISC_INFO_4* expected,
|
||||
const MINIDUMP_MISC_INFO_4* observed) {
|
||||
ExpectMiscInfoEqual<MINIDUMP_MISC_INFO_3>(expected, observed);
|
||||
ExpectMiscInfoEqual<MINIDUMP_MISC_INFO_3>(
|
||||
reinterpret_cast<const MINIDUMP_MISC_INFO_3*>(expected),
|
||||
reinterpret_cast<const MINIDUMP_MISC_INFO_3*>(observed));
|
||||
{
|
||||
SCOPED_TRACE("BuildString");
|
||||
ExpectNULPaddedString16Equal(expected->BuildString,
|
||||
@ -392,12 +399,11 @@ TEST(MinidumpMiscInfoWriter, TimeZoneStringsOverflow) {
|
||||
|
||||
const uint32_t kTimeZoneId = 2;
|
||||
const int32_t kBias = 300;
|
||||
std::string standard_name(
|
||||
arraysize(decltype(MINIDUMP_MISC_INFO_N::TimeZone)::StandardName) + 1,
|
||||
's');
|
||||
MINIDUMP_MISC_INFO_N tmp;
|
||||
ALLOW_UNUSED_LOCAL(tmp);
|
||||
std::string standard_name(arraysize(tmp.TimeZone.StandardName) + 1, 's');
|
||||
const int32_t kStandardBias = 0;
|
||||
std::string daylight_name(
|
||||
arraysize(decltype(MINIDUMP_MISC_INFO_N::TimeZone)::DaylightName), 'd');
|
||||
std::string daylight_name(arraysize(tmp.TimeZone.DaylightName), 'd');
|
||||
const int32_t kDaylightBias = -60;
|
||||
|
||||
// Test using kSystemTimeZero, because not all platforms will be able to
|
||||
@ -484,10 +490,10 @@ TEST(MinidumpMiscInfoWriter, BuildStringsOverflow) {
|
||||
MinidumpFileWriter minidump_file_writer;
|
||||
auto misc_info_writer = make_scoped_ptr(new MinidumpMiscInfoWriter());
|
||||
|
||||
std::string build_string(arraysize(MINIDUMP_MISC_INFO_N::BuildString) + 1,
|
||||
'B');
|
||||
std::string debug_build_string(arraysize(MINIDUMP_MISC_INFO_N::DbgBldStr),
|
||||
'D');
|
||||
MINIDUMP_MISC_INFO_4 tmp;
|
||||
ALLOW_UNUSED_LOCAL(tmp);
|
||||
std::string build_string(arraysize(tmp.BuildString) + 1, 'B');
|
||||
std::string debug_build_string(arraysize(tmp.DbgBldStr), 'D');
|
||||
|
||||
misc_info_writer->SetBuildString(build_string, debug_build_string);
|
||||
|
||||
@ -670,11 +676,11 @@ TEST(MinidumpMiscInfoWriter, InitializeFromSnapshot) {
|
||||
arraysize(expect_misc_info.DbgBldStr));
|
||||
|
||||
const timeval kStartTime =
|
||||
{ implicit_cast<time_t>(expect_misc_info.ProcessCreateTime), 0 };
|
||||
{ static_cast<time_t>(expect_misc_info.ProcessCreateTime), 0 };
|
||||
const timeval kUserCPUTime =
|
||||
{ implicit_cast<time_t>(expect_misc_info.ProcessUserTime), 0 };
|
||||
{ static_cast<time_t>(expect_misc_info.ProcessUserTime), 0 };
|
||||
const timeval kSystemCPUTime =
|
||||
{ implicit_cast<time_t>(expect_misc_info.ProcessKernelTime), 0 };
|
||||
{ static_cast<time_t>(expect_misc_info.ProcessKernelTime), 0 };
|
||||
|
||||
TestProcessSnapshot process_snapshot;
|
||||
process_snapshot.SetProcessID(expect_misc_info.ProcessId);
|
||||
@ -682,7 +688,7 @@ TEST(MinidumpMiscInfoWriter, InitializeFromSnapshot) {
|
||||
process_snapshot.SetProcessCPUTimes(kUserCPUTime, kSystemCPUTime);
|
||||
|
||||
auto system_snapshot = make_scoped_ptr(new TestSystemSnapshot());
|
||||
const uint64_t kHzPerMHz = 1E6;
|
||||
const uint64_t kHzPerMHz = static_cast<uint64_t>(1E6);
|
||||
system_snapshot->SetCPUFrequency(
|
||||
expect_misc_info.ProcessorCurrentMhz * kHzPerMHz,
|
||||
expect_misc_info.ProcessorMaxMhz * kHzPerMHz);
|
||||
|
Loading…
x
Reference in New Issue
Block a user