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 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
44 const size_t kCSDVersionOffset = | 44 const size_t kCSDVersionOffset = |
45 kSystemInfoStreamOffset + sizeof(MINIDUMP_SYSTEM_INFO); | 45 kSystemInfoStreamOffset + sizeof(MINIDUMP_SYSTEM_INFO); |
46 const size_t kFileSize = | 46 const size_t kFileSize = |
47 kCSDVersionOffset + sizeof(MINIDUMP_STRING) + kCSDVersionBytesWithNUL; | 47 kCSDVersionOffset + sizeof(MINIDUMP_STRING) + kCSDVersionBytesWithNUL; |
48 | 48 |
49 ASSERT_EQ(kFileSize, file_contents.size()); | 49 ASSERT_EQ(kFileSize, file_contents.size()); |
50 | 50 |
51 const MINIDUMP_HEADER* header = | 51 const MINIDUMP_HEADER* header = |
52 reinterpret_cast<const MINIDUMP_HEADER*>(&file_contents[0]); | 52 reinterpret_cast<const MINIDUMP_HEADER*>(&file_contents[0]); |
53 | 53 |
54 VerifyMinidumpHeader(header, 1, 0); | 54 ASSERT_NO_FATAL_FAILURE(VerifyMinidumpHeader(header, 1, 0)); |
55 if (testing::Test::HasFatalFailure()) { | |
56 return; | |
57 } | |
58 | 55 |
59 const MINIDUMP_DIRECTORY* directory = | 56 const MINIDUMP_DIRECTORY* directory = |
60 reinterpret_cast<const MINIDUMP_DIRECTORY*>( | 57 reinterpret_cast<const MINIDUMP_DIRECTORY*>( |
61 &file_contents[kDirectoryOffset]); | 58 &file_contents[kDirectoryOffset]); |
62 | 59 |
63 ASSERT_EQ(kMinidumpStreamTypeSystemInfo, directory->StreamType); | 60 ASSERT_EQ(kMinidumpStreamTypeSystemInfo, directory->StreamType); |
64 ASSERT_EQ(sizeof(MINIDUMP_SYSTEM_INFO), directory->Location.DataSize); | 61 ASSERT_EQ(sizeof(MINIDUMP_SYSTEM_INFO), directory->Location.DataSize); |
65 ASSERT_EQ(kSystemInfoStreamOffset, directory->Location.Rva); | 62 ASSERT_EQ(kSystemInfoStreamOffset, directory->Location.Rva); |
66 | 63 |
67 *system_info = reinterpret_cast<const MINIDUMP_SYSTEM_INFO*>( | 64 *system_info = reinterpret_cast<const MINIDUMP_SYSTEM_INFO*>( |
(...skipping 14 matching lines...) Expand all Loading... |
82 system_info_writer.SetCSDVersion(std::string()); | 79 system_info_writer.SetCSDVersion(std::string()); |
83 | 80 |
84 minidump_file_writer.AddStream(&system_info_writer); | 81 minidump_file_writer.AddStream(&system_info_writer); |
85 | 82 |
86 StringFileWriter file_writer; | 83 StringFileWriter file_writer; |
87 ASSERT_TRUE(minidump_file_writer.WriteEverything(&file_writer)); | 84 ASSERT_TRUE(minidump_file_writer.WriteEverything(&file_writer)); |
88 | 85 |
89 const MINIDUMP_SYSTEM_INFO* system_info; | 86 const MINIDUMP_SYSTEM_INFO* system_info; |
90 const MINIDUMP_STRING* csd_version; | 87 const MINIDUMP_STRING* csd_version; |
91 | 88 |
92 GetSystemInfoStream(file_writer.string(), 0, &system_info, &csd_version); | 89 ASSERT_NO_FATAL_FAILURE( |
93 if (Test::HasFatalFailure()) { | 90 GetSystemInfoStream(file_writer.string(), 0, &system_info, &csd_version)); |
94 return; | |
95 } | |
96 | 91 |
97 EXPECT_EQ(kMinidumpCPUArchitectureUnknown, | 92 EXPECT_EQ(kMinidumpCPUArchitectureUnknown, |
98 system_info->ProcessorArchitecture); | 93 system_info->ProcessorArchitecture); |
99 EXPECT_EQ(0u, system_info->ProcessorLevel); | 94 EXPECT_EQ(0u, system_info->ProcessorLevel); |
100 EXPECT_EQ(0u, system_info->ProcessorRevision); | 95 EXPECT_EQ(0u, system_info->ProcessorRevision); |
101 EXPECT_EQ(0u, system_info->NumberOfProcessors); | 96 EXPECT_EQ(0u, system_info->NumberOfProcessors); |
102 EXPECT_EQ(0u, system_info->ProductType); | 97 EXPECT_EQ(0u, system_info->ProductType); |
103 EXPECT_EQ(0u, system_info->MajorVersion); | 98 EXPECT_EQ(0u, system_info->MajorVersion); |
104 EXPECT_EQ(0u, system_info->MinorVersion); | 99 EXPECT_EQ(0u, system_info->MinorVersion); |
105 EXPECT_EQ(0u, system_info->BuildNumber); | 100 EXPECT_EQ(0u, system_info->BuildNumber); |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
155 system_info_writer.SetCPUX86AMDExtendedFeatures(kAMDFeatures); | 150 system_info_writer.SetCPUX86AMDExtendedFeatures(kAMDFeatures); |
156 | 151 |
157 minidump_file_writer.AddStream(&system_info_writer); | 152 minidump_file_writer.AddStream(&system_info_writer); |
158 | 153 |
159 StringFileWriter file_writer; | 154 StringFileWriter file_writer; |
160 ASSERT_TRUE(minidump_file_writer.WriteEverything(&file_writer)); | 155 ASSERT_TRUE(minidump_file_writer.WriteEverything(&file_writer)); |
161 | 156 |
162 const MINIDUMP_SYSTEM_INFO* system_info; | 157 const MINIDUMP_SYSTEM_INFO* system_info; |
163 const MINIDUMP_STRING* csd_version; | 158 const MINIDUMP_STRING* csd_version; |
164 | 159 |
165 GetSystemInfoStream( | 160 ASSERT_NO_FATAL_FAILURE(GetSystemInfoStream( |
166 file_writer.string(), strlen(kCSDVersion), &system_info, &csd_version); | 161 file_writer.string(), strlen(kCSDVersion), &system_info, &csd_version)); |
167 if (Test::HasFatalFailure()) { | |
168 return; | |
169 } | |
170 | 162 |
171 EXPECT_EQ(kCPUArchitecture, system_info->ProcessorArchitecture); | 163 EXPECT_EQ(kCPUArchitecture, system_info->ProcessorArchitecture); |
172 EXPECT_EQ(kCPULevel, system_info->ProcessorLevel); | 164 EXPECT_EQ(kCPULevel, system_info->ProcessorLevel); |
173 EXPECT_EQ(kCPURevision, system_info->ProcessorRevision); | 165 EXPECT_EQ(kCPURevision, system_info->ProcessorRevision); |
174 EXPECT_EQ(kCPUCount, system_info->NumberOfProcessors); | 166 EXPECT_EQ(kCPUCount, system_info->NumberOfProcessors); |
175 EXPECT_EQ(kOSType, system_info->ProductType); | 167 EXPECT_EQ(kOSType, system_info->ProductType); |
176 EXPECT_EQ(kOSVersionMajor, system_info->MajorVersion); | 168 EXPECT_EQ(kOSVersionMajor, system_info->MajorVersion); |
177 EXPECT_EQ(kOSVersionMinor, system_info->MinorVersion); | 169 EXPECT_EQ(kOSVersionMinor, system_info->MinorVersion); |
178 EXPECT_EQ(kOSVersionBuild, system_info->BuildNumber); | 170 EXPECT_EQ(kOSVersionBuild, system_info->BuildNumber); |
179 EXPECT_EQ(kOS, system_info->PlatformId); | 171 EXPECT_EQ(kOS, system_info->PlatformId); |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
218 system_info_writer.SetCPUOtherFeatures(kCPUFeatures[0], kCPUFeatures[1]); | 210 system_info_writer.SetCPUOtherFeatures(kCPUFeatures[0], kCPUFeatures[1]); |
219 | 211 |
220 minidump_file_writer.AddStream(&system_info_writer); | 212 minidump_file_writer.AddStream(&system_info_writer); |
221 | 213 |
222 StringFileWriter file_writer; | 214 StringFileWriter file_writer; |
223 ASSERT_TRUE(minidump_file_writer.WriteEverything(&file_writer)); | 215 ASSERT_TRUE(minidump_file_writer.WriteEverything(&file_writer)); |
224 | 216 |
225 const MINIDUMP_SYSTEM_INFO* system_info; | 217 const MINIDUMP_SYSTEM_INFO* system_info; |
226 const MINIDUMP_STRING* csd_version; | 218 const MINIDUMP_STRING* csd_version; |
227 | 219 |
228 GetSystemInfoStream( | 220 ASSERT_NO_FATAL_FAILURE(GetSystemInfoStream( |
229 file_writer.string(), strlen(kCSDVersion), &system_info, &csd_version); | 221 file_writer.string(), strlen(kCSDVersion), &system_info, &csd_version)); |
230 if (Test::HasFatalFailure()) { | |
231 return; | |
232 } | |
233 | 222 |
234 EXPECT_EQ(kCPUArchitecture, system_info->ProcessorArchitecture); | 223 EXPECT_EQ(kCPUArchitecture, system_info->ProcessorArchitecture); |
235 EXPECT_EQ(kCPULevel, system_info->ProcessorLevel); | 224 EXPECT_EQ(kCPULevel, system_info->ProcessorLevel); |
236 EXPECT_EQ(kCPURevision, system_info->ProcessorRevision); | 225 EXPECT_EQ(kCPURevision, system_info->ProcessorRevision); |
237 EXPECT_EQ(kCPUCount, system_info->NumberOfProcessors); | 226 EXPECT_EQ(kCPUCount, system_info->NumberOfProcessors); |
238 EXPECT_EQ(kOSType, system_info->ProductType); | 227 EXPECT_EQ(kOSType, system_info->ProductType); |
239 EXPECT_EQ(kOSVersionMajor, system_info->MajorVersion); | 228 EXPECT_EQ(kOSVersionMajor, system_info->MajorVersion); |
240 EXPECT_EQ(kOSVersionMinor, system_info->MinorVersion); | 229 EXPECT_EQ(kOSVersionMinor, system_info->MinorVersion); |
241 EXPECT_EQ(kOSVersionBuild, system_info->BuildNumber); | 230 EXPECT_EQ(kOSVersionBuild, system_info->BuildNumber); |
242 EXPECT_EQ(kOS, system_info->PlatformId); | 231 EXPECT_EQ(kOS, system_info->PlatformId); |
(...skipping 20 matching lines...) Expand all Loading... |
263 system_info_writer.SetCSDVersion(std::string()); | 252 system_info_writer.SetCSDVersion(std::string()); |
264 | 253 |
265 minidump_file_writer.AddStream(&system_info_writer); | 254 minidump_file_writer.AddStream(&system_info_writer); |
266 | 255 |
267 StringFileWriter file_writer; | 256 StringFileWriter file_writer; |
268 ASSERT_TRUE(minidump_file_writer.WriteEverything(&file_writer)); | 257 ASSERT_TRUE(minidump_file_writer.WriteEverything(&file_writer)); |
269 | 258 |
270 const MINIDUMP_SYSTEM_INFO* system_info; | 259 const MINIDUMP_SYSTEM_INFO* system_info; |
271 const MINIDUMP_STRING* csd_version; | 260 const MINIDUMP_STRING* csd_version; |
272 | 261 |
273 GetSystemInfoStream(file_writer.string(), 0, &system_info, &csd_version); | 262 ASSERT_NO_FATAL_FAILURE( |
274 if (Test::HasFatalFailure()) { | 263 GetSystemInfoStream(file_writer.string(), 0, &system_info, &csd_version)); |
275 return; | |
276 } | |
277 | 264 |
278 EXPECT_EQ(kCPUArchitecture, system_info->ProcessorArchitecture); | 265 EXPECT_EQ(kCPUArchitecture, system_info->ProcessorArchitecture); |
279 EXPECT_EQ(0u, system_info->ProcessorLevel); | 266 EXPECT_EQ(0u, system_info->ProcessorLevel); |
280 EXPECT_EQ(kCPUVendor[0], system_info->Cpu.X86CpuInfo.VendorId[0]); | 267 EXPECT_EQ(kCPUVendor[0], system_info->Cpu.X86CpuInfo.VendorId[0]); |
281 EXPECT_EQ(kCPUVendor[1], system_info->Cpu.X86CpuInfo.VendorId[1]); | 268 EXPECT_EQ(kCPUVendor[1], system_info->Cpu.X86CpuInfo.VendorId[1]); |
282 EXPECT_EQ(kCPUVendor[2], system_info->Cpu.X86CpuInfo.VendorId[2]); | 269 EXPECT_EQ(kCPUVendor[2], system_info->Cpu.X86CpuInfo.VendorId[2]); |
283 EXPECT_EQ(0u, system_info->Cpu.X86CpuInfo.VersionInformation); | 270 EXPECT_EQ(0u, system_info->Cpu.X86CpuInfo.VersionInformation); |
284 } | 271 } |
285 | 272 |
286 TEST(MinidumpSystemInfoWriterDeathTest, NoCSDVersion) { | 273 TEST(MinidumpSystemInfoWriterDeathTest, NoCSDVersion) { |
287 MinidumpFileWriter minidump_file_writer; | 274 MinidumpFileWriter minidump_file_writer; |
288 MinidumpSystemInfoWriter system_info_writer; | 275 MinidumpSystemInfoWriter system_info_writer; |
289 minidump_file_writer.AddStream(&system_info_writer); | 276 minidump_file_writer.AddStream(&system_info_writer); |
290 | 277 |
291 StringFileWriter file_writer; | 278 StringFileWriter file_writer; |
292 ASSERT_DEATH(minidump_file_writer.WriteEverything(&file_writer), | 279 ASSERT_DEATH(minidump_file_writer.WriteEverything(&file_writer), |
293 "csd_version_"); | 280 "csd_version_"); |
294 } | 281 } |
295 | 282 |
296 } // namespace | 283 } // namespace |
297 } // namespace test | 284 } // namespace test |
298 } // namespace crashpad | 285 } // namespace crashpad |
OLD | NEW |