Lines Matching refs:Module
52 using google_breakpad::Module;
58 static Module::Function* generate_duplicate_function(StringView name) { in generate_duplicate_function()
59 const Module::Address DUP_ADDRESS = 0xd35402aac7a7ad5cULL; in generate_duplicate_function()
60 const Module::Address DUP_SIZE = 0x200b26e605f99071ULL; in generate_duplicate_function()
61 const Module::Address DUP_PARAMETER_SIZE = 0xf14ac4fed48c4a99ULL; in generate_duplicate_function()
63 Module::Function* function = new Module::Function(name, DUP_ADDRESS); in generate_duplicate_function()
64 Module::Range range(DUP_ADDRESS, DUP_SIZE); in generate_duplicate_function()
76 TEST(Module, WriteHeader) { in TEST() argument
78 Module m(MODULE_NAME, MODULE_OS, MODULE_ARCH, MODULE_ID); in TEST()
85 TEST(Module, WriteHeaderCodeId) { in TEST() argument
87 Module m(MODULE_NAME, MODULE_OS, MODULE_ARCH, MODULE_ID, MODULE_CODE_ID); in TEST()
95 TEST(Module, WriteOneLineFunc) { in TEST() argument
97 Module m(MODULE_NAME, MODULE_OS, MODULE_ARCH, MODULE_ID); in TEST()
99 Module::File* file = m.FindFile("file_name.cc"); in TEST()
100 Module::Function* function = new Module::Function( in TEST()
102 Module::Range range(0xe165bf8023b9d9abULL, 0x1e4bb0eb1cbf5b09ULL); in TEST()
105 Module::Line line = { 0xe165bf8023b9d9abULL, 0x1e4bb0eb1cbf5b09ULL, in TEST()
120 TEST(Module, WriteRelativeLoadAddress) { in TEST() argument
122 Module m(MODULE_NAME, MODULE_OS, MODULE_ARCH, MODULE_ID); in TEST()
125 Module::File* file1 = m.FindFile("filename-b.cc"); in TEST()
126 Module::File* file2 = m.FindFile("filename-a.cc"); in TEST()
129 Module::Function* function = new Module::Function( in TEST()
131 Module::Range range(0xbec774ea5dd935f3ULL, 0x2922088f98d3f6fcULL); in TEST()
136 Module::Line line1 = { 0xbec774ea5dd935f3ULL, 0x1c2be6d6c5af2611ULL, in TEST()
138 Module::Line line2 = { 0xdaf35bc123885c04ULL, 0xcf621b8d324d0ebULL, in TEST()
146 auto entry = std::make_unique<Module::StackFrameEntry>(); in TEST()
178 TEST(Module, WriteOmitUnusedFiles) { in TEST() argument
179 Module m(MODULE_NAME, MODULE_OS, MODULE_ARCH, MODULE_ID); in TEST()
182 Module::File* file1 = m.FindFile("filename1"); in TEST()
184 Module::File* file3 = m.FindFile("filename3"); in TEST()
187 Module::Function* function = new Module::Function( in TEST()
189 Module::Range range(0x9b926d464f0b9384ULL, 0x4f524a4ba795e6a6ULL); in TEST()
194 Module::Line line1 = { 0xab415089485e1a20ULL, 0x126e3124979291f2ULL, in TEST()
196 Module::Line line2 = { 0xb2675b5c3c2ed33fULL, 0x1df77f5551dbd68cULL, in TEST()
203 vector<Module::File*> vec; in TEST()
227 TEST(Module, WriteNoCFI) { in TEST() argument
229 Module m(MODULE_NAME, MODULE_OS, MODULE_ARCH, MODULE_ID); in TEST()
232 Module::File* file1 = m.FindFile("filename.cc"); in TEST()
235 Module::Function* function = new Module::Function( in TEST()
237 Module::Range range(0xbec774ea5dd935f3ULL, 0x2922088f98d3f6fcULL); in TEST()
242 Module::Line line1 = { 0xbec774ea5dd935f3ULL, 0x1c2be6d6c5af2611ULL, in TEST()
249 auto entry = std::make_unique<Module::StackFrameEntry>(); in TEST()
273 TEST(Module, ConstructAddFunction) { in TEST() argument
275 Module m(MODULE_NAME, MODULE_OS, MODULE_ARCH, MODULE_ID); in TEST()
278 Module::Function* function1 = new Module::Function( in TEST()
280 Module::Range r1(0xd35024aa7ca7da5cULL, 0x200b26e605f99071ULL); in TEST()
284 Module::Function* function2 = new Module::Function( in TEST()
286 Module::Range r2(0x2987743d0b35b13fULL, 0xb369db048deb3010ULL); in TEST()
291 vector<Module::Function*> vec; in TEST()
295 for (Module::Function* func: vec) in TEST()
315 TEST(Module, WriteOutOfRangeAddresses) { in TEST() argument
317 Module m(MODULE_NAME, MODULE_OS, MODULE_ARCH, MODULE_ID); in TEST()
321 vector<Module::Range> address_ranges = { in TEST()
322 Module::Range(0x2000ULL, 0x1000ULL), in TEST()
328 auto entry1 = std::make_unique<Module::StackFrameEntry>(); in TEST()
332 auto entry2 = std::make_unique<Module::StackFrameEntry>(); in TEST()
336 auto entry3 = std::make_unique<Module::StackFrameEntry>(); in TEST()
342 Module::File* file = m.FindFile("file_name.cc"); in TEST()
343 Module::Function* function = new Module::Function( in TEST()
345 Module::Range range(0x4000ULL, 0x1000ULL); in TEST()
348 Module::Line line = { 0x4000ULL, 0x100ULL, file, 67519080 }; in TEST()
353 auto extern1 = std::make_unique<Module::Extern>(0x5000ULL); in TEST()
367 TEST(Module, ConstructAddFrames) { in TEST() argument
369 Module m(MODULE_NAME, MODULE_OS, MODULE_ARCH, MODULE_ID); in TEST()
372 auto entry1 = std::make_unique<Module::StackFrameEntry>(); in TEST()
378 auto entry2 = std::make_unique<Module::StackFrameEntry>(); in TEST()
387 auto entry3 = std::make_unique<Module::StackFrameEntry>(); in TEST()
421 vector<Module::StackFrameEntry*> entries; in TEST()
433 Module::RuleMap entry2_initial; in TEST()
442 Module::RuleMap entry3_initial; in TEST()
445 Module::RuleChangeMap entry3_changes; in TEST()
454 TEST(Module, ConstructUniqueFiles) { in TEST() argument
455 Module m(MODULE_NAME, MODULE_OS, MODULE_ARCH, MODULE_ID); in TEST()
456 Module::File* file1 = m.FindFile("foo"); in TEST()
457 Module::File* file2 = m.FindFile(string("bar")); in TEST()
458 Module::File* file3 = m.FindFile(string("foo")); in TEST()
459 Module::File* file4 = m.FindFile("bar"); in TEST()
467 TEST(Module, ConstructDuplicateFunctions) { in TEST() argument
469 Module m(MODULE_NAME, MODULE_OS, MODULE_ARCH, MODULE_ID); in TEST()
472 Module::Function* function1 = generate_duplicate_function("_without_form"); in TEST()
473 Module::Function* function2 = generate_duplicate_function("_without_form"); in TEST()
489 TEST(Module, ConstructFunctionsWithSameAddress) { in TEST() argument
491 Module m(MODULE_NAME, MODULE_OS, MODULE_ARCH, MODULE_ID); in TEST()
494 Module::Function* function1 = generate_duplicate_function("_without_form"); in TEST()
495 Module::Function* function2 = generate_duplicate_function("_and_void"); in TEST()
515 TEST(Module, ConstructFunctionsWithSameAddressMultiple) { in TEST() argument
517 Module m(MODULE_NAME, MODULE_OS, MODULE_ARCH, MODULE_ID, "", true); in TEST()
520 Module::Function* function1 = generate_duplicate_function("_without_form"); in TEST()
521 Module::Function* function2 = generate_duplicate_function("_and_void"); in TEST()
540 TEST(Module, ConstructExterns) { in TEST() argument
542 Module m(MODULE_NAME, MODULE_OS, MODULE_ARCH, MODULE_ID); in TEST()
545 auto extern1 = std::make_unique<Module::Extern>(0xffff); in TEST()
547 auto extern2 = std::make_unique<Module::Extern>(0xaaaa); in TEST()
565 TEST(Module, ConstructDuplicateExterns) { in TEST() argument
567 Module m(MODULE_NAME, MODULE_OS, MODULE_ARCH, MODULE_ID); in TEST()
570 auto extern1 = std::make_unique<Module::Extern>(0xffff); in TEST()
572 auto extern2 = std::make_unique<Module::Extern>(0xffff); in TEST()
588 TEST(Module, ConstructDuplicateExternsMultiple) { in TEST() argument
590 Module m(MODULE_NAME, MODULE_OS, MODULE_ARCH, MODULE_ID, "", true); in TEST()
593 auto extern1 = std::make_unique<Module::Extern>(0xffff); in TEST()
595 auto extern2 = std::make_unique<Module::Extern>(0xffff); in TEST()
612 TEST(Module, ConstructFunctionsAndExternsWithSameAddress) { in TEST() argument
614 Module m(MODULE_NAME, MODULE_OS, MODULE_ARCH, MODULE_ID); in TEST()
617 auto extern1 = std::make_unique<Module::Extern>(0xabc0); in TEST()
619 auto extern2 = std::make_unique<Module::Extern>(0xfff0); in TEST()
625 Module::Function* function = new Module::Function("_xyz", 0xfff0); in TEST()
626 Module::Range range(0xfff0, 0x10); in TEST()
643 TEST(Module, ConstructFunctionsAndExternsWithSameAddressPreferExternName) { in TEST() argument
645 Module m(MODULE_NAME, MODULE_OS, MODULE_ARCH, MODULE_ID, "", false, true); in TEST()
648 auto extern1 = std::make_unique<Module::Extern>(0xabc0); in TEST()
650 auto extern2 = std::make_unique<Module::Extern>(0xfff0); in TEST()
656 Module::Function* function = new Module::Function("function2", 0xfff0); in TEST()
657 Module::Range range(0xfff0, 0x10); in TEST()
674 TEST(Module, ConstructFunctionsAndExternsWithSameAddressMultiple) { in TEST() argument
676 Module m(MODULE_NAME, MODULE_OS, MODULE_ARCH, MODULE_ID, "", true); in TEST()
679 auto extern1 = std::make_unique<Module::Extern>(0xabc0); in TEST()
681 auto extern2 = std::make_unique<Module::Extern>(0xfff0); in TEST()
687 Module::Function* function = new Module::Function("_xyz", 0xfff0); in TEST()
688 Module::Range range(0xfff0, 0x10); in TEST()
706 TEST(Module, ConstructFunctionsAndThumbExternsWithSameAddress) { in TEST() argument
708 Module m(MODULE_NAME, MODULE_OS, "arm", MODULE_ID); in TEST()
711 auto thumb_extern1 = std::make_unique<Module::Extern>(0xabc1); in TEST()
713 auto thumb_extern2 = std::make_unique<Module::Extern>(0xfff1); in TEST()
716 auto arm_extern1 = std::make_unique<Module::Extern>(0xcc00); in TEST()
725 Module::Function* function = new Module::Function("_thumb_xyz", 0xfff0); in TEST()
726 Module::Range range(0xfff0, 0x10); in TEST()