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 1 |
| 81 |
| 82 |
| 83 if __name__ == '__main__': |
| 84 sys.exit(main()) |
OLD | NEW |