def testIgnoresMalformedLine(self):
     # This line is too short.
     line = ('00c1b228      F .text  00000060 _ZN20trace_event')
     symbol_info = symbol_extractor._FromObjdumpLine(line)
     self.assertIsNone(symbol_info)
     # This line has the wrong marker.
     line = '00c1b228 l     f .text  00000060 _ZN20trace_event'
     symbol_info = symbol_extractor._FromObjdumpLine(line)
     self.assertIsNone(symbol_info)
 def testIgnoresMalformedLine(self):
   # This line is too short.
   line = ('00c1b228      F .text  00000060 _ZN20trace_event')
   symbol_info = symbol_extractor._FromObjdumpLine(line)
   self.assertIsNone(symbol_info)
   # This line has the wrong marker.
   line = '00c1b228 l     f .text  00000060 _ZN20trace_event'
   symbol_info = symbol_extractor._FromObjdumpLine(line)
   self.assertIsNone(symbol_info)
 def testStartOfText(self):
     line = ('00918000 l       .text\t00000000' + SPACES +
             '.hidden linker_script_start_of_text')
     symbol_info = symbol_extractor._FromObjdumpLine(line)
     self.assertIsNotNone(symbol_info)
     self.assertEquals(0x00918000, symbol_info.offset)
     self.assertEquals('linker_script_start_of_text', symbol_info.name)
 def testSymbolTypeObject(self):
     # Builds with ThinLTO produce symbols of type 'O'.
     line = ('009faf60 l     O .text\t00000500' + SPACES + 'AES_Td')
     symbol_info = symbol_extractor._FromObjdumpLine(line)
     self.assertIsNotNone(symbol_info)
     self.assertEquals(0x009faf60, symbol_info.offset)
     self.assertEquals('.text', symbol_info.section)
     self.assertEquals(0x500, symbol_info.size)
     self.assertEquals('AES_Td', symbol_info.name)
Example #5
0
 def testNeitherLocalNorGlobalSymbol(self):
     # This happens, see crbug.com/992884.
     # Symbol which is neither local nor global.
     line = '0287ae50  w    F .text\t000001e8              log2l'
     symbol_info = symbol_extractor._FromObjdumpLine(line)
     self.assertIsNotNone(symbol_info)
     self.assertEquals(0x287ae50, symbol_info.offset)
     self.assertEquals(0x1e8, symbol_info.size)
     self.assertEquals('log2l', symbol_info.name)
     self.assertEquals('.text', symbol_info.section)
 def testOutlinedFunction(self):
     # Test that an outlined function is reported normally. Also note that
     # outlined functions are in 64 bit builds which have longer addresses.
     line = ('00000000020fab4c l     F .text\t0000000000000014' + SPACES +
             'OUTLINED_FUNCTION_4')
     symbol_info = symbol_extractor._FromObjdumpLine(line)
     self.assertIsNotNone(symbol_info)
     self.assertEquals(0x20fab4c, symbol_info.offset)
     self.assertEquals(0x14, symbol_info.size)
     self.assertEquals('OUTLINED_FUNCTION_4', symbol_info.name)
     self.assertEquals('.text', symbol_info.section)
 def testDollarInSymbolName(self):
     # A $ character elsewhere in the symbol name is fine.
     # This is an example of a lambda function name from Clang.
     line = ('00c1b228 l     F .text\t00000060' + SPACES +
             '_ZZL11get_globalsvENK3$_1clEv')
     symbol_info = symbol_extractor._FromObjdumpLine(line)
     self.assertIsNotNone(symbol_info)
     self.assertEquals(0xc1b228, symbol_info.offset)
     self.assertEquals(0x60, symbol_info.size)
     self.assertEquals('_ZZL11get_globalsvENK3$_1clEv', symbol_info.name)
     self.assertEquals('.text', symbol_info.section)
 def testHiddenSymbol(self):
     line = ('00c1c05c l     F .text  0000002c '
             '.hidden _GLOBAL__sub_I_chrome_main_delegate.cc')
     test_name = '_GLOBAL__sub_I_chrome_main_delegate.cc'
     test_offset = 0x00c1c05c
     test_size = 0x2c
     test_section = '.text'
     symbol_info = symbol_extractor._FromObjdumpLine(line)
     self.assertIsNotNone(symbol_info)
     self.assertEquals(test_offset, symbol_info.offset)
     self.assertEquals(test_size, symbol_info.size)
     self.assertEquals(test_name, symbol_info.name)
     self.assertEquals(test_section, symbol_info.section)
 def testHiddenSymbol(self):
   line = ('00c1c05c l     F .text  0000002c '
           '.hidden _GLOBAL__sub_I_chrome_main_delegate.cc')
   test_name = '_GLOBAL__sub_I_chrome_main_delegate.cc'
   test_offset = 0x00c1c05c
   test_size = 0x2c
   test_section = '.text'
   symbol_info = symbol_extractor._FromObjdumpLine(line)
   self.assertIsNotNone(symbol_info)
   self.assertEquals(test_offset, symbol_info.offset)
   self.assertEquals(test_size, symbol_info.size)
   self.assertEquals(test_name, symbol_info.name)
   self.assertEquals(test_section, symbol_info.section)
 def testIgnoresBlankLine(self):
     symbol_info = symbol_extractor._FromObjdumpLine('')
     self.assertIsNone(symbol_info)
 def testSymbolFromLocalLabel(self):
     line = ('00f64b80 l       .text\t00000000' + SPACES + 'Builtins_Abort')
     symbol_info = symbol_extractor._FromObjdumpLine(line)
     self.assertIsNone(symbol_info)
 def testIgnoresMalformedLine(self):
     # This line is too short: only 6 flags.
     line = ('00c1b228      F .text\t00000060' + SPACES +
             '_ZN20trace_event')
     symbol_info = symbol_extractor._FromObjdumpLine(line)
     self.assertIsNone(symbol_info)
 def testIgnoresBlankLine(self):
   symbol_info = symbol_extractor._FromObjdumpLine('')
   self.assertIsNone(symbol_info)