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

Unified Diff: tools/isolate/data/gtest_fake/gtest_fake.py

Issue 10533085: Add a unit test for run_test_cases.py. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 6 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 side-by-side diff with in-line comments
Download patch
Index: tools/isolate/data/gtest_fake/gtest_fake.py
diff --git a/tools/isolate/data/gtest_fake/gtest_fake.py b/tools/isolate/data/gtest_fake/gtest_fake.py
new file mode 100755
index 0000000000000000000000000000000000000000..477c58acfe4281aa522dff8c2edeff1388280ff8
--- /dev/null
+++ b/tools/isolate/data/gtest_fake/gtest_fake.py
@@ -0,0 +1,83 @@
+#!/usr/bin/env python
+# Copyright (c) 2012 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+"""Simulate a google-test executable.
+
+http://code.google.com/p/googletest/
+"""
+
+import optparse
+import sys
+
+
+TESTS = {
+ 'Foo': ['Bar1', 'Bar2', 'Bar3'],
+ 'Baz': ['Fail'],
+}
+TOTAL = sum(len(v) for v in TESTS.itervalues())
+
+
+def get_test_output(test_name):
+ fixture, case = test_name.split('.', 1)
+ return (
+ '[==========] Running 1 test from 1 test case.\n'
+ '[----------] Global test environment set-up.\n'
+ '[----------] 1 test from %(fixture)s\n'
+ '[ RUN ] %(fixture)s.%(case)s\n'
+ '[ OK ] %(fixture)s.%(case)s (0 ms)\n'
+ '[----------] 1 test from %(fixture)s (0 ms total)\n'
+ '\n') % {
+ 'fixture': fixture,
+ 'case': case,
+ }
+
+
+def get_footer(number):
+ return (
+ '[----------] Global test environment tear-down\n'
+ '[==========] %(number)d test from %(total)d test case ran. (0 ms total)\n'
+ '[ PASSED ] %(number)d test.\n'
+ '\n'
+ ' YOU HAVE 5 DISABLED TESTS\n'
+ '\n'
+ ' YOU HAVE 2 tests with ignored failures (FAILS prefix)\n') % {
+ 'number': number,
+ 'total': TOTAL,
+ }
+
cmp 2012/06/12 16:32:10 nit: insert an empty line
M-A Ruel 2012/06/12 17:33:48 done
+def main():
+ parser = optparse.OptionParser()
+ parser.add_option('--gtest_list_tests', action='store_true')
+ parser.add_option('--gtest_filter')
+ options, args = parser.parse_args()
+ if args:
+ parser.error('Failed to process args %s' % args)
+
+ if options.gtest_list_tests:
+ for fixture, cases in TESTS.iteritems():
+ print '%s.' % fixture
+ for case in cases:
+ print ' ' + case
+ print ' YOU HAVE 2 tests with ignored failures (FAILS prefix)'
+ print ''
+ return 0
+
+ if options.gtest_filter:
+ # Simulate running one test.
+ print 'Note: Google Test filter = %s\n' % options.gtest_filter
+ print get_test_output(options.gtest_filter)
+ print get_footer(1)
+ # Make Baz.Fail fail.
+ return options.gtest_filter == 'Baz.Fail'
+
+ for fixture, cases in TESTS.iteritems():
+ for case in cases:
+ print get_test_output('%s.%s' % (fixture, case))
+ print get_footer(TOTAL)
+ return 1
+
+
+if __name__ == '__main__':
+ sys.exit(main())

Powered by Google App Engine
This is Rietveld 408576698