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

Side by Side 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: Taking advantage of the unittest system. 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 unified diff | Download patch
OLDNEW
(Empty)
1 #!/usr/bin/env python
2 # Copyright 2014 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file.
5
6 """Check that explain_binary_size_delta seems to work."""
7
8 import cStringIO
9 import sys
10 import unittest
11
12 import explain_binary_size_delta
13
Primiano Tucci (use gerrit) 2014/05/22 19:02:34 Nit: add extra line here
14 class ExplainBinarySizeDeltaTest(unittest.TestCase):
15
16 def testCompare(self):
17 # List entries have form: symbol_name, symbol_type, symbol_size, file_path
18 symbol_list1 = (
19 # File with one symbol, left as-is.
20 ( 'unchanged', 't', 1000, '/file_unchanged' ),
21 # File with one symbol, changed.
22 ( 'changed', 't', 1000, '/file_all_changed' ),
23 # File with one symbol, deleted.
24 ( 'removed', 't', 1000, '/file_all_deleted' ),
25 # File with two symbols, one unchanged, one changed, same bucket
26 ( 'unchanged', 't', 1000, '/file_pair_unchanged_changed' ),
27 ( 'changed', 't', 1000, '/file_pair_unchanged_changed' ),
28 # File with two symbols, one unchanged, one deleted, same bucket
29 ( 'unchanged', 't', 1000, '/file_pair_unchanged_removed' ),
30 ( 'removed', 't', 1000, '/file_pair_unchanged_removed' ),
31 # File with two symbols, one unchanged, one added, same bucket
32 ( 'unchanged', 't', 1000, '/file_pair_unchanged_added' ),
33 # File with two symbols, one unchanged, one changed, different bucket
34 ( 'unchanged', 't', 1000, '/file_pair_unchanged_diffbuck_changed' ),
35 ( 'changed', '@', 1000, '/file_pair_unchanged_diffbuck_changed' ),
36 # File with two symbols, one unchanged, one deleted, different bucket
37 ( 'unchanged', 't', 1000, '/file_pair_unchanged_diffbuck_removed' ),
38 ( 'removed', '@', 1000, '/file_pair_unchanged_diffbuck_removed' ),
39 # File with two symbols, one unchanged, one added, different bucket
40 ( 'unchanged', 't', 1000, '/file_pair_unchanged_diffbuck_added' ),
41 # File with four symbols, one added, one removed,
42 # one changed, one unchanged
43 ( 'size_changed', 't', 1000, '/file_tetra' ),
44 ( 'removed', 't', 1000, '/file_tetra' ),
45 ( 'unchanged', 't', 1000, '/file_tetra' ),
46 )
47
48 symbol_list2 = (
49 # File with one symbol, left as-is.
50 ( 'unchanged', 't', 1000, '/file_unchanged' ),
51 # File with one symbol, changed.
52 ( 'changed', 't', 2000, '/file_all_changed' ),
53 # File with two symbols, one unchanged, one changed, same bucket
54 ( 'unchanged', 't', 1000, '/file_pair_unchanged_changed' ),
55 ( 'changed', 't', 2000, '/file_pair_unchanged_changed' ),
56 # File with two symbols, one unchanged, one deleted, same bucket
57 ( 'unchanged', 't', 1000, '/file_pair_unchanged_removed' ),
58 # File with two symbols, one unchanged, one added, same bucket
59 ( 'unchanged', 't', 1000, '/file_pair_unchanged_added' ),
60 ( 'added', 't', 1000, '/file_pair_unchanged_added' ),
61 # File with two symbols, one unchanged, one changed, different bucket
62 ( 'unchanged', 't', 1000, '/file_pair_unchanged_diffbuck_changed' ),
63 ( 'changed', '@', 2000, '/file_pair_unchanged_diffbuck_changed' ),
64 # File with two symbols, one unchanged, one deleted, different bucket
65 ( 'unchanged', 't', 1000, '/file_pair_unchanged_diffbuck_removed' ),
66 # File with two symbols, one unchanged, one added, different bucket
67 ( 'unchanged', 't', 1000, '/file_pair_unchanged_diffbuck_added' ),
68 ( 'added', '@', 1000, '/file_pair_unchanged_diffbuck_added' ),
69 # File with four symbols, one added, one removed,
70 # one changed, one unchanged
71 ( 'size_changed', 't', 2000, '/file_tetra' ),
72 ( 'unchanged', 't', 1000, '/file_tetra' ),
73 ( 'added', 't', 1000, '/file_tetra' ),
74 # New file with one symbol added
75 ( 'added', 't', 1000, '/file_new' ),
76 )
77
78 # Here we go
79 (added, removed, changed, unchanged) = \
80 explain_binary_size_delta.Compare(symbol_list1, symbol_list2)
81
82 # File with one symbol, left as-is.
83 assert ('/file_unchanged', 't', 'unchanged', 1000, 1000) in unchanged
84 # File with one symbol, changed.
85 assert ('/file_all_changed', 't', 'changed', 1000, 2000) in changed
86 # File with one symbol, deleted.
87 assert ('/file_all_deleted', 't', 'removed', 1000, None) in removed
88 # New file with one symbol added
89 assert ('/file_new', 't', 'added', None, 1000) in added
90 # File with two symbols, one unchanged, one changed, same bucket
91 assert ('/file_pair_unchanged_changed',
92 't', 'unchanged', 1000, 1000) in unchanged
93 assert ('/file_pair_unchanged_changed',
94 't', 'changed', 1000, 2000) in changed
95 # File with two symbols, one unchanged, one removed, same bucket
96 assert ('/file_pair_unchanged_removed',
97 't', 'unchanged', 1000, 1000) in unchanged
98 assert ('/file_pair_unchanged_removed',
99 't', 'removed', 1000, None) in removed
100 # File with two symbols, one unchanged, one added, same bucket
101 assert ('/file_pair_unchanged_added',
102 't', 'unchanged', 1000, 1000) in unchanged
103 assert ('/file_pair_unchanged_added',
104 't', 'added', None, 1000) in added
105 # File with two symbols, one unchanged, one changed, different bucket
106 assert ('/file_pair_unchanged_diffbuck_changed',
107 't', 'unchanged', 1000, 1000) in unchanged
108 assert ('/file_pair_unchanged_diffbuck_changed',
109 '@', 'changed', 1000, 2000) in changed
110 # File with two symbols, one unchanged, one removed, different bucket
111 assert ('/file_pair_unchanged_diffbuck_removed',
112 't', 'unchanged', 1000, 1000) in unchanged
113 assert ('/file_pair_unchanged_diffbuck_removed',
114 '@', 'removed', 1000, None) in removed
115 # File with two symbols, one unchanged, one added, different bucket
116 assert ('/file_pair_unchanged_diffbuck_added',
117 't', 'unchanged', 1000, 1000) in unchanged
118 assert ('/file_pair_unchanged_diffbuck_added',
119 '@', 'added', None, 1000) in added
120 # File with four symbols, one added, one removed, one changed, one unchanged
121 assert ('/file_tetra', 't', 'size_changed', 1000, 2000) in changed
122 assert ('/file_tetra', 't', 'unchanged', 1000, 1000) in unchanged
123 assert ('/file_tetra', 't', 'added', None, 1000) in added
124 assert ('/file_tetra', 't', 'removed', 1000, None) in removed
125
126 # Now check final stats.
127 orig_stdout = sys.stdout
128 output_collector = cStringIO.StringIO()
129 sys.stdout = output_collector
130 try:
131 explain_binary_size_delta.CrunchStats(added, removed, changed,
132 unchanged, True, True)
133 finally:
134 sys.stdout = orig_stdout
135 result = output_collector.getvalue()
136
137 expected_output = """\
138 Symbol statistics:
139 4 added, totalling 4000 bytes across 4 sources
140 4 removed, totalling 4000 bytes removed across 4 sources
141 4 changed, resulting in a net change of 4000 bytes \
142 (4000 bytes before, 8000 bytes after) across 4 sources
143 8 unchanged, totalling 8000 bytes
144 Source stats:
145 11 sources encountered.
146 1 completely new.
147 1 removed completely.
148 8 partially changed.
149 1 completely unchanged.
150 Per-source Analysis:
151 Source: /file_all_changed
152 Change: 1000 bytes (gained 1000, lost 0)
153 Changed symbols:
154 changed type=t, delta=1000 bytes (was 1000 bytes, now 2000 bytes)
155 Source: /file_all_deleted
156 Change: -1000 bytes (gained 0, lost 1000)
157 Removed symbols:
158 removed type=t, size=1000 bytes
159 Source: /file_new
160 Change: 1000 bytes (gained 1000, lost 0)
161 New symbols:
162 added type=t, size=1000 bytes
163 Source: /file_pair_unchanged_added
164 Change: 1000 bytes (gained 1000, lost 0)
165 New symbols:
166 added type=t, size=1000 bytes
167 Source: /file_pair_unchanged_changed
168 Change: 1000 bytes (gained 1000, lost 0)
169 Changed symbols:
170 changed type=t, delta=1000 bytes (was 1000 bytes, now 2000 bytes)
171 Source: /file_pair_unchanged_diffbuck_added
172 Change: 1000 bytes (gained 1000, lost 0)
173 New symbols:
174 added type=@, size=1000 bytes
175 Source: /file_pair_unchanged_diffbuck_changed
176 Change: 1000 bytes (gained 1000, lost 0)
177 Changed symbols:
178 changed type=@, delta=1000 bytes (was 1000 bytes, now 2000 bytes)
179 Source: /file_pair_unchanged_diffbuck_removed
180 Change: -1000 bytes (gained 0, lost 1000)
181 Removed symbols:
182 removed type=@, size=1000 bytes
183 Source: /file_pair_unchanged_removed
184 Change: -1000 bytes (gained 0, lost 1000)
185 Removed symbols:
186 removed type=t, size=1000 bytes
187 Source: /file_tetra
188 Change: 1000 bytes (gained 2000, lost 1000)
189 New symbols:
190 added type=t, size=1000 bytes
191 Removed symbols:
192 removed type=t, size=1000 bytes
193 Changed symbols:
194 size_changed type=t, delta=1000 bytes (was 1000 bytes, now 2000 bytes)
195 """
196
197 self.maxDiff = None
198 self.assertMultiLineEqual(expected_output, result)
199 print "explain_binary_size_delta_unittest: All tests passed"
200
201
202 if __name__ == '__main__':
203 unittest.main()
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698