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

Side by Side Diff: build/android/pylib/instrumentation/test_runner.py

Issue 16820002: [Android] Separate concepts of pushing test data and installing test apk. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed Nilesh's comments Created 7 years, 6 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 | Annotate | Revision Log
OLDNEW
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2012 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 """Class for running instrumentation tests on a single device.""" 5 """Class for running instrumentation tests on a single device."""
6 6
7 import logging 7 import logging
8 import os 8 import os
9 import re 9 import re
10 import shutil 10 import shutil
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
82 self.save_perf_json = options.save_perf_json 82 self.save_perf_json = options.save_perf_json
83 self.screenshot_failures = options.screenshot_failures 83 self.screenshot_failures = options.screenshot_failures
84 self.wait_for_debugger = options.wait_for_debugger 84 self.wait_for_debugger = options.wait_for_debugger
85 self.disable_assertions = options.disable_assertions 85 self.disable_assertions = options.disable_assertions
86 self.test_pkg = test_pkg 86 self.test_pkg = test_pkg
87 self.ports_to_forward = ports_to_forward 87 self.ports_to_forward = ports_to_forward
88 self.install_apk = options.install_apk 88 self.install_apk = options.install_apk
89 self.forwarder = None 89 self.forwarder = None
90 90
91 #override 91 #override
92 def PushDependencies(self): 92 def InstallTestPackage(self):
93 if self.install_apk:
94 self.test_pkg.Install(self.adb)
95
96 #override
97 def PushDataDeps(self):
93 # TODO(frankf): Implement a general approach for copying/installing 98 # TODO(frankf): Implement a general approach for copying/installing
94 # once across test runners. 99 # once across test runners.
95 if TestRunner._DEVICE_HAS_TEST_FILES.get(self.device, False): 100 if TestRunner._DEVICE_HAS_TEST_FILES.get(self.device, False):
96 logging.warning('Already copied test files to device %s, skipping.', 101 logging.warning('Already copied test files to device %s, skipping.',
97 self.device) 102 self.device)
98 return 103 return
99 104
100 test_data = _GetDataFilesForTestSuite(self.test_pkg.GetApkName()) 105 test_data = _GetDataFilesForTestSuite(self.test_pkg.GetApkName())
101 if test_data: 106 if test_data:
102 # Make sure SD card is ready. 107 # Make sure SD card is ready.
103 self.adb.WaitForSdCardReady(20) 108 self.adb.WaitForSdCardReady(20)
104 for data in test_data: 109 for data in test_data:
105 self.CopyTestData([data], self.adb.GetExternalStorage()) 110 self.CopyTestData([data], self.adb.GetExternalStorage())
106 111
107 # TODO(frankf): Specify test data in this file as opposed to passing 112 # TODO(frankf): Specify test data in this file as opposed to passing
108 # as command-line. 113 # as command-line.
109 for dest_host_pair in self.test_data: 114 for dest_host_pair in self.test_data:
110 dst_src = dest_host_pair.split(':',1) 115 dst_src = dest_host_pair.split(':',1)
111 dst_layer = dst_src[0] 116 dst_layer = dst_src[0]
112 host_src = dst_src[1] 117 host_src = dst_src[1]
113 host_test_files_path = constants.DIR_SOURCE_ROOT + '/' + host_src 118 host_test_files_path = constants.DIR_SOURCE_ROOT + '/' + host_src
114 if os.path.exists(host_test_files_path): 119 if os.path.exists(host_test_files_path):
115 self.adb.PushIfNeeded(host_test_files_path, 120 self.adb.PushIfNeeded(host_test_files_path,
116 self.adb.GetExternalStorage() + '/' + 121 self.adb.GetExternalStorage() + '/' +
117 TestRunner._DEVICE_DATA_DIR + '/' + dst_layer) 122 TestRunner._DEVICE_DATA_DIR + '/' + dst_layer)
118 if self.install_apk:
119 self.test_pkg.Install(self.adb)
120 self.tool.CopyFiles() 123 self.tool.CopyFiles()
121 TestRunner._DEVICE_HAS_TEST_FILES[self.device] = True 124 TestRunner._DEVICE_HAS_TEST_FILES[self.device] = True
122 125
123 def _GetInstrumentationArgs(self): 126 def _GetInstrumentationArgs(self):
124 ret = {} 127 ret = {}
125 if self.wait_for_debugger: 128 if self.wait_for_debugger:
126 ret['debug'] = 'true' 129 ret['debug'] = 'true'
127 return ret 130 return ret
128 131
129 def _TakeScreenshot(self, test): 132 def _TakeScreenshot(self, test):
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after
349 duration_ms = 0 352 duration_ms = 0
350 message = str(e) 353 message = str(e)
351 if not message: 354 if not message:
352 message = 'No information.' 355 message = 'No information.'
353 results.AddResult(test_result.InstrumentationTestResult( 356 results.AddResult(test_result.InstrumentationTestResult(
354 test, base_test_result.ResultType.CRASH, start_date_ms, duration_ms, 357 test, base_test_result.ResultType.CRASH, start_date_ms, duration_ms,
355 log=message)) 358 log=message))
356 raw_result = None 359 raw_result = None
357 self.TestTeardown(test, raw_result) 360 self.TestTeardown(test, raw_result)
358 return (results, None if results.DidRunPass() else test) 361 return (results, None if results.DidRunPass() else test)
OLDNEW
« no previous file with comments | « build/android/pylib/host_driven/run_python_tests.py ('k') | build/android/pylib/uiautomator/test_runner.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698