| 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
|
|
|