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

Unified Diff: tools/binary_size/explain_binary_size_delta_unittest.py

Issue 296003007: Added PRESUBMIT.py for binary_size tools. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@andrew_binary_size
Patch Set: Addressed review comments. Created 6 years, 7 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') | tools/binary_size/run_binary_size_analysis.py » ('j') | 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
new file mode 100755
index 0000000000000000000000000000000000000000..6a004e25a6cd3d1a66968c8d217055c0a57801c6
--- /dev/null
+++ b/tools/binary_size/explain_binary_size_delta_unittest.py
@@ -0,0 +1,204 @@
+#!/usr/bin/env python
+# Copyright 2014 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+"""Check that explain_binary_size_delta seems to work."""
+
+import cStringIO
+import sys
+import unittest
+
+import explain_binary_size_delta
+
+
+class ExplainBinarySizeDeltaTest(unittest.TestCase):
+
+ def testCompare(self):
+ # List entries have form: symbol_name, symbol_type, symbol_size, file_path
+ symbol_list1 = (
+ # File with one symbol, left as-is.
+ ( 'unchanged', 't', 1000, '/file_unchanged' ),
+ # File with one symbol, changed.
+ ( 'changed', 't', 1000, '/file_all_changed' ),
+ # File with one symbol, deleted.
+ ( 'removed', 't', 1000, '/file_all_deleted' ),
+ # File with two symbols, one unchanged, one changed, same bucket
+ ( 'unchanged', 't', 1000, '/file_pair_unchanged_changed' ),
+ ( 'changed', 't', 1000, '/file_pair_unchanged_changed' ),
+ # File with two symbols, one unchanged, one deleted, same bucket
+ ( 'unchanged', 't', 1000, '/file_pair_unchanged_removed' ),
+ ( 'removed', 't', 1000, '/file_pair_unchanged_removed' ),
+ # File with two symbols, one unchanged, one added, same bucket
+ ( 'unchanged', 't', 1000, '/file_pair_unchanged_added' ),
+ # File with two symbols, one unchanged, one changed, different bucket
+ ( 'unchanged', 't', 1000, '/file_pair_unchanged_diffbuck_changed' ),
+ ( 'changed', '@', 1000, '/file_pair_unchanged_diffbuck_changed' ),
+ # File with two symbols, one unchanged, one deleted, different bucket
+ ( 'unchanged', 't', 1000, '/file_pair_unchanged_diffbuck_removed' ),
+ ( 'removed', '@', 1000, '/file_pair_unchanged_diffbuck_removed' ),
+ # File with two symbols, one unchanged, one added, different bucket
+ ( 'unchanged', 't', 1000, '/file_pair_unchanged_diffbuck_added' ),
+ # File with four symbols, one added, one removed,
+ # one changed, one unchanged
+ ( 'size_changed', 't', 1000, '/file_tetra' ),
+ ( 'removed', 't', 1000, '/file_tetra' ),
+ ( 'unchanged', 't', 1000, '/file_tetra' ),
+ )
+
+ symbol_list2 = (
+ # File with one symbol, left as-is.
+ ( 'unchanged', 't', 1000, '/file_unchanged' ),
+ # File with one symbol, changed.
+ ( 'changed', 't', 2000, '/file_all_changed' ),
+ # File with two symbols, one unchanged, one changed, same bucket
+ ( 'unchanged', 't', 1000, '/file_pair_unchanged_changed' ),
+ ( 'changed', 't', 2000, '/file_pair_unchanged_changed' ),
+ # File with two symbols, one unchanged, one deleted, same bucket
+ ( 'unchanged', 't', 1000, '/file_pair_unchanged_removed' ),
+ # File with two symbols, one unchanged, one added, same bucket
+ ( 'unchanged', 't', 1000, '/file_pair_unchanged_added' ),
+ ( 'added', 't', 1000, '/file_pair_unchanged_added' ),
+ # File with two symbols, one unchanged, one changed, different bucket
+ ( 'unchanged', 't', 1000, '/file_pair_unchanged_diffbuck_changed' ),
+ ( 'changed', '@', 2000, '/file_pair_unchanged_diffbuck_changed' ),
+ # File with two symbols, one unchanged, one deleted, different bucket
+ ( 'unchanged', 't', 1000, '/file_pair_unchanged_diffbuck_removed' ),
+ # File with two symbols, one unchanged, one added, different bucket
+ ( 'unchanged', 't', 1000, '/file_pair_unchanged_diffbuck_added' ),
+ ( 'added', '@', 1000, '/file_pair_unchanged_diffbuck_added' ),
+ # File with four symbols, one added, one removed,
+ # one changed, one unchanged
+ ( 'size_changed', 't', 2000, '/file_tetra' ),
+ ( 'unchanged', 't', 1000, '/file_tetra' ),
+ ( 'added', 't', 1000, '/file_tetra' ),
+ # New file with one symbol added
+ ( 'added', 't', 1000, '/file_new' ),
+ )
+
+ # Here we go
+ (added, removed, changed, unchanged) = \
+ explain_binary_size_delta.Compare(symbol_list1, symbol_list2)
+
+ # File with one symbol, left as-is.
+ assert ('/file_unchanged', 't', 'unchanged', 1000, 1000) in unchanged
+ # File with one symbol, changed.
+ assert ('/file_all_changed', 't', 'changed', 1000, 2000) in changed
+ # File with one symbol, deleted.
+ assert ('/file_all_deleted', 't', 'removed', 1000, None) in removed
+ # New file with one symbol added
+ assert ('/file_new', 't', 'added', None, 1000) in added
+ # File with two symbols, one unchanged, one changed, same bucket
+ assert ('/file_pair_unchanged_changed',
+ 't', 'unchanged', 1000, 1000) in unchanged
+ assert ('/file_pair_unchanged_changed',
+ 't', 'changed', 1000, 2000) in changed
+ # File with two symbols, one unchanged, one removed, same bucket
+ assert ('/file_pair_unchanged_removed',
+ 't', 'unchanged', 1000, 1000) in unchanged
+ assert ('/file_pair_unchanged_removed',
+ 't', 'removed', 1000, None) in removed
+ # File with two symbols, one unchanged, one added, same bucket
+ assert ('/file_pair_unchanged_added',
+ 't', 'unchanged', 1000, 1000) in unchanged
+ assert ('/file_pair_unchanged_added',
+ 't', 'added', None, 1000) in added
+ # File with two symbols, one unchanged, one changed, different bucket
+ assert ('/file_pair_unchanged_diffbuck_changed',
+ 't', 'unchanged', 1000, 1000) in unchanged
+ assert ('/file_pair_unchanged_diffbuck_changed',
+ '@', 'changed', 1000, 2000) in changed
+ # File with two symbols, one unchanged, one removed, different bucket
+ assert ('/file_pair_unchanged_diffbuck_removed',
+ 't', 'unchanged', 1000, 1000) in unchanged
+ assert ('/file_pair_unchanged_diffbuck_removed',
+ '@', 'removed', 1000, None) in removed
+ # File with two symbols, one unchanged, one added, different bucket
+ assert ('/file_pair_unchanged_diffbuck_added',
+ 't', 'unchanged', 1000, 1000) in unchanged
+ assert ('/file_pair_unchanged_diffbuck_added',
+ '@', 'added', None, 1000) in added
+ # File with four symbols, one added, one removed, one changed, one unchanged
+ assert ('/file_tetra', 't', 'size_changed', 1000, 2000) in changed
+ assert ('/file_tetra', 't', 'unchanged', 1000, 1000) in unchanged
+ assert ('/file_tetra', 't', 'added', None, 1000) in added
+ assert ('/file_tetra', 't', 'removed', 1000, None) in removed
+
+ # 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 = """\
+Symbol statistics:
+ 4 added, totalling 4000 bytes across 4 sources
+ 4 removed, totalling 4000 bytes removed across 4 sources
+ 4 changed, resulting in a net change of 4000 bytes \
+(4000 bytes before, 8000 bytes after) across 4 sources
+ 8 unchanged, totalling 8000 bytes
+Source stats:
+ 11 sources encountered.
+ 1 completely new.
+ 1 removed completely.
+ 8 partially changed.
+ 1 completely unchanged.
+Per-source Analysis:
+ Source: /file_all_changed
+ Change: 1000 bytes (gained 1000, lost 0)
+ Changed symbols:
+ changed type=t, delta=1000 bytes (was 1000 bytes, now 2000 bytes)
+ Source: /file_all_deleted
+ Change: -1000 bytes (gained 0, lost 1000)
+ Removed symbols:
+ removed type=t, size=1000 bytes
+ Source: /file_new
+ Change: 1000 bytes (gained 1000, lost 0)
+ New symbols:
+ added type=t, size=1000 bytes
+ Source: /file_pair_unchanged_added
+ Change: 1000 bytes (gained 1000, lost 0)
+ New symbols:
+ added type=t, size=1000 bytes
+ Source: /file_pair_unchanged_changed
+ Change: 1000 bytes (gained 1000, lost 0)
+ Changed symbols:
+ changed type=t, delta=1000 bytes (was 1000 bytes, now 2000 bytes)
+ Source: /file_pair_unchanged_diffbuck_added
+ Change: 1000 bytes (gained 1000, lost 0)
+ New symbols:
+ added type=@, size=1000 bytes
+ Source: /file_pair_unchanged_diffbuck_changed
+ Change: 1000 bytes (gained 1000, lost 0)
+ Changed symbols:
+ changed type=@, delta=1000 bytes (was 1000 bytes, now 2000 bytes)
+ Source: /file_pair_unchanged_diffbuck_removed
+ Change: -1000 bytes (gained 0, lost 1000)
+ Removed symbols:
+ removed type=@, size=1000 bytes
+ Source: /file_pair_unchanged_removed
+ Change: -1000 bytes (gained 0, lost 1000)
+ Removed symbols:
+ removed type=t, size=1000 bytes
+ Source: /file_tetra
+ Change: 1000 bytes (gained 2000, lost 1000)
+ New symbols:
+ added type=t, size=1000 bytes
+ Removed symbols:
+ removed type=t, size=1000 bytes
+ Changed symbols:
+ size_changed type=t, delta=1000 bytes (was 1000 bytes, now 2000 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') | tools/binary_size/run_binary_size_analysis.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698