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 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
72 file_writer.string().size()); | 72 file_writer.string().size()); |
73 | 73 |
74 const MinidumpModuleCrashpadInfoList* module_list = | 74 const MinidumpModuleCrashpadInfoList* module_list = |
75 MinidumpModuleCrashpadInfoListAtStart(file_writer.string(), 1); | 75 MinidumpModuleCrashpadInfoListAtStart(file_writer.string(), 1); |
76 ASSERT_TRUE(module_list); | 76 ASSERT_TRUE(module_list); |
77 | 77 |
78 ASSERT_EQ(1u, module_list->count); | 78 ASSERT_EQ(1u, module_list->count); |
79 | 79 |
80 const MinidumpModuleCrashpadInfo* module = | 80 const MinidumpModuleCrashpadInfo* module = |
81 MinidumpWritableAtLocationDescriptor<MinidumpModuleCrashpadInfo>( | 81 MinidumpWritableAtLocationDescriptor<MinidumpModuleCrashpadInfo>( |
82 file_writer.string(), module_list->modules[0]); | 82 file_writer.string(), module_list->children[0]); |
83 ASSERT_TRUE(module); | 83 ASSERT_TRUE(module); |
84 | 84 |
85 EXPECT_EQ(MinidumpModuleCrashpadInfo::kVersion, module->version); | 85 EXPECT_EQ(MinidumpModuleCrashpadInfo::kVersion, module->version); |
86 EXPECT_EQ(0u, module->minidump_module_list_index); | 86 EXPECT_EQ(0u, module->minidump_module_list_index); |
87 EXPECT_EQ(0u, module->simple_annotations.DataSize); | 87 EXPECT_EQ(0u, module->simple_annotations.DataSize); |
88 EXPECT_EQ(0u, module->simple_annotations.Rva); | 88 EXPECT_EQ(0u, module->simple_annotations.Rva); |
89 } | 89 } |
90 | 90 |
91 TEST(MinidumpModuleCrashpadInfoWriter, FullModule) { | 91 TEST(MinidumpModuleCrashpadInfoWriter, FullModule) { |
92 const uint32_t kMinidumpModuleListIndex = 1; | 92 const uint32_t kMinidumpModuleListIndex = 1; |
(...skipping 29 matching lines...) Expand all Loading... |
122 file_writer.string().size()); | 122 file_writer.string().size()); |
123 | 123 |
124 const MinidumpModuleCrashpadInfoList* module_list = | 124 const MinidumpModuleCrashpadInfoList* module_list = |
125 MinidumpModuleCrashpadInfoListAtStart(file_writer.string(), 1); | 125 MinidumpModuleCrashpadInfoListAtStart(file_writer.string(), 1); |
126 ASSERT_TRUE(module_list); | 126 ASSERT_TRUE(module_list); |
127 | 127 |
128 ASSERT_EQ(1u, module_list->count); | 128 ASSERT_EQ(1u, module_list->count); |
129 | 129 |
130 const MinidumpModuleCrashpadInfo* module = | 130 const MinidumpModuleCrashpadInfo* module = |
131 MinidumpWritableAtLocationDescriptor<MinidumpModuleCrashpadInfo>( | 131 MinidumpWritableAtLocationDescriptor<MinidumpModuleCrashpadInfo>( |
132 file_writer.string(), module_list->modules[0]); | 132 file_writer.string(), module_list->children[0]); |
133 ASSERT_TRUE(module); | 133 ASSERT_TRUE(module); |
134 | 134 |
135 EXPECT_EQ(MinidumpModuleCrashpadInfo::kVersion, module->version); | 135 EXPECT_EQ(MinidumpModuleCrashpadInfo::kVersion, module->version); |
136 EXPECT_EQ(kMinidumpModuleListIndex, module->minidump_module_list_index); | 136 EXPECT_EQ(kMinidumpModuleListIndex, module->minidump_module_list_index); |
137 EXPECT_NE(0u, module->simple_annotations.DataSize); | 137 EXPECT_NE(0u, module->simple_annotations.DataSize); |
138 EXPECT_NE(0u, module->simple_annotations.Rva); | 138 EXPECT_NE(0u, module->simple_annotations.Rva); |
139 | 139 |
140 const MinidumpSimpleStringDictionary* simple_annotations = | 140 const MinidumpSimpleStringDictionary* simple_annotations = |
141 MinidumpWritableAtLocationDescriptor<MinidumpSimpleStringDictionary>( | 141 MinidumpWritableAtLocationDescriptor<MinidumpSimpleStringDictionary>( |
142 file_writer.string(), module->simple_annotations); | 142 file_writer.string(), module->simple_annotations); |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
210 EXPECT_TRUE(module_list_writer.WriteEverything(&file_writer)); | 210 EXPECT_TRUE(module_list_writer.WriteEverything(&file_writer)); |
211 | 211 |
212 const MinidumpModuleCrashpadInfoList* module_list = | 212 const MinidumpModuleCrashpadInfoList* module_list = |
213 MinidumpModuleCrashpadInfoListAtStart(file_writer.string(), 3); | 213 MinidumpModuleCrashpadInfoListAtStart(file_writer.string(), 3); |
214 ASSERT_TRUE(module_list); | 214 ASSERT_TRUE(module_list); |
215 | 215 |
216 ASSERT_EQ(3u, module_list->count); | 216 ASSERT_EQ(3u, module_list->count); |
217 | 217 |
218 const MinidumpModuleCrashpadInfo* module_0 = | 218 const MinidumpModuleCrashpadInfo* module_0 = |
219 MinidumpWritableAtLocationDescriptor<MinidumpModuleCrashpadInfo>( | 219 MinidumpWritableAtLocationDescriptor<MinidumpModuleCrashpadInfo>( |
220 file_writer.string(), module_list->modules[0]); | 220 file_writer.string(), module_list->children[0]); |
221 ASSERT_TRUE(module_0); | 221 ASSERT_TRUE(module_0); |
222 | 222 |
223 EXPECT_EQ(MinidumpModuleCrashpadInfo::kVersion, module_0->version); | 223 EXPECT_EQ(MinidumpModuleCrashpadInfo::kVersion, module_0->version); |
224 EXPECT_EQ(kMinidumpModuleListIndex0, module_0->minidump_module_list_index); | 224 EXPECT_EQ(kMinidumpModuleListIndex0, module_0->minidump_module_list_index); |
225 | 225 |
226 const MinidumpSimpleStringDictionary* simple_annotations_0 = | 226 const MinidumpSimpleStringDictionary* simple_annotations_0 = |
227 MinidumpWritableAtLocationDescriptor<MinidumpSimpleStringDictionary>( | 227 MinidumpWritableAtLocationDescriptor<MinidumpSimpleStringDictionary>( |
228 file_writer.string(), module_0->simple_annotations); | 228 file_writer.string(), module_0->simple_annotations); |
229 ASSERT_TRUE(simple_annotations_0); | 229 ASSERT_TRUE(simple_annotations_0); |
230 | 230 |
231 ASSERT_EQ(1u, simple_annotations_0->count); | 231 ASSERT_EQ(1u, simple_annotations_0->count); |
232 EXPECT_EQ(kKey0, | 232 EXPECT_EQ(kKey0, |
233 MinidumpUTF8StringAtRVAAsString( | 233 MinidumpUTF8StringAtRVAAsString( |
234 file_writer.string(), simple_annotations_0->entries[0].key)); | 234 file_writer.string(), simple_annotations_0->entries[0].key)); |
235 EXPECT_EQ(kValue0, | 235 EXPECT_EQ(kValue0, |
236 MinidumpUTF8StringAtRVAAsString( | 236 MinidumpUTF8StringAtRVAAsString( |
237 file_writer.string(), simple_annotations_0->entries[0].value)); | 237 file_writer.string(), simple_annotations_0->entries[0].value)); |
238 | 238 |
239 const MinidumpModuleCrashpadInfo* module_1 = | 239 const MinidumpModuleCrashpadInfo* module_1 = |
240 MinidumpWritableAtLocationDescriptor<MinidumpModuleCrashpadInfo>( | 240 MinidumpWritableAtLocationDescriptor<MinidumpModuleCrashpadInfo>( |
241 file_writer.string(), module_list->modules[1]); | 241 file_writer.string(), module_list->children[1]); |
242 ASSERT_TRUE(module_1); | 242 ASSERT_TRUE(module_1); |
243 | 243 |
244 EXPECT_EQ(MinidumpModuleCrashpadInfo::kVersion, module_1->version); | 244 EXPECT_EQ(MinidumpModuleCrashpadInfo::kVersion, module_1->version); |
245 EXPECT_EQ(kMinidumpModuleListIndex1, module_1->minidump_module_list_index); | 245 EXPECT_EQ(kMinidumpModuleListIndex1, module_1->minidump_module_list_index); |
246 | 246 |
247 const MinidumpSimpleStringDictionary* simple_annotations_1 = | 247 const MinidumpSimpleStringDictionary* simple_annotations_1 = |
248 MinidumpWritableAtLocationDescriptor<MinidumpSimpleStringDictionary>( | 248 MinidumpWritableAtLocationDescriptor<MinidumpSimpleStringDictionary>( |
249 file_writer.string(), module_1->simple_annotations); | 249 file_writer.string(), module_1->simple_annotations); |
250 EXPECT_FALSE(simple_annotations_1); | 250 EXPECT_FALSE(simple_annotations_1); |
251 | 251 |
252 const MinidumpModuleCrashpadInfo* module_2 = | 252 const MinidumpModuleCrashpadInfo* module_2 = |
253 MinidumpWritableAtLocationDescriptor<MinidumpModuleCrashpadInfo>( | 253 MinidumpWritableAtLocationDescriptor<MinidumpModuleCrashpadInfo>( |
254 file_writer.string(), module_list->modules[2]); | 254 file_writer.string(), module_list->children[2]); |
255 ASSERT_TRUE(module_2); | 255 ASSERT_TRUE(module_2); |
256 | 256 |
257 EXPECT_EQ(MinidumpModuleCrashpadInfo::kVersion, module_2->version); | 257 EXPECT_EQ(MinidumpModuleCrashpadInfo::kVersion, module_2->version); |
258 EXPECT_EQ(kMinidumpModuleListIndex2, module_2->minidump_module_list_index); | 258 EXPECT_EQ(kMinidumpModuleListIndex2, module_2->minidump_module_list_index); |
259 | 259 |
260 const MinidumpSimpleStringDictionary* simple_annotations_2 = | 260 const MinidumpSimpleStringDictionary* simple_annotations_2 = |
261 MinidumpWritableAtLocationDescriptor<MinidumpSimpleStringDictionary>( | 261 MinidumpWritableAtLocationDescriptor<MinidumpSimpleStringDictionary>( |
262 file_writer.string(), module_2->simple_annotations); | 262 file_writer.string(), module_2->simple_annotations); |
263 ASSERT_TRUE(simple_annotations_2); | 263 ASSERT_TRUE(simple_annotations_2); |
264 | 264 |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
312 ASSERT_TRUE(module_list_writer.WriteEverything(&file_writer)); | 312 ASSERT_TRUE(module_list_writer.WriteEverything(&file_writer)); |
313 | 313 |
314 const MinidumpModuleCrashpadInfoList* module_list = | 314 const MinidumpModuleCrashpadInfoList* module_list = |
315 MinidumpModuleCrashpadInfoListAtStart(file_writer.string(), 2); | 315 MinidumpModuleCrashpadInfoListAtStart(file_writer.string(), 2); |
316 ASSERT_TRUE(module_list); | 316 ASSERT_TRUE(module_list); |
317 | 317 |
318 ASSERT_EQ(2u, module_list->count); | 318 ASSERT_EQ(2u, module_list->count); |
319 | 319 |
320 const MinidumpModuleCrashpadInfo* module_0 = | 320 const MinidumpModuleCrashpadInfo* module_0 = |
321 MinidumpWritableAtLocationDescriptor<MinidumpModuleCrashpadInfo>( | 321 MinidumpWritableAtLocationDescriptor<MinidumpModuleCrashpadInfo>( |
322 file_writer.string(), module_list->modules[0]); | 322 file_writer.string(), module_list->children[0]); |
323 ASSERT_TRUE(module_0); | 323 ASSERT_TRUE(module_0); |
324 | 324 |
325 EXPECT_EQ(MinidumpModuleCrashpadInfo::kVersion, module_0->version); | 325 EXPECT_EQ(MinidumpModuleCrashpadInfo::kVersion, module_0->version); |
326 EXPECT_EQ(0u, module_0->minidump_module_list_index); | 326 EXPECT_EQ(0u, module_0->minidump_module_list_index); |
327 | 327 |
328 const MinidumpSimpleStringDictionary* simple_annotations_0 = | 328 const MinidumpSimpleStringDictionary* simple_annotations_0 = |
329 MinidumpWritableAtLocationDescriptor<MinidumpSimpleStringDictionary>( | 329 MinidumpWritableAtLocationDescriptor<MinidumpSimpleStringDictionary>( |
330 file_writer.string(), module_0->simple_annotations); | 330 file_writer.string(), module_0->simple_annotations); |
331 ASSERT_TRUE(simple_annotations_0); | 331 ASSERT_TRUE(simple_annotations_0); |
332 | 332 |
333 ASSERT_EQ(annotations_simple_map_0.size(), simple_annotations_0->count); | 333 ASSERT_EQ(annotations_simple_map_0.size(), simple_annotations_0->count); |
334 EXPECT_EQ(kKey0B, | 334 EXPECT_EQ(kKey0B, |
335 MinidumpUTF8StringAtRVAAsString( | 335 MinidumpUTF8StringAtRVAAsString( |
336 file_writer.string(), simple_annotations_0->entries[0].key)); | 336 file_writer.string(), simple_annotations_0->entries[0].key)); |
337 EXPECT_EQ(kValue0B, | 337 EXPECT_EQ(kValue0B, |
338 MinidumpUTF8StringAtRVAAsString( | 338 MinidumpUTF8StringAtRVAAsString( |
339 file_writer.string(), simple_annotations_0->entries[0].value)); | 339 file_writer.string(), simple_annotations_0->entries[0].value)); |
340 EXPECT_EQ(kKey0A, | 340 EXPECT_EQ(kKey0A, |
341 MinidumpUTF8StringAtRVAAsString( | 341 MinidumpUTF8StringAtRVAAsString( |
342 file_writer.string(), simple_annotations_0->entries[1].key)); | 342 file_writer.string(), simple_annotations_0->entries[1].key)); |
343 EXPECT_EQ(kValue0A, | 343 EXPECT_EQ(kValue0A, |
344 MinidumpUTF8StringAtRVAAsString( | 344 MinidumpUTF8StringAtRVAAsString( |
345 file_writer.string(), simple_annotations_0->entries[1].value)); | 345 file_writer.string(), simple_annotations_0->entries[1].value)); |
346 | 346 |
347 const MinidumpModuleCrashpadInfo* module_2 = | 347 const MinidumpModuleCrashpadInfo* module_2 = |
348 MinidumpWritableAtLocationDescriptor<MinidumpModuleCrashpadInfo>( | 348 MinidumpWritableAtLocationDescriptor<MinidumpModuleCrashpadInfo>( |
349 file_writer.string(), module_list->modules[1]); | 349 file_writer.string(), module_list->children[1]); |
350 ASSERT_TRUE(module_2); | 350 ASSERT_TRUE(module_2); |
351 | 351 |
352 EXPECT_EQ(MinidumpModuleCrashpadInfo::kVersion, module_2->version); | 352 EXPECT_EQ(MinidumpModuleCrashpadInfo::kVersion, module_2->version); |
353 EXPECT_EQ(2u, module_2->minidump_module_list_index); | 353 EXPECT_EQ(2u, module_2->minidump_module_list_index); |
354 | 354 |
355 const MinidumpSimpleStringDictionary* simple_annotations_2 = | 355 const MinidumpSimpleStringDictionary* simple_annotations_2 = |
356 MinidumpWritableAtLocationDescriptor<MinidumpSimpleStringDictionary>( | 356 MinidumpWritableAtLocationDescriptor<MinidumpSimpleStringDictionary>( |
357 file_writer.string(), module_2->simple_annotations); | 357 file_writer.string(), module_2->simple_annotations); |
358 ASSERT_TRUE(simple_annotations_2); | 358 ASSERT_TRUE(simple_annotations_2); |
359 | 359 |
360 ASSERT_EQ(annotations_simple_map_2.size(), simple_annotations_2->count); | 360 ASSERT_EQ(annotations_simple_map_2.size(), simple_annotations_2->count); |
361 EXPECT_EQ(kKey2, | 361 EXPECT_EQ(kKey2, |
362 MinidumpUTF8StringAtRVAAsString( | 362 MinidumpUTF8StringAtRVAAsString( |
363 file_writer.string(), simple_annotations_2->entries[0].key)); | 363 file_writer.string(), simple_annotations_2->entries[0].key)); |
364 EXPECT_EQ(kValue2, | 364 EXPECT_EQ(kValue2, |
365 MinidumpUTF8StringAtRVAAsString( | 365 MinidumpUTF8StringAtRVAAsString( |
366 file_writer.string(), simple_annotations_2->entries[0].value)); | 366 file_writer.string(), simple_annotations_2->entries[0].value)); |
367 } | 367 } |
368 | 368 |
369 } // namespace | 369 } // namespace |
370 } // namespace test | 370 } // namespace test |
371 } // namespace crashpad | 371 } // namespace crashpad |
OLD | NEW |