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

Unified Diff: tools/telemetry/telemetry/run_tests.py

Issue 12278015: [Telemetry] Reorganize everything. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Re-add shebangs. Created 7 years, 10 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
« no previous file with comments | « tools/telemetry/telemetry/record_wpr.py ('k') | tools/telemetry/telemetry/scrolling_action.js » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/telemetry/telemetry/run_tests.py
diff --git a/tools/telemetry/telemetry/run_tests.py b/tools/telemetry/telemetry/run_tests.py
deleted file mode 100644
index e1c2128d13cbf8e0a52b0ba46e50eb81152c6c77..0000000000000000000000000000000000000000
--- a/tools/telemetry/telemetry/run_tests.py
+++ /dev/null
@@ -1,149 +0,0 @@
-# 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.
-import fnmatch
-import logging
-import os
-import traceback
-import unittest
-
-from telemetry import gtest_testrunner
-from telemetry import browser_options
-from telemetry import options_for_unittests
-
-
-def RequiresBrowserOfType(*types):
- def wrap(func):
- func._requires_browser_types = types
- return func
- return wrap
-
-
-def Discover(start_dir, pattern = 'test*.py', top_level_dir = None):
- modules = []
- for dirpath, _, filenames in os.walk(start_dir):
- for filename in filenames:
- if not filename.endswith('.py'):
- continue
-
- if not fnmatch.fnmatch(filename, pattern):
- continue
-
- if filename.startswith('.') or filename.startswith('_'):
- continue
- name, _ = os.path.splitext(filename)
-
- relpath = os.path.relpath(dirpath, top_level_dir)
- fqn = relpath.replace('/', '.') + '.' + name
-
- # load the module
- try:
- module = __import__(fqn, fromlist=[True])
- except Exception:
- print 'While importing [%s]\n' % fqn
- traceback.print_exc()
- continue
- modules.append(module)
-
- loader = unittest.defaultTestLoader
- loader.suiteClass = gtest_testrunner.GTestTestSuite
- subsuites = []
- for module in modules:
- if hasattr(module, 'suite'):
- new_suite = module.suite()
- else:
- new_suite = loader.loadTestsFromModule(module)
- if new_suite.countTestCases():
- subsuites.append(new_suite)
- return gtest_testrunner.GTestTestSuite(subsuites)
-
-
-def FilterSuite(suite, predicate):
- new_suite = suite.__class__()
- for x in suite:
- if isinstance(x, unittest.TestSuite):
- subsuite = FilterSuite(x, predicate)
- if subsuite.countTestCases() == 0:
- continue
-
- new_suite.addTest(subsuite)
- continue
-
- assert isinstance(x, unittest.TestCase)
- if predicate(x):
- new_suite.addTest(x)
-
- return new_suite
-
-
-def DiscoverAndRunTests(dir_name, args, top_level_dir, runner=None):
- if not runner:
- runner = gtest_testrunner.GTestTestRunner(inner=True)
-
- suite = Discover(dir_name, '*_unittest.py', top_level_dir)
-
- def IsTestSelected(test):
- if len(args) != 0:
- found = False
- for name in args:
- if name in test.id():
- found = True
- if not found:
- return False
-
- if hasattr(test, '_testMethodName'):
- method = getattr(test, test._testMethodName) # pylint: disable=W0212
- if hasattr(method, '_requires_browser_types'):
- types = method._requires_browser_types # pylint: disable=W0212
- if options_for_unittests.GetBrowserType() not in types:
- logging.debug('Skipping test %s because it requires %s' %
- (test.id(), types))
- return False
-
- return True
-
- filtered_suite = FilterSuite(suite, IsTestSelected)
- test_result = runner.run(filtered_suite)
- return test_result
-
-
-def Main(args, start_dir, top_level_dir, runner=None):
- """Unit test suite that collects all test cases for telemetry."""
- default_options = browser_options.BrowserOptions()
- default_options.browser_type = 'any'
-
- parser = default_options.CreateParser('run_tests [options] [test names]')
- parser.add_option('--repeat-count', dest='run_test_repeat_count',
- type='int', default=1,
- help='Repeats each a provided number of times.')
-
- _, args = parser.parse_args(args)
-
- if default_options.verbosity == 0:
- logging.getLogger().setLevel(logging.ERROR)
-
- from telemetry import browser_finder
- browser_to_create = browser_finder.FindBrowser(default_options)
- if browser_to_create == None:
- logging.error('No browser found of type %s. Cannot run tests.',
- default_options.browser_type)
- logging.error('Re-run with --browser=list to see available browser types.')
- return 1
-
- options_for_unittests.Set(default_options,
- browser_to_create.browser_type)
- olddir = os.getcwd()
- try:
- os.chdir(top_level_dir)
- success = True
- for _ in range(
- default_options.run_test_repeat_count): # pylint: disable=E1101
- success = success and DiscoverAndRunTests(start_dir, args, top_level_dir,
- runner)
- if success:
- return 0
- finally:
- os.chdir(olddir)
- options_for_unittests.Set(None, None)
-
- return 1
« no previous file with comments | « tools/telemetry/telemetry/record_wpr.py ('k') | tools/telemetry/telemetry/scrolling_action.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698