| OLD | NEW |
| (Empty) |
| 1 #!/usr/bin/env python | |
| 2 # Copyright (c) 2012 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 """Simulate a google-test executable. | |
| 7 | |
| 8 http://code.google.com/p/googletest/ | |
| 9 """ | |
| 10 | |
| 11 import optparse | |
| 12 import sys | |
| 13 | |
| 14 | |
| 15 TESTS = { | |
| 16 'Foo': ['Bar1', 'Bar2', 'Bar3'], | |
| 17 'Baz': ['Fail'], | |
| 18 } | |
| 19 TOTAL = sum(len(v) for v in TESTS.itervalues()) | |
| 20 | |
| 21 | |
| 22 def get_test_output(test_name): | |
| 23 fixture, case = test_name.split('.', 1) | |
| 24 return ( | |
| 25 '[==========] Running 1 test from 1 test case.\n' | |
| 26 '[----------] Global test environment set-up.\n' | |
| 27 '[----------] 1 test from %(fixture)s\n' | |
| 28 '[ RUN ] %(fixture)s.%(case)s\n' | |
| 29 '[ OK ] %(fixture)s.%(case)s (0 ms)\n' | |
| 30 '[----------] 1 test from %(fixture)s (0 ms total)\n' | |
| 31 '\n') % { | |
| 32 'fixture': fixture, | |
| 33 'case': case, | |
| 34 } | |
| 35 | |
| 36 | |
| 37 def get_footer(number): | |
| 38 return ( | |
| 39 '[----------] Global test environment tear-down\n' | |
| 40 '[==========] %(number)d test from %(total)d test case ran. (0 ms total)\n' | |
| 41 '[ PASSED ] %(number)d test.\n' | |
| 42 '\n' | |
| 43 ' YOU HAVE 5 DISABLED TESTS\n' | |
| 44 '\n' | |
| 45 ' YOU HAVE 2 tests with ignored failures (FAILS prefix)\n') % { | |
| 46 'number': number, | |
| 47 'total': TOTAL, | |
| 48 } | |
| 49 | |
| 50 | |
| 51 def main(): | |
| 52 parser = optparse.OptionParser() | |
| 53 parser.add_option('--gtest_list_tests', action='store_true') | |
| 54 parser.add_option('--gtest_filter') | |
| 55 options, args = parser.parse_args() | |
| 56 if args: | |
| 57 parser.error('Failed to process args %s' % args) | |
| 58 | |
| 59 if options.gtest_list_tests: | |
| 60 for fixture, cases in TESTS.iteritems(): | |
| 61 print '%s.' % fixture | |
| 62 for case in cases: | |
| 63 print ' ' + case | |
| 64 print ' YOU HAVE 2 tests with ignored failures (FAILS prefix)' | |
| 65 print '' | |
| 66 return 0 | |
| 67 | |
| 68 if options.gtest_filter: | |
| 69 # Simulate running one test. | |
| 70 print 'Note: Google Test filter = %s\n' % options.gtest_filter | |
| 71 print get_test_output(options.gtest_filter) | |
| 72 print get_footer(1) | |
| 73 # Make Baz.Fail fail. | |
| 74 return options.gtest_filter == 'Baz.Fail' | |
| 75 | |
| 76 for fixture, cases in TESTS.iteritems(): | |
| 77 for case in cases: | |
| 78 print get_test_output('%s.%s' % (fixture, case)) | |
| 79 print get_footer(TOTAL) | |
| 80 return 6 | |
| 81 | |
| 82 | |
| 83 if __name__ == '__main__': | |
| 84 sys.exit(main()) | |
| OLD | NEW |