diff options
author | Sterling Augustine <saugustine@google.com> | 2020-06-30 13:59:15 -0700 |
---|---|---|
committer | Sterling Augustine <saugustine@google.com> | 2020-07-14 00:46:58 +0000 |
commit | a7410275336a40323bac607a3aac97cc2a1fc491 (patch) | |
tree | bb6735781d669611b130e9fe59dbfa9974e548d4 /src/common/dwarf_cu_to_module_unittest.cc | |
parent | Move GetSectionByName out of CompilationUnit. (diff) | |
download | breakpad-a7410275336a40323bac607a3aac97cc2a1fc491.tar.xz |
Add support for dwarf5 line tables.
Change-Id: I2c0cd0e7163502e52fbf0745b611befb2e219071
Reviewed-on: https://chromium-review.googlesource.com/c/breakpad/breakpad/+/2276193
Reviewed-by: Sterling Augustine <saugustine@google.com>
Diffstat (limited to 'src/common/dwarf_cu_to_module_unittest.cc')
-rw-r--r-- | src/common/dwarf_cu_to_module_unittest.cc | 24 |
1 files changed, 16 insertions, 8 deletions
diff --git a/src/common/dwarf_cu_to_module_unittest.cc b/src/common/dwarf_cu_to_module_unittest.cc index ed1d7c9b..1b7e2bf5 100644 --- a/src/common/dwarf_cu_to_module_unittest.cc +++ b/src/common/dwarf_cu_to_module_unittest.cc @@ -67,8 +67,12 @@ using ::testing::ValuesIn; class MockLineToModuleHandler: public DwarfCUToModule::LineToModuleHandler { public: MOCK_METHOD1(StartCompilationUnit, void(const string& compilation_dir)); - MOCK_METHOD4(ReadProgram, void(const uint8_t *program, uint64_t length, - Module *module, vector<Module::Line> *lines)); + MOCK_METHOD8(ReadProgram, void(const uint8_t* program, uint64_t length, + const uint8_t* string_section, + uint64_t string_section_length, + const uint8_t* line_string_section, + uint64_t line_string_section_length, + Module* module, vector<Module::Line>* lines)); }; class MockWarningReporter: public DwarfCUToModule::WarningReporter { @@ -113,8 +117,12 @@ class CUFixtureBase { public: explicit AppendLinesFunctor( const vector<Module::Line> *lines) : lines_(lines) { } - void operator()(const uint8_t *program, uint64_t length, - Module *module, vector<Module::Line> *lines) { + void operator()(const uint8_t* program, uint64_t length, + const uint8_t* string_section, + uint64_t string_section_length, + const uint8_t* line_string_section, + uint64_t line_string_section_length, + Module *module, vector<Module::Line>* lines) { lines->insert(lines->end(), lines_->begin(), lines_->end()); } private: @@ -147,7 +155,7 @@ class CUFixtureBase { // By default, expect the line program reader not to be invoked. We // may override this in StartCU. EXPECT_CALL(line_reader_, StartCompilationUnit(_)).Times(0); - EXPECT_CALL(line_reader_, ReadProgram(_,_,_,_)).Times(0); + EXPECT_CALL(line_reader_, ReadProgram(_,_,_,_,_,_,_,_)).Times(0); // The handler will consult this section map to decide what to // pass to our line reader. @@ -332,10 +340,10 @@ void CUFixtureBase::StartCU() { if (!lines_.empty()) EXPECT_CALL(line_reader_, ReadProgram(&dummy_line_program_[0], dummy_line_size_, + _,_,_,_, &module_, _)) .Times(AtMost(1)) .WillOnce(DoAll(Invoke(appender_), Return())); - ASSERT_TRUE(root_handler_ .StartCompilationUnit(0x51182ec307610b51ULL, 0x81, 0x44, 0x4241b4f33720dd5cULL, 3)); @@ -1509,7 +1517,7 @@ TEST_F(Specifications, InterCU) { DwarfCUToModule::FileContext fc("dwarf-filename", &m, true); EXPECT_CALL(reporter_, UncoveredFunction(_)).WillOnce(Return()); MockLineToModuleHandler lr; - EXPECT_CALL(lr, ReadProgram(_,_,_,_)).Times(0); + EXPECT_CALL(lr, ReadProgram(_,_,_,_,_,_,_,_)).Times(0); // Kludge: satisfy reporter_'s expectation. reporter_.SetCUName("compilation-unit-name"); @@ -1568,7 +1576,7 @@ TEST_F(Specifications, UnhandledInterCU) { DwarfCUToModule::FileContext fc("dwarf-filename", &m, false); EXPECT_CALL(reporter_, UncoveredFunction(_)).WillOnce(Return()); MockLineToModuleHandler lr; - EXPECT_CALL(lr, ReadProgram(_,_,_,_)).Times(0); + EXPECT_CALL(lr, ReadProgram(_,_,_,_,_,_,_,_)).Times(0); // Kludge: satisfy reporter_'s expectation. reporter_.SetCUName("compilation-unit-name"); |