Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(50)

Side by Side Diff: minidump/minidump_module_crashpad_info_writer_test.cc

Issue 707543002: MinidumpLocationDescriptorListWriter (Closed) Base URL: https://chromium.googlesource.com/crashpad/crashpad@master
Patch Set: Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698