| Index: tools/telemetry/telemetry/multi_page_benchmark_runner.py
|
| diff --git a/tools/telemetry/telemetry/multi_page_benchmark_runner.py b/tools/telemetry/telemetry/multi_page_benchmark_runner.py
|
| index 48837eecd6f1c2eb38b596f1e1850a729602bb37..89fc5e5c1b8f6bbdb37ff0d2bcdee282eac69b96 100755
|
| --- a/tools/telemetry/telemetry/multi_page_benchmark_runner.py
|
| +++ b/tools/telemetry/telemetry/multi_page_benchmark_runner.py
|
| @@ -3,59 +3,26 @@
|
| # Use of this source code is governed by a BSD-style license that can be
|
| # found in the LICENSE file.
|
| import csv
|
| -import inspect
|
| import logging
|
| import os
|
| import sys
|
| -import traceback
|
|
|
| +from telemetry import all_page_interactions # pylint: disable=W0611
|
| from telemetry import browser_finder
|
| from telemetry import browser_options
|
| +from telemetry import discover
|
| from telemetry import multi_page_benchmark
|
| from telemetry import page_runner
|
| from telemetry import page_set
|
|
|
| -
|
| -def _Discover(start_dir, clazz):
|
| - """Discover all classes in |start_dir| which subclass |clazz|.
|
| -
|
| - Args:
|
| - start_dir: The directory to recursively search.
|
| - clazz: The base class to search for.
|
| -
|
| - Returns:
|
| - dict of {module_name: class}.
|
| - """
|
| - top_level_dir = os.path.join(start_dir, '..')
|
| - classes = {}
|
| - for dirpath, _, filenames in os.walk(start_dir):
|
| - for filename in filenames:
|
| - if not filename.endswith('.py'):
|
| - continue
|
| - name, _ = os.path.splitext(filename)
|
| - relpath = os.path.relpath(dirpath, top_level_dir)
|
| - fqn = relpath.replace('/', '.') + '.' + name
|
| - try:
|
| - module = __import__(fqn, fromlist=[True])
|
| - except Exception:
|
| - logging.error('While importing [%s]\n' % fqn)
|
| - traceback.print_exc()
|
| - continue
|
| - for name, obj in inspect.getmembers(module):
|
| - if inspect.isclass(obj):
|
| - if clazz in inspect.getmro(obj):
|
| - name = module.__name__.split('.')[-1]
|
| - classes[name] = obj
|
| - return classes
|
| -
|
| -
|
| def Main(benchmark_dir):
|
| """Turns a MultiPageBenchmark into a command-line program.
|
|
|
| Args:
|
| benchmark_dir: Path to directory containing MultiPageBenchmarks.
|
| """
|
| - benchmarks = _Discover(benchmark_dir, multi_page_benchmark.MultiPageBenchmark)
|
| + benchmarks = discover.Discover(benchmark_dir, '',
|
| + multi_page_benchmark.MultiPageBenchmark)
|
|
|
| # Naively find the benchmark. If we use the browser options parser, we run
|
| # the risk of failing to parse if we use a benchmark-specific parameter.
|
| @@ -70,7 +37,7 @@ def Main(benchmark_dir):
|
| benchmark = None
|
| if benchmark_name is not None:
|
| benchmark = benchmarks[benchmark_name]()
|
| - benchmark.AddOptions(parser)
|
| + benchmark.AddCommandLineOptions(parser)
|
|
|
| _, args = parser.parse_args()
|
|
|
| @@ -103,4 +70,8 @@ Use --browser=list to figure out which are available.\n"""
|
| if len(results.page_failures):
|
| logging.warning('Failed pages: %s', '\n'.join(
|
| [failure['page'].url for failure in results.page_failures]))
|
| +
|
| + if len(results.skipped_pages):
|
| + logging.warning('Skipped pages: %s', '\n'.join(
|
| + [skipped['page'].url for skipped in results.skipped_pages]))
|
| return min(255, len(results.page_failures))
|
|
|