| 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 |