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

Side by Side Diff: mojo/tools/apptest_runner.py

Issue 1144673003: Fix and cleanup Mojo and Mandoline python scripts. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Update comments. Created 5 years, 7 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 unified diff | Download patch
« no previous file with comments | « mojo/tools/android_mojo_shell.py ('k') | mojo/tools/data/apptests » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright 2014 The Chromium Authors. All rights reserved. 2 # Copyright 2014 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """A test runner for gtest application tests.""" 6 """A test runner for gtest application tests."""
7 7
8 import argparse 8 import argparse
9 import logging 9 import logging
10 import sys 10 import sys
11 11
12 from mopy import dart_apptest
13 from mopy import gtest 12 from mopy import gtest
14 from mopy.android import AndroidShell 13 from mopy.android import AndroidShell
15 from mopy.config import Config 14 from mopy.config import Config
16 from mopy.gn import ConfigForGNArgs, ParseGNConfig
17 from mopy.log import InitLogging 15 from mopy.log import InitLogging
18 from mopy.paths import Paths 16 from mopy.paths import Paths
19 17
20 18
21 _logger = logging.getLogger() 19 _logger = logging.getLogger()
22 20
23 21
24 def main(): 22 def main():
25 parser = argparse.ArgumentParser(description="A test runner for application " 23 parser = argparse.ArgumentParser(description="An application test runner.")
26 "tests.")
27
28 parser.add_argument("--verbose", help="be verbose (multiple times for more)", 24 parser.add_argument("--verbose", help="be verbose (multiple times for more)",
29 default=0, dest="verbose_count", action="count") 25 default=0, dest="verbose_count", action="count")
30 parser.add_argument("test_list_file", type=file, 26 parser.add_argument("test_list_file", type=file,
31 help="a file listing apptests to run") 27 help="a file listing apptests to run")
32 parser.add_argument("build_dir", type=str, 28 parser.add_argument("build_dir", type=str, help="the build output directory")
33 help="the build output directory")
34 args = parser.parse_args() 29 args = parser.parse_args()
35 30
36 InitLogging(args.verbose_count) 31 InitLogging(args.verbose_count)
37 config = ConfigForGNArgs(ParseGNConfig(args.build_dir)) 32 config = Config(args.build_dir)
38 33
39 _logger.debug("Test list file: %s", args.test_list_file) 34 _logger.debug("Test list file: %s", args.test_list_file)
40 execution_globals = {"config": config} 35 execution_globals = {"config": config}
41 exec args.test_list_file in execution_globals 36 exec args.test_list_file in execution_globals
42 test_list = execution_globals["tests"] 37 test_list = execution_globals["tests"]
43 _logger.debug("Test list: %s" % test_list) 38 _logger.debug("Test list: %s" % test_list)
44 39
45 extra_args = [] 40 extra_args = []
46 if config.target_os == Config.OS_ANDROID: 41 if config.target_os == Config.OS_ANDROID:
47 paths = Paths(config) 42 paths = Paths(config)
48 shell = AndroidShell(paths.target_mojo_shell_path, paths.build_dir, 43 shell = AndroidShell(paths.mojo_runner, paths.build_dir, paths.adb_path)
49 paths.adb_path)
50 extra_args.extend(shell.PrepareShellRun('localhost')) 44 extra_args.extend(shell.PrepareShellRun('localhost'))
51 else: 45 else:
52 shell = None 46 shell = None
53 47
54 gtest.set_color() 48 gtest.set_color()
55 49
56 exit_code = 0 50 exit_code = 0
57 for test_dict in test_list: 51 for test_dict in test_list:
58 test = test_dict["test"] 52 test = test_dict["test"]
59 test_name = test_dict.get("name", test) 53 test_name = test_dict.get("name", test)
60 test_type = test_dict.get("type", "gtest") 54 test_type = test_dict.get("type", "gtest")
61 test_args = test_dict.get("test-args", []) 55 test_args = test_dict.get("test-args", [])
62 shell_args = test_dict.get("shell-args", []) + extra_args 56 shell_args = test_dict.get("shell-args", []) + extra_args
63 57
64 _logger.info("Will start: %s" % test_name) 58 _logger.info("Will start: %s" % test_name)
65 print "Running %s...." % test_name, 59 print "Running %s...." % test_name,
66 sys.stdout.flush() 60 sys.stdout.flush()
67 61
68 if test_type == "dart": 62 if test_type == "gtest":
69 apptest_result = dart_apptest.run_test(config, shell, test_dict,
70 shell_args, {test: test_args})
71 elif test_type == "gtest":
72 apptest_result = gtest.run_fixtures(config, shell, test_dict, 63 apptest_result = gtest.run_fixtures(config, shell, test_dict,
73 test, False, 64 test, False,
74 test_args, shell_args) 65 test_args, shell_args)
75 elif test_type == "gtest_isolated": 66 elif test_type == "gtest_isolated":
76 apptest_result = gtest.run_fixtures(config, shell, test_dict, 67 apptest_result = gtest.run_fixtures(config, shell, test_dict,
77 test, True, test_args, shell_args) 68 test, True, test_args, shell_args)
78 else: 69 else:
79 apptest_result = "Invalid test type in %r" % test_dict 70 apptest_result = "Invalid test type in %r" % test_dict
80 71
81 if apptest_result != "Succeeded": 72 if apptest_result != "Succeeded":
82 exit_code = 1 73 exit_code = 1
83 print apptest_result 74 print apptest_result
84 _logger.info("Completed: %s" % test_name) 75 _logger.info("Completed: %s" % test_name)
85 76
86 return exit_code 77 return exit_code
87 78
88 79
89 if __name__ == '__main__': 80 if __name__ == '__main__':
90 sys.exit(main()) 81 sys.exit(main())
OLDNEW
« no previous file with comments | « mojo/tools/android_mojo_shell.py ('k') | mojo/tools/data/apptests » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698