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

Side by Side Diff: build/android/pylib/remote/device/remote_device_test_run.py

Issue 1108173002: Roll //build, //native_client, and a few more targets of opportunity. Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Test fix 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
OLDNEW
1 # Copyright 2014 The Chromium Authors. All rights reserved. 1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 """Run specific test on specific environment.""" 5 """Run specific test on specific environment."""
6 6
7 import json 7 import json
8 import logging 8 import logging
9 import os 9 import os
10 import sys 10 import sys
11 import tempfile 11 import tempfile
12 import time 12 import time
13 import zipfile 13 import zipfile
14 14
15 from pylib import constants 15 from pylib import constants
16 from pylib.base import test_run 16 from pylib.base import test_run
17 from pylib.remote.device import appurify_constants
17 from pylib.remote.device import appurify_sanitized 18 from pylib.remote.device import appurify_sanitized
18 from pylib.remote.device import remote_device_helper 19 from pylib.remote.device import remote_device_helper
19 from pylib.utils import zip_utils 20 from pylib.utils import zip_utils
20 21
21 class RemoteDeviceTestRun(test_run.TestRun): 22 class RemoteDeviceTestRun(test_run.TestRun):
22 """Run tests on a remote device.""" 23 """Run tests on a remote device."""
23 24
24 _TEST_RUN_KEY = 'test_run' 25 _TEST_RUN_KEY = 'test_run'
25 _TEST_RUN_ID_KEY = 'test_run_id' 26 _TEST_RUN_ID_KEY = 'test_run_id'
26 27
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
223 zip_utils.WriteToZipFile(zip_file, h, os.path.basename(h)) 224 zip_utils.WriteToZipFile(zip_file, h, os.path.basename(h))
224 sdcard_files.append(os.path.basename(h)) 225 sdcard_files.append(os.path.basename(h))
225 config['sdcard_files'] = ','.join(sdcard_files) 226 config['sdcard_files'] = ','.join(sdcard_files)
226 config['host_test'] = host_test 227 config['host_test'] = host_test
227 self._test_id = self._UploadTestToDevice( 228 self._test_id = self._UploadTestToDevice(
228 'robotium', test_with_deps.name, app_id=self._app_id) 229 'robotium', test_with_deps.name, app_id=self._app_id)
229 else: 230 else:
230 self._test_id = self._UploadTestToDevice('robotium', test_path) 231 self._test_id = self._UploadTestToDevice('robotium', test_path)
231 232
232 logging.info('Setting config: %s' % config) 233 logging.info('Setting config: %s' % config)
233 self._SetTestConfig('robotium', config) 234 appurify_configs = {}
235 if self._env.network_config:
236 appurify_configs['network'] = self._env.network_config
237 self._SetTestConfig('robotium', config, **appurify_configs)
234 238
235 def _UploadAppToDevice(self, app_path): 239 def _UploadAppToDevice(self, app_path):
236 """Upload app to device.""" 240 """Upload app to device."""
237 logging.info('Uploading %s to remote service.', app_path) 241 logging.info('Uploading %s to remote service.', app_path)
238 with open(app_path, 'rb') as apk_src: 242 with open(app_path, 'rb') as apk_src:
239 with appurify_sanitized.SanitizeLogging(self._env.verbose_count, 243 with appurify_sanitized.SanitizeLogging(self._env.verbose_count,
240 logging.WARNING): 244 logging.WARNING):
241 upload_results = appurify_sanitized.api.apps_upload( 245 upload_results = appurify_sanitized.api.apps_upload(
242 self._env.token, apk_src, 'raw', name=self._test_instance.suite) 246 self._env.token, apk_src, 'raw', name=self._test_instance.suite)
243 remote_device_helper.TestHttpResponse( 247 remote_device_helper.TestHttpResponse(
244 upload_results, 'Unable to upload %s.' % app_path) 248 upload_results, 'Unable to upload %s.' % app_path)
245 return upload_results.json()['response']['app_id'] 249 return upload_results.json()['response']['app_id']
246 250
247 def _UploadTestToDevice(self, test_type, test_path, app_id=None): 251 def _UploadTestToDevice(self, test_type, test_path, app_id=None):
248 """Upload test to device 252 """Upload test to device
249 Args: 253 Args:
250 test_type: Type of test that is being uploaded. Ex. uirobot, gtest.. 254 test_type: Type of test that is being uploaded. Ex. uirobot, gtest..
251 """ 255 """
252 logging.info('Uploading %s to remote service.' % test_path) 256 logging.info('Uploading %s to remote service.' % test_path)
253 with open(test_path, 'rb') as test_src: 257 with open(test_path, 'rb') as test_src:
254 with appurify_sanitized.SanitizeLogging(self._env.verbose_count, 258 with appurify_sanitized.SanitizeLogging(self._env.verbose_count,
255 logging.WARNING): 259 logging.WARNING):
256 upload_results = appurify_sanitized.api.tests_upload( 260 upload_results = appurify_sanitized.api.tests_upload(
257 self._env.token, test_src, 'raw', test_type, app_id=app_id) 261 self._env.token, test_src, 'raw', test_type, app_id=app_id)
258 remote_device_helper.TestHttpResponse(upload_results, 262 remote_device_helper.TestHttpResponse(upload_results,
259 'Unable to upload %s.' % test_path) 263 'Unable to upload %s.' % test_path)
260 return upload_results.json()['response']['test_id'] 264 return upload_results.json()['response']['test_id']
261 265
262 def _SetTestConfig(self, runner_type, body): 266 def _SetTestConfig(self, runner_type, runner_configs,
267 network=appurify_constants.NETWORK.WIFI_1_BAR,
268 pcap=0, profiler=0, videocapture=0):
263 """Generates and uploads config file for test. 269 """Generates and uploads config file for test.
264 Args: 270 Args:
265 extras: Extra arguments to set in the config file. 271 runner_configs: Configs specific to the runner you are using.
272 network: Config to specify the network environment the devices running
273 the tests will be in.
274 pcap: Option to set the recording the of network traffic from the device.
275 profiler: Option to set the recording of CPU, memory, and network
276 transfer usage in the tests.
277 videocapture: Option to set video capture during the tests.
278
266 """ 279 """
267 logging.info('Generating config file for test.') 280 logging.info('Generating config file for test.')
268 with tempfile.TemporaryFile() as config: 281 with tempfile.TemporaryFile() as config:
269 config_data = [ 282 config_data = [
270 '[appurify]', 283 '[appurify]',
271 'pcap=0', 284 'network=%s' % network,
272 'profiler=0', 285 'pcap=%s' % pcap,
273 'videocapture=0', 286 'profiler=%s' % profiler,
274 '[%s]' % runner_type 287 'videocapture=%s' % videocapture,
288 '[%s]' % runner_type
275 ] 289 ]
276 config_data.extend('%s=%s' % (k, v) for k, v in body.iteritems()) 290 config_data.extend(
291 '%s=%s' % (k, v) for k, v in runner_configs.iteritems())
277 config.write(''.join('%s\n' % l for l in config_data)) 292 config.write(''.join('%s\n' % l for l in config_data))
278 config.flush() 293 config.flush()
279 config.seek(0) 294 config.seek(0)
280 with appurify_sanitized.SanitizeLogging(self._env.verbose_count, 295 with appurify_sanitized.SanitizeLogging(self._env.verbose_count,
281 logging.WARNING): 296 logging.WARNING):
282 config_response = appurify_sanitized.api.config_upload( 297 config_response = appurify_sanitized.api.config_upload(
283 self._env.token, config, self._test_id) 298 self._env.token, config, self._test_id)
284 remote_device_helper.TestHttpResponse( 299 remote_device_helper.TestHttpResponse(
285 config_response, 'Unable to upload test config.') 300 config_response, 'Unable to upload test config.')
OLDNEW
« no previous file with comments | « build/android/pylib/remote/device/remote_device_environment.py ('k') | build/android/pylib/results/json_results.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698