| OLD | NEW |
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
| 2 # Copyright 2017 The Chromium Authors. All rights reserved. | 2 # Copyright 2017 The Chromium Authors. All rights reserved. |
| 3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be |
| 4 # found in the LICENSE file. | 4 # found in the LICENSE file. |
| 5 | 5 |
| 6 import contextlib | 6 import contextlib |
| 7 import copy | 7 import copy |
| 8 import difflib | 8 import difflib |
| 9 import glob | 9 import glob |
| 10 import itertools | 10 import itertools |
| (...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 175 @_CompareWithGolden() | 175 @_CompareWithGolden() |
| 176 def test_Diff_Basic(self): | 176 def test_Diff_Basic(self): |
| 177 size_info1 = self._CloneSizeInfo(use_elf=False) | 177 size_info1 = self._CloneSizeInfo(use_elf=False) |
| 178 size_info2 = self._CloneSizeInfo(use_elf=False) | 178 size_info2 = self._CloneSizeInfo(use_elf=False) |
| 179 size_info1.metadata = {"foo": 1, "bar": [1,2,3], "baz": "yes"} | 179 size_info1.metadata = {"foo": 1, "bar": [1,2,3], "baz": "yes"} |
| 180 size_info2.metadata = {"foo": 1, "bar": [1,3], "baz": "yes"} | 180 size_info2.metadata = {"foo": 1, "bar": [1,3], "baz": "yes"} |
| 181 size_info1.symbols -= size_info1.symbols[:2] | 181 size_info1.symbols -= size_info1.symbols[:2] |
| 182 size_info2.symbols -= size_info2.symbols[-3:] | 182 size_info2.symbols -= size_info2.symbols[-3:] |
| 183 size_info1.symbols[1].size -= 10 | 183 size_info1.symbols[1].size -= 10 |
| 184 d = diff.Diff(size_info1, size_info2) | 184 d = diff.Diff(size_info1, size_info2) |
| 185 d.symbols = d.symbols.Cluster().Sorted() |
| 185 return describe.GenerateLines(d, verbose=True) | 186 return describe.GenerateLines(d, verbose=True) |
| 186 | 187 |
| 187 def test_Diff_Aliases1(self): | 188 def test_Diff_Aliases1(self): |
| 188 size_info1 = self._CloneSizeInfo() | 189 size_info1 = self._CloneSizeInfo() |
| 189 size_info2 = self._CloneSizeInfo() | 190 size_info2 = self._CloneSizeInfo() |
| 190 | 191 |
| 191 # Removing 1 alias should not change the size. | 192 # Removing 1 alias should not change the size. |
| 192 a1, _, _ = ( | 193 a1, _, _ = ( |
| 193 size_info2.symbols.Filter(lambda s: s.num_aliases == 3)[0].aliases) | 194 size_info2.symbols.Filter(lambda s: s.num_aliases == 3)[0].aliases) |
| 194 size_info2.symbols -= [a1] | 195 size_info2.symbols -= [a1] |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 250 models.Symbol(S, 55, name='.L__bar_1195', object_path='b'), # 5 | 251 models.Symbol(S, 55, name='.L__bar_1195', object_path='b'), # 5 |
| 251 ] | 252 ] |
| 252 size_info2.symbols += [ | 253 size_info2.symbols += [ |
| 253 models.Symbol(S, 33, name='.L__unnamed_2195', object_path='b'), # 3 | 254 models.Symbol(S, 33, name='.L__unnamed_2195', object_path='b'), # 3 |
| 254 models.Symbol(S, 11, name='.L__unnamed_2194', object_path='a'), # 1 | 255 models.Symbol(S, 11, name='.L__unnamed_2194', object_path='a'), # 1 |
| 255 models.Symbol(S, 22, name='.L__unnamed_2193', object_path='a'), # 2 | 256 models.Symbol(S, 22, name='.L__unnamed_2193', object_path='a'), # 2 |
| 256 models.Symbol(S, 44, name='.L__bar_2195', object_path='b'), # 4 | 257 models.Symbol(S, 44, name='.L__bar_2195', object_path='b'), # 4 |
| 257 models.Symbol(S, 55, name='.L__bar_295', object_path='b'), # 5 | 258 models.Symbol(S, 55, name='.L__bar_295', object_path='b'), # 5 |
| 258 ] | 259 ] |
| 259 d = diff.Diff(size_info1, size_info2) | 260 d = diff.Diff(size_info1, size_info2) |
| 261 d.symbols = d.symbols.Cluster().Sorted() |
| 260 self.assertEquals(d.symbols.added_count, 0) | 262 self.assertEquals(d.symbols.added_count, 0) |
| 261 self.assertEquals(d.symbols.size, 0) | 263 self.assertEquals(d.symbols.size, 0) |
| 262 | 264 |
| 263 | 265 |
| 264 @_CompareWithGolden() | 266 @_CompareWithGolden() |
| 265 def test_FullDescription(self): | 267 def test_FullDescription(self): |
| 266 return describe.GenerateLines(self._CloneSizeInfo().Cluster(), | 268 return describe.GenerateLines(self._CloneSizeInfo().Cluster(), |
| 267 recursive=True, verbose=True) | 269 recursive=True, verbose=True) |
| 268 | 270 |
| 269 @_CompareWithGolden() | 271 @_CompareWithGolden() |
| (...skipping 27 matching lines...) Expand all Loading... |
| 297 global update_goldens | 299 global update_goldens |
| 298 update_goldens = True | 300 update_goldens = True |
| 299 for f in glob.glob(os.path.join(_TEST_DATA_DIR, '*.golden')): | 301 for f in glob.glob(os.path.join(_TEST_DATA_DIR, '*.golden')): |
| 300 os.unlink(f) | 302 os.unlink(f) |
| 301 | 303 |
| 302 unittest.main(argv=argv, verbosity=2) | 304 unittest.main(argv=argv, verbosity=2) |
| 303 | 305 |
| 304 | 306 |
| 305 if __name__ == '__main__': | 307 if __name__ == '__main__': |
| 306 main() | 308 main() |
| OLD | NEW |