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

Unified Diff: tools/binary_size/explain_binary_size_delta_unittest.py

Issue 551203004: Binary size tool, handle symbols with no path better. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 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
« no previous file with comments | « tools/binary_size/explain_binary_size_delta.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/binary_size/explain_binary_size_delta_unittest.py
diff --git a/tools/binary_size/explain_binary_size_delta_unittest.py b/tools/binary_size/explain_binary_size_delta_unittest.py
index a5f696f1401f1de03ca199abe83f4ed6f1cc4654..87ecb3680d62ea5c497007b57cafd51b77150fce 100755
--- a/tools/binary_size/explain_binary_size_delta_unittest.py
+++ b/tools/binary_size/explain_binary_size_delta_unittest.py
@@ -221,5 +221,134 @@ Per-source Analysis:
print "explain_binary_size_delta_unittest: All tests passed"
+ def testCompareStringEntries(self):
+ # List entries have form: symbol_name, symbol_type, symbol_size, file_path
+ symbol_list1 = (
+ # File with one string.
+ ( '.L.str107', 'r', 8, '/file_with_strs' ),
+ )
+
+ symbol_list2 = (
+ # Two files with one string each, same name.
+ ( '.L.str107', 'r', 8, '/file_with_strs' ),
+ ( '.L.str107', 'r', 7, '/other_file_with_strs' ),
+ )
+
+ # Here we go
+ (added, removed, changed, unchanged) = \
+ explain_binary_size_delta.Compare(symbol_list1, symbol_list2)
+
+
+ # Now check final stats.
+ orig_stdout = sys.stdout
+ output_collector = cStringIO.StringIO()
+ sys.stdout = output_collector
+ try:
+ explain_binary_size_delta.CrunchStats(added, removed, changed,
+ unchanged, True, True)
+ finally:
+ sys.stdout = orig_stdout
+ result = output_collector.getvalue()
+
+ expected_output = """\
+Total change: +7 bytes
+======================
+ 1 added, totalling +7 bytes across 1 sources
+ 1 unchanged, totalling 8 bytes
+Source stats:
+ 2 sources encountered.
+ 1 completely new.
+ 0 removed completely.
+ 0 partially changed.
+ 1 completely unchanged.
+Per-source Analysis:
+
+--------------------------------------------------------
+ +7 - Source: /other_file_with_strs - (gained 7, lost 0)
+--------------------------------------------------------
+ New symbols:
+ +7: .L.str107 type=r, size=7 bytes
+"""
+
+ self.maxDiff = None
+ self.assertMultiLineEqual(expected_output, result)
+ print "explain_binary_size_delta_unittest: All tests passed"
+
+ def testCompareStringEntriesWithNoFile(self):
+ # List entries have form: symbol_name, symbol_type, symbol_size, file_path
+ symbol_list1 = (
+ ( '.L.str104', 'r', 21, '??' ), # Will change size.
+ ( '.L.str105', 'r', 17, '??' ), # Same.
+ ( '.L.str106', 'r', 13, '??' ), # Will be removed.
+ ( '.L.str106', 'r', 3, '??' ), # Same.
+ ( '.L.str106', 'r', 3, '??' ), # Will be removed.
+ ( '.L.str107', 'r', 8, '??' ), # Will be removed (other sizes).
+ )
+
+ symbol_list2 = (
+ # Two files with one string each, same name.
+ ( '.L.str104', 'r', 19, '??' ), # Changed.
+ ( '.L.str105', 'r', 11, '??' ), # New size for multi-symbol.
+ ( '.L.str105', 'r', 17, '??' ), # New of same size for multi-symbol.
+ ( '.L.str105', 'r', 17, '??' ), # Same.
+ ( '.L.str106', 'r', 3, '??' ), # Same.
+ ( '.L.str107', 'r', 5, '??' ), # New size for symbol.
+ ( '.L.str107', 'r', 7, '??' ), # New size for symbol.
+ ( '.L.str108', 'r', 8, '??' ), # New symbol.
+ )
+
+ # Here we go
+ (added, removed, changed, unchanged) = \
+ explain_binary_size_delta.Compare(symbol_list1, symbol_list2)
+
+
+ # Now check final stats.
+ orig_stdout = sys.stdout
+ output_collector = cStringIO.StringIO()
+ sys.stdout = output_collector
+ try:
+ explain_binary_size_delta.CrunchStats(added, removed, changed,
+ unchanged, True, True)
+ finally:
+ sys.stdout = orig_stdout
+ result = output_collector.getvalue()
+
+ expected_output = """\
+Total change: +22 bytes
+=======================
+ 5 added, totalling +48 bytes across 1 sources
+ 3 removed, totalling -24 bytes across 1 sources
+ 1 shrunk, for a net change of -2 bytes (21 bytes before, 19 bytes after) \
+across 1 sources
+ 2 unchanged, totalling 20 bytes
+Source stats:
+ 1 sources encountered.
+ 0 completely new.
+ 0 removed completely.
+ 1 partially changed.
+ 0 completely unchanged.
+Per-source Analysis:
+
+----------------------------------------
+ +22 - Source: ?? - (gained 48, lost 26)
+----------------------------------------
+ New symbols:
+ +17: .L.str105 type=r, size=17 bytes
+ +11: .L.str105 type=r, size=11 bytes
+ +8: .L.str108 type=r, size=8 bytes
+ +7: .L.str107 type=r, size=7 bytes
+ +5: .L.str107 type=r, size=5 bytes
+ Removed symbols:
+ -3: .L.str106 type=r, size=3 bytes
+ -8: .L.str107 type=r, size=8 bytes
+ -13: .L.str106 type=r, size=13 bytes
+ Shrunk symbols:
+ -2: .L.str104 type=r, (was 21 bytes, now 19 bytes)
+"""
+
+ self.maxDiff = None
+ self.assertMultiLineEqual(expected_output, result)
+ print "explain_binary_size_delta_unittest: All tests passed"
+
if __name__ == '__main__':
unittest.main()
« no previous file with comments | « tools/binary_size/explain_binary_size_delta.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698