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

Unified Diff: tools/cygprofile/patch_orderfile_unittest.py

Issue 886563002: Switch from nm to objdump for the cygprofile tools. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address comments. Created 5 years, 11 months 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 side-by-side diff with in-line comments
Download patch
Index: tools/cygprofile/patch_orderfile_unittest.py
diff --git a/tools/cygprofile/patch_orderfile_unittest.py b/tools/cygprofile/patch_orderfile_unittest.py
index 207ff57c37942ef3b464fc5594054182c7079ca4..5d6c1d28c2af2cb9e4e266b0756e69f3513de911 100755
--- a/tools/cygprofile/patch_orderfile_unittest.py
+++ b/tools/cygprofile/patch_orderfile_unittest.py
@@ -3,9 +3,11 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-import patch_orderfile
import unittest
+import patch_orderfile
+import symbol_extractor
+
class TestPatchOrderFile(unittest.TestCase):
def testRemoveClone(self):
@@ -15,78 +17,46 @@ class TestPatchOrderFile(unittest.TestCase):
self.assertEquals(
"this.does.contain", patch_orderfile._RemoveClone(with_clone))
- def testGetSymbolInfosFromStreamWithSize(self):
- lines = [
- "00210d59 00000002 t _ZN34BrowserPluginHostMsg_Attach_ParamsD2Ev"]
- test_name = "_ZN34BrowserPluginHostMsg_Attach_ParamsD2Ev"
- test_offset = 0x210d59
+ def testAliasClonedSymbols(self):
+ symbol_infos = [
+ symbol_extractor.SymbolInfo(name='aSymbol', offset=0x42, size=0x12,
+ section='.text'),
+ symbol_extractor.SymbolInfo(name='aSymbol.clone.', offset=8, size=1,
+ section='.text')]
(offset_to_symbol_infos, name_to_symbol_infos) = \
- patch_orderfile._GetSymbolInfosFromStream(lines)
- self.assertEquals(len(offset_to_symbol_infos), 1)
+ patch_orderfile._GroupSymbolInfos(symbol_infos)
+ self.assertEquals(len(offset_to_symbol_infos), 2)
+ for i in range(2):
+ s = symbol_infos[i]
+ matching = offset_to_symbol_infos[s.offset][0]
+ self.assertEquals(matching.offset, s.offset)
+ self.assertEquals(matching.size, s.size)
self.assertEquals(len(name_to_symbol_infos), 1)
- self.assertIn(test_name, name_to_symbol_infos)
- self.assertIn(test_offset, offset_to_symbol_infos)
+ self.assertEquals(len(name_to_symbol_infos['aSymbol']), 2)
- self.assertEquals(len(name_to_symbol_infos[test_name]), 1)
- s = name_to_symbol_infos[test_name][0]
- self.assertEquals(test_offset, s.offset)
- self.assertEquals(2, s.size)
- self.assertEquals(test_name, s.name)
-
- self.assertEquals(len(offset_to_symbol_infos[test_offset]), 1)
- s = offset_to_symbol_infos[test_offset][0]
- self.assertEquals(test_offset, s.offset)
- self.assertEquals(2, s.size)
- self.assertEquals(test_name, s.name)
-
- def testGetSymbolInfosFromStreamWithoutSize(self):
- lines = [
- "0070ee8c T WebRtcSpl_ComplexBitReverse"]
- test_name = "WebRtcSpl_ComplexBitReverse"
- test_offset = 0x70ee8c
- (offset_to_symbol_infos, name_to_symbol_infos) = \
- patch_orderfile._GetSymbolInfosFromStream(lines)
+ def testGroupSymbolsByOffset(self):
+ symbol_infos = (
+ symbol_extractor.SymbolInfo(name='aSymbol', offset=0x42, size=0x12,
+ section='.text'),
+ symbol_extractor.SymbolInfo(name='anotherSymbol', offset=0x42, size=1,
+ section='.text'))
+ (offset_to_symbol_infos, _) = \
+ patch_orderfile._GroupSymbolInfos(symbol_infos)
self.assertEquals(len(offset_to_symbol_infos), 1)
- self.assertEquals(len(name_to_symbol_infos), 1)
- self.assertIn(test_name, name_to_symbol_infos)
- self.assertIn(test_offset, offset_to_symbol_infos)
-
- self.assertEquals(len(name_to_symbol_infos[test_name]), 1)
- s = name_to_symbol_infos[test_name][0]
- self.assertEquals(test_offset, s.offset)
- self.assertEquals(-1, s.size)
- self.assertEquals(test_name, s.name)
-
- self.assertEquals(len(offset_to_symbol_infos[test_offset]), 1)
- s = offset_to_symbol_infos[test_offset][0]
- self.assertEquals(test_offset, s.offset)
- self.assertEquals(-1, s.size)
- self.assertEquals(test_name, s.name)
-
- def testGetSymbolsFromStream(self):
- lines = [".text.startup.",
- ".text.with.a.prefix",
- "",
- "_ZN2v88internal33HEnvironmentLivenessAnalysisPhase3RunEv",
- ".text",
- ".text.*"]
- names = patch_orderfile._GetSymbolsFromStream(lines)
- self.assertEquals(len(names), 2)
- self.assertEquals(
- names[0], "with.a.prefix")
- self.assertEquals(
- names[1], "_ZN2v88internal33HEnvironmentLivenessAnalysisPhase3RunEv")
-
+ self.assertEquals(tuple(offset_to_symbol_infos[0x42]), symbol_infos)
def testExpandSymbols(self):
symbol_name = "dummySymbol"
symbol_name2 = "other"
profiled_symbol_names = [symbol_name, "symbolThatShouldntMatch"]
name_to_symbol_infos = {symbol_name: [
- patch_orderfile.SymbolInfo(0x42, 0x12, symbol_name)]}
+ symbol_extractor.SymbolInfo(symbol_name, 0x42, 0x12,
+ section='.text')]}
offset_to_symbol_infos = {
- 0x42: [patch_orderfile.SymbolInfo(0x42, 0x12, symbol_name),
- patch_orderfile.SymbolInfo(0x42, 0x12, symbol_name2)]}
+ 0x42: [symbol_extractor.SymbolInfo(symbol_name, 0x42, 0x12,
+ section='.text'),
+ symbol_extractor.SymbolInfo(symbol_name2, 0x42, 0x12,
+ section='.text')]}
symbol_names = patch_orderfile._ExpandSymbols(
profiled_symbol_names, name_to_symbol_infos, offset_to_symbol_infos)
self.assertEquals(len(symbol_names), 3)

Powered by Google App Engine
This is Rietveld 408576698