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

Side by Side Diff: blimp/tools/client_engine_integration.py

Issue 2239923002: Make blimp work on K (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 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 unified diff | Download patch
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright 2016 The Chromium Authors. All rights reserved. 2 # Copyright 2016 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 """Blimp Client + Engine integration test system 6 """Blimp Client + Engine integration test system
7 7
8 Set up Client and Engine 8 Set up Client and Engine
9 Set up Forward to connect machine host with client device. 9 Set up Forward to connect machine host with client device.
10 Start Engine and run blimp on Android Client. 10 Start Engine and run blimp on Android Client.
(...skipping 16 matching lines...) Expand all
27 DEVIL_PATH = os.path.join(SRC_PATH, 'third_party', 'catapult', 27 DEVIL_PATH = os.path.join(SRC_PATH, 'third_party', 'catapult',
28 'devil') 28 'devil')
29 29
30 if DEVIL_PATH not in sys.path: 30 if DEVIL_PATH not in sys.path:
31 sys.path.append(DEVIL_PATH) 31 sys.path.append(DEVIL_PATH)
32 32
33 from devil.android import device_blacklist 33 from devil.android import device_blacklist
34 from devil.android import device_utils 34 from devil.android import device_utils
35 from devil.android import forwarder 35 from devil.android import forwarder
36 from devil.android.sdk import intent 36 from devil.android.sdk import intent
37 from devil.android.sdk import version_codes
37 from devil.utils import cmd_helper 38 from devil.utils import cmd_helper
38 39
39 _CLIENT_TOKEN_PATH = posixpath.join('/', 'data', 'data', 40 _CLIENT_TOKEN_PATH = posixpath.join('/', 'data', 'data',
40 'org.chromium.blimp', 41 'org.chromium.blimp',
41 'blimp_client_token') 42 'blimp_client_token')
42 _TOKEN_FILE_PATH = os.path.join(SRC_PATH, 'blimp', 'test', 'data', 43 _TOKEN_FILE_PATH = os.path.join(SRC_PATH, 'blimp', 'test', 'data',
43 'test_client_token') 44 'test_client_token')
44 PORT_PATTERN = re.compile(r'.*Engine port #: (\d+)') 45 PORT_PATTERN = re.compile(r'.*Engine port #: (\d+)')
45 ARGS_JSON_FILE = 'blimp_script_args.json' 46 ARGS_JSON_FILE = 'blimp_script_args.json'
46 47
(...skipping 21 matching lines...) Expand all
68 optional_url: (str) URL to navigate to. 69 optional_url: (str) URL to navigate to.
69 """ 70 """
70 run_client_intent = intent.Intent( 71 run_client_intent = intent.Intent(
71 action='android.intent.action.VIEW', 72 action='android.intent.action.VIEW',
72 package='org.chromium.blimp', 73 package='org.chromium.blimp',
73 activity='org.chromium.blimp.BlimpRendererActivity', 74 activity='org.chromium.blimp.BlimpRendererActivity',
74 data=optional_url) 75 data=optional_url)
75 device.StartActivity(run_client_intent, blocking=True) 76 device.StartActivity(run_client_intent, blocking=True)
76 77
77 78
78 def RunEngine(output_linux_directory, token_file_path): 79 def RunEngine(output_linux_directory, token_file_path, device):
79 """Start running engine 80 """Start running engine
80 81
81 Args: 82 Args:
82 output_linux_directory: (str) Path to the root linux build directory. 83 output_linux_directory: (str) Path to the root linux build directory.
83 token_file_path: (str) Path to the client auth token file. 84 token_file_path: (str) Path to the client auth token file.
84 85
85 Returns: 86 Returns:
86 port: (str) Engine port number generated by engine session. 87 port: (str) Engine port number generated by engine session.
87 """ 88 """
88 port = '0' 89 port = '0'
89 blimp_engine_app = os.path.join(output_linux_directory, 90 blimp_engine_app = os.path.join(output_linux_directory,
90 'blimp_engine_app') 91 'blimp_engine_app')
92
93 sub_dir = "marshmallow"
94 if device.build_version_sdk == version_codes.KITKAT:
95 sub_dir = "kitkat"
91 blimp_fonts_path = os.path.join(output_linux_directory, 'gen', 96 blimp_fonts_path = os.path.join(output_linux_directory, 'gen',
92 'third_party', 'blimp_fonts') 97 'third_party', 'blimp_fonts',
98 'font_bundle', sub_dir)
99
93 run_engine_cmd = [ 100 run_engine_cmd = [
94 blimp_engine_app + 101 blimp_engine_app +
95 ' --android-fonts-path=' + blimp_fonts_path + 102 ' --android-fonts-path=' + blimp_fonts_path +
96 ' --blimp-client-token-path=' + token_file_path + 103 ' --blimp-client-token-path=' + token_file_path +
97 ' --enable-logging=stderr' + 104 ' --enable-logging=stderr' +
98 ' -v=0' + 105 ' -v=0' +
99 ' --vmodule="blimp*=1"'] 106 ' --vmodule="blimp*=1"']
100 p = subprocess.Popen(run_engine_cmd, shell=True, 107 p = subprocess.Popen(run_engine_cmd, shell=True,
101 stdout=subprocess.PIPE, 108 stdout=subprocess.PIPE,
102 stderr=subprocess.STDOUT) 109 stderr=subprocess.STDOUT)
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
163 json_args = argparse.Namespace() 170 json_args = argparse.Namespace()
164 for k in args.__dict__: 171 for k in args.__dict__:
165 if not k == "func": 172 if not k == "func":
166 setattr(json_args, k, args.__dict__[k]) 173 setattr(json_args, k, args.__dict__[k])
167 json_object = {'args': json_args} 174 json_object = {'args': json_args}
168 device.EnableRoot() 175 device.EnableRoot()
169 host_device_tuples = [(_TOKEN_FILE_PATH, _CLIENT_TOKEN_PATH)] 176 host_device_tuples = [(_TOKEN_FILE_PATH, _CLIENT_TOKEN_PATH)]
170 device.PushChangedFiles(host_device_tuples) 177 device.PushChangedFiles(host_device_tuples)
171 178
172 port_number, engine_process = RunEngine( 179 port_number, engine_process = RunEngine(
173 args.output_linux_directory, _TOKEN_FILE_PATH) 180 args.output_linux_directory, _TOKEN_FILE_PATH, device)
174 json_object['port_number'] = port_number 181 json_object['port_number'] = port_number
175 json_object['pid'] = engine_process.pid 182 json_object['pid'] = engine_process.pid
176 logging.info("Engine port number: %s", port_number) 183 logging.info("Engine port number: %s", port_number)
177 logging.info("Engine running PID: %d", engine_process.pid) 184 logging.info("Engine running PID: %d", engine_process.pid)
178 185
179 if engine_process.poll() is None: 186 if engine_process.poll() is None:
180 try: 187 try:
181 port_pairs = [(port_number, port_number)] 188 port_pairs = [(port_number, port_number)]
182 forwarder.Forwarder.Map(port_pairs, device) 189 forwarder.Forwarder.Map(port_pairs, device)
183 SetCommandFlag(device, args.engine_ip, port_number) 190 SetCommandFlag(device, args.engine_ip, port_number)
(...skipping 125 matching lines...) Expand 10 before | Expand all | Expand 10 after
309 else None) 316 else None)
310 device = device_utils.DeviceUtils.HealthyDevices( 317 device = device_utils.DeviceUtils.HealthyDevices(
311 blacklist=blacklist, device_arg=serial)[0] 318 blacklist=blacklist, device_arg=serial)[0]
312 319
313 args.func(args, json_file_path, device) 320 args.func(args, json_file_path, device)
314 321
315 322
316 if __name__ == '__main__': 323 if __name__ == '__main__':
317 main() 324 main()
318 325
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698