Index: mojo/tools/apptest_runner.py |
diff --git a/mojo/tools/apptest_runner.py b/mojo/tools/apptest_runner.py |
deleted file mode 100755 |
index c3e61ad107d473c0a091b89f6b2557b6514d4d83..0000000000000000000000000000000000000000 |
--- a/mojo/tools/apptest_runner.py |
+++ /dev/null |
@@ -1,115 +0,0 @@ |
-#!/usr/bin/env python |
-# Copyright 2014 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. |
- |
-"""A test runner for gtest application tests.""" |
- |
-import argparse |
-import ast |
-import logging |
-import sys |
- |
-_logging = logging.getLogger() |
- |
-from mopy import android |
-from mopy import gtest |
-from mopy.background_app_group import BackgroundAppGroup |
-from mopy.config import Config |
-from mopy.gn import ConfigForGNArgs, ParseGNConfig |
-from mopy.paths import Paths |
- |
- |
-def main(): |
- logging.basicConfig() |
- # Uncomment to debug: |
- #_logging.setLevel(logging.DEBUG) |
- |
- parser = argparse.ArgumentParser(description='A test runner for gtest ' |
- 'application tests.') |
- |
- parser.add_argument('apptest_list_file', type=file, |
- help='A file listing apptests to run.') |
- parser.add_argument('build_dir', type=str, |
- help='The build output directory.') |
- args = parser.parse_args() |
- |
- apptest_list = ast.literal_eval(args.apptest_list_file.read()) |
- _logging.debug("Test list: %s" % apptest_list) |
- |
- config = ConfigForGNArgs(ParseGNConfig(args.build_dir)) |
- is_android = (config.target_os == Config.OS_ANDROID) |
- android_context = android.PrepareShellRun(config) if is_android else None |
- |
- gtest.set_color() |
- mojo_paths = Paths(config) |
- |
- exit_code = 0 |
- for apptest_dict in apptest_list: |
- if apptest_dict.get("disabled"): |
- continue |
- |
- apptest = apptest_dict["test"] |
- apptest_args = apptest_dict.get("test-args", []) |
- shell_args = apptest_dict.get("shell-args", []) |
- launched_services = apptest_dict.get("launched-services", []) |
- |
- print "Running " + apptest + "...", |
- sys.stdout.flush() |
- |
- # List the apptest fixtures so they can be run independently for isolation. |
- # TODO(msw): Run some apptests without fixture isolation? |
- fixtures = gtest.get_fixtures(config, apptest, android_context) |
- |
- if not fixtures: |
- print "Failed with no tests found." |
- exit_code = 1 |
- continue |
- |
- if any(not mojo_paths.IsValidAppUrl(url) for url in launched_services): |
- print "Failed with malformed launched-services: %r" % launched_services |
- exit_code = 1 |
- continue |
- |
- apptest_result = "Succeeded" |
- for fixture in fixtures: |
- args_for_apptest = apptest_args + ["--gtest_filter=%s" % fixture] |
- if launched_services: |
- success = RunApptestInLauncher(config, mojo_paths, apptest, |
- args_for_apptest, shell_args, |
- launched_services) |
- else: |
- success = RunApptestInShell(config, apptest, args_for_apptest, |
- shell_args, android_context) |
- |
- if not success: |
- apptest_result = "Failed test(s) in %r" % apptest_dict |
- exit_code = 1 |
- |
- print apptest_result |
- |
- return exit_code |
- |
- |
-def RunApptestInShell(config, application, application_args, shell_args, |
- android_context): |
- return gtest.run_test(config, shell_args, |
- {application: application_args}, android_context) |
- |
- |
-def RunApptestInLauncher(config, mojo_paths, application, application_args, |
- shell_args, launched_services): |
- with BackgroundAppGroup( |
- mojo_paths, launched_services, |
- gtest.build_shell_arguments(shell_args, |
- {application: application_args}, |
- run_apps=False)) as apps: |
- launcher_args = [ |
- '--shell-path=' + apps.socket_path, |
- '--app-url=' + application, |
- '--app-path=' + mojo_paths.FileFromUrl(application)] |
- return gtest.run_test(config, launcher_args, run_launcher=True) |
- |
- |
-if __name__ == '__main__': |
- sys.exit(main()) |