| Index: tools/chrome_remote_control/chrome_remote_control/multi_page_benchmark_runner.py
|
| diff --git a/tools/chrome_remote_control/chrome_remote_control/multi_page_benchmark_runner.py b/tools/chrome_remote_control/chrome_remote_control/multi_page_benchmark_runner.py
|
| deleted file mode 100755
|
| index 7b58a97ee7b8c87f750772d5cba0a36918f1e62e..0000000000000000000000000000000000000000
|
| --- a/tools/chrome_remote_control/chrome_remote_control/multi_page_benchmark_runner.py
|
| +++ /dev/null
|
| @@ -1,106 +0,0 @@
|
| -#!/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.
|
| -import csv
|
| -import inspect
|
| -import logging
|
| -import os
|
| -import sys
|
| -import traceback
|
| -
|
| -from chrome_remote_control import browser_finder
|
| -from chrome_remote_control import browser_options
|
| -from chrome_remote_control import multi_page_benchmark
|
| -from chrome_remote_control import page_runner
|
| -from chrome_remote_control 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)
|
| -
|
| - # 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.
|
| - benchmark_name = None
|
| - for arg in sys.argv:
|
| - if arg in benchmarks:
|
| - benchmark_name = arg
|
| -
|
| - options = browser_options.BrowserOptions()
|
| - parser = options.CreateParser('%prog [options] <benchmark> <page_set>')
|
| -
|
| - benchmark = None
|
| - if benchmark_name is not None:
|
| - benchmark = benchmarks[benchmark_name]()
|
| - benchmark.AddOptions(parser)
|
| -
|
| - _, args = parser.parse_args()
|
| -
|
| - if benchmark is None or len(args) != 2:
|
| - parser.print_usage()
|
| - import page_sets # pylint: disable=F0401
|
| - print >> sys.stderr, 'Available benchmarks:\n%s\n' % ',\n'.join(
|
| - sorted(benchmarks.keys()))
|
| - print >> sys.stderr, 'Available page_sets:\n%s\n' % ',\n'.join(
|
| - sorted([os.path.relpath(f)
|
| - for f in page_sets.GetAllPageSetFilenames()]))
|
| - sys.exit(1)
|
| -
|
| - ps = page_set.PageSet.FromFile(args[1])
|
| -
|
| - benchmark.CustomizeBrowserOptions(options)
|
| - possible_browser = browser_finder.FindBrowser(options)
|
| - if not possible_browser:
|
| - print >> sys.stderr, """No browser found.\n
|
| -Use --browser=list to figure out which are available.\n"""
|
| - sys.exit(1)
|
| -
|
| - results = multi_page_benchmark.CsvBenchmarkResults(csv.writer(sys.stdout))
|
| - with page_runner.PageRunner(ps) as runner:
|
| - runner.Run(options, possible_browser, benchmark, results)
|
| - # When using an exact executable, assume it is a reference build for the
|
| - # purpose of outputting the perf results.
|
| - results.PrintSummary(options.browser_executable and '_ref' or '')
|
| -
|
| - if len(results.page_failures):
|
| - logging.warning('Failed pages: %s', '\n'.join(
|
| - [failure['page'].url for failure in results.page_failures]))
|
| - return min(255, len(results.page_failures))
|
|
|