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

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: 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
Index: build/android/test_runner.py
diff --git a/build/android/test_runner.py b/build/android/test_runner.py
index acee213847d93829e987b227238c3bd388f4e2d5..2f2e1b1d76cde90acdaca1c5748dc7d9188e0fa2 100755
--- a/build/android/test_runner.py
+++ b/build/android/test_runner.py
@@ -28,6 +28,8 @@ 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.uiautomator import setup as uiautomator_setup
from pylib.uiautomator import test_options as uiautomator_test_options
from pylib.utils import report_results
@@ -418,6 +420,41 @@ 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')
frankf 2013/08/12 23:09:52 This is incomplete
bulach 2013/08/13 08:58:19 Done.
+
+ 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.
+ """
+ return perf_test_options.PerfOptions(
+ options.steps, options.flaky_steps, options.print_step)
+
frankf 2013/08/12 23:09:52 Nit: verify one of {--steps, --print-step} is spec
bulach 2013/08/13 08:58:19 Done.
+
+
def _RunGTests(options, error_func):
"""Subcommand of RunTestsCommands which runs gtests."""
ProcessGTestOptions(options)
@@ -553,6 +590,23 @@ 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)
+
+ runner_factory, tests = perf_setup.Setup(perf_options)
+
+ results, exit_code = test_dispatcher.RunTests(
+ tests, runner_factory, False, None, shard=True)
+
+ 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 +641,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 +701,8 @@ VALID_COMMANDS = {
AddUIAutomatorTestOptions, RunTestsCommand),
'monkey': CommandFunctionTuple(
AddMonkeyTestOptions, RunTestsCommand),
+ 'perf': CommandFunctionTuple(
+ AddPerfTestOptions, RunTestsCommand),
'help': CommandFunctionTuple(lambda option_parser: None, HelpCommand)
}
« build/android/pylib/perf/test_runner.py ('K') | « 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