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