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

Unified Diff: build/android/test_runner.py

Issue 22854004: Android: first step into making "perf tests" reuse the functional test infra. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: copyright notice Created 7 years, 4 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 | « build/android/pylib/perf/test_runner.py ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: build/android/test_runner.py
diff --git a/build/android/test_runner.py b/build/android/test_runner.py
index 705eec41f365de714bc982bc6ca63914e5ade45a..8f10b0e2578452b3eac63e9e3ef26adb2b9ec50f 100755
--- a/build/android/test_runner.py
+++ b/build/android/test_runner.py
@@ -28,6 +28,9 @@ from pylib.instrumentation import setup as instrumentation_setup
from pylib.instrumentation import test_options as instrumentation_test_options
from pylib.monkey import setup as monkey_setup
from pylib.monkey import test_options as monkey_test_options
+from pylib.perf import setup as perf_setup
+from pylib.perf import test_options as perf_test_options
+from pylib.perf import test_runner as perf_test_runner
from pylib.uiautomator import setup as uiautomator_setup
from pylib.uiautomator import test_options as uiautomator_test_options
from pylib.utils import report_results
@@ -418,6 +421,42 @@ def ProcessMonkeyTestOptions(options, error_func):
options.extra_args)
+def AddPerfTestOptions(option_parser):
+ """Adds perf test options to |option_parser|."""
+
+ option_parser.usage = '%prog perf [options]'
+ option_parser.command_list = []
+ option_parser.example = ('%prog perf --steps perf_steps.json')
+
+ option_parser.add_option('--steps', help='JSON file containing the list '
+ 'of perf steps to run.')
+ option_parser.add_option('--flaky-steps',
+ help='A JSON file containing steps that are flaky '
+ 'and will have its exit code ignored.')
+ option_parser.add_option('--print-step', help='The name of a previously '
+ 'executed perf step to print.')
+
+ AddCommonOptions(option_parser)
+
+
+def ProcessPerfTestOptions(options, error_func):
+ """Processes all perf test options.
+
+ Args:
+ options: optparse.Options object.
+ error_func: Function to call with the error message in case of an error.
+
+ Returns:
+ A PerfOptions named tuple which contains all options relevant to
+ perf tests.
+ """
+ if not options.steps and not options.print_step:
+ error_func('Please specify --steps or --print-step')
+ return perf_test_options.PerfOptions(
+ options.steps, options.flaky_steps, options.print_step)
+
+
+
def _RunGTests(options, error_func):
"""Subcommand of RunTestsCommands which runs gtests."""
ProcessGTestOptions(options)
@@ -553,6 +592,26 @@ def _RunMonkeyTests(options, error_func):
return exit_code
+def _RunPerfTests(options, error_func):
+ """Subcommand of RunTestsCommands which runs perf tests."""
+ perf_options = ProcessPerfTestOptions(options, error_func)
+ # Just print the results from a single previously executed step.
+ if perf_options.print_step:
+ return perf_test_runner.PrintTestOutput(perf_options.print_step)
+
+ runner_factory, tests = perf_setup.Setup(perf_options)
+
+ results, exit_code = test_dispatcher.RunTests(
+ tests, runner_factory, False, None, shard=True, test_timeout=None)
+
+ report_results.LogFull(
+ results=results,
+ test_type='Perf',
+ test_package='Perf',
+ build_type=options.build_type)
+
+ return exit_code
+
def RunTestsCommand(command, options, args, option_parser):
"""Checks test type and dispatches to the appropriate function.
@@ -587,6 +646,8 @@ def RunTestsCommand(command, options, args, option_parser):
return _RunUIAutomatorTests(options, option_parser.error)
elif command == 'monkey':
return _RunMonkeyTests(options, option_parser.error)
+ elif command == 'perf':
+ return _RunPerfTests(options, option_parser.error)
else:
raise Exception('Unknown test type.')
@@ -645,6 +706,8 @@ VALID_COMMANDS = {
AddUIAutomatorTestOptions, RunTestsCommand),
'monkey': CommandFunctionTuple(
AddMonkeyTestOptions, RunTestsCommand),
+ 'perf': CommandFunctionTuple(
+ AddPerfTestOptions, RunTestsCommand),
'help': CommandFunctionTuple(lambda option_parser: None, HelpCommand)
}
« no previous file with comments | « build/android/pylib/perf/test_runner.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698