OLD | NEW |
1 #!/usr/bin/python2.4 | 1 #!/usr/bin/python2.4 |
2 # | 2 # |
3 # Copyright 2009, Google Inc. | 3 # Copyright 2009, Google Inc. |
4 # All rights reserved. | 4 # All rights reserved. |
5 # | 5 # |
6 # Redistribution and use in source and binary forms, with or without | 6 # Redistribution and use in source and binary forms, with or without |
7 # modification, are permitted provided that the following conditions are | 7 # modification, are permitted provided that the following conditions are |
8 # met: | 8 # met: |
9 # | 9 # |
10 # * Redistributions of source code must retain the above copyright | 10 # * Redistributions of source code must retain the above copyright |
(...skipping 632 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
643 # Include files from the main dir and subdir | 643 # Include files from the main dir and subdir |
644 self.assertEqual(sorted(c.files), [ | 644 self.assertEqual(sorted(c.files), [ |
645 '_/proj1/a.c', | 645 '_/proj1/a.c', |
646 '_/proj1/subdir/cherry.c', | 646 '_/proj1/subdir/cherry.c', |
647 '_/proj1/yes.c']) | 647 '_/proj1/yes.c']) |
648 | 648 |
649 # Excluded dir should have been pruned from the mock walk data dirnames. | 649 # Excluded dir should have been pruned from the mock walk data dirnames. |
650 # In the real os.walk() call this prunes the walk. | 650 # In the real os.walk() call this prunes the walk. |
651 self.assertEqual(self.mock_walk_return[0][1], ['subdir']) | 651 self.assertEqual(self.mock_walk_return[0][1], ['subdir']) |
652 | 652 |
| 653 |
| 654 def testEmptyTreeStats(self): |
| 655 """Make sure we don't choke when absolutely nothing happened. |
| 656 |
| 657 How we might hit this: bot compile error.""" |
| 658 c = self.cov_minimal |
| 659 t = c.tree |
| 660 t.stats_by_group['all'].AddDefaults() |
| 661 self.assertEqual(t.stats_by_group, { |
| 662 'all': { 'files_covered': 0, |
| 663 'files_instrumented': 0, |
| 664 'files_executable': 0, |
| 665 'lines_covered': 0, |
| 666 'lines_instrumented': 0, |
| 667 'lines_executable': 0 }}) |
| 668 |
653 def testUpdateTreeStats(self): | 669 def testUpdateTreeStats(self): |
654 """Test UpdateTreeStats().""" | 670 """Test UpdateTreeStats().""" |
655 | 671 |
656 c = self.cov_minimal | 672 c = self.cov_minimal |
657 c.AddRule('.*_test', group='test') | 673 c.AddRule('.*_test', group='test') |
658 | 674 |
659 # Fill the files list | 675 # Fill the files list |
660 c.ParseLcovData([ | 676 c.ParseLcovData([ |
661 'SF:/src/a.c', | 677 'SF:/src/a.c', |
662 'DA:10,1', 'DA:11,1', 'DA:20,0', | 678 'DA:10,1', 'DA:11,1', 'DA:20,0', |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
768 # TODO: test: less important, since these are thin wrappers around other | 784 # TODO: test: less important, since these are thin wrappers around other |
769 # tested methods. | 785 # tested methods. |
770 # ParseConfig() | 786 # ParseConfig() |
771 # ParseLcovFile() | 787 # ParseLcovFile() |
772 # PrintTree() | 788 # PrintTree() |
773 | 789 |
774 #------------------------------------------------------------------------------ | 790 #------------------------------------------------------------------------------ |
775 | 791 |
776 if __name__ == '__main__': | 792 if __name__ == '__main__': |
777 unittest.main() | 793 unittest.main() |
OLD | NEW |