OLD | NEW |
1 # Copyright 2015 The Chromium Authors. All rights reserved. | 1 # Copyright 2015 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 import collections | 5 import collections |
6 import copy | 6 import copy |
7 import logging | 7 import logging |
8 import os | 8 import os |
9 import pickle | 9 import pickle |
10 import re | 10 import re |
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
188 return result if result else None | 188 return result if result else None |
189 | 189 |
190 | 190 |
191 class InstrumentationTestInstance(test_instance.TestInstance): | 191 class InstrumentationTestInstance(test_instance.TestInstance): |
192 | 192 |
193 def __init__(self, args, isolate_delegate, error_func): | 193 def __init__(self, args, isolate_delegate, error_func): |
194 super(InstrumentationTestInstance, self).__init__() | 194 super(InstrumentationTestInstance, self).__init__() |
195 | 195 |
196 self._additional_apks = [] | 196 self._additional_apks = [] |
197 self._apk_under_test = None | 197 self._apk_under_test = None |
198 self._apk_under_test_permissions = None | 198 self._apk_under_test_incremental_install_script = None |
199 self._package_info = None | 199 self._package_info = None |
200 self._suite = None | 200 self._suite = None |
201 self._test_apk = None | 201 self._test_apk = None |
| 202 self._test_apk_incremental_install_script = None |
202 self._test_jar = None | 203 self._test_jar = None |
203 self._test_package = None | 204 self._test_package = None |
204 self._test_permissions = None | |
205 self._test_runner = None | 205 self._test_runner = None |
206 self._test_support_apk = None | 206 self._test_support_apk = None |
207 self._initializeApkAttributes(args, error_func) | 207 self._initializeApkAttributes(args, error_func) |
208 | 208 |
209 self._data_deps = None | 209 self._data_deps = None |
210 self._isolate_abs_path = None | 210 self._isolate_abs_path = None |
211 self._isolate_delegate = None | 211 self._isolate_delegate = None |
212 self._isolated_abs_path = None | 212 self._isolated_abs_path = None |
213 self._test_data = None | 213 self._test_data = None |
214 self._initializeDataDependencyAttributes(args, isolate_delegate) | 214 self._initializeDataDependencyAttributes(args, isolate_delegate) |
215 | 215 |
216 self._annotations = None | 216 self._annotations = None |
217 self._excluded_annotations = None | 217 self._excluded_annotations = None |
218 self._test_filter = None | 218 self._test_filter = None |
219 self._initializeTestFilterAttributes(args) | 219 self._initializeTestFilterAttributes(args) |
220 | 220 |
221 self._flags = None | 221 self._flags = None |
222 self._initializeFlagAttributes(args) | 222 self._initializeFlagAttributes(args) |
223 | 223 |
224 self._driver_apk = None | 224 self._driver_apk = None |
225 self._driver_package = None | 225 self._driver_package = None |
226 self._driver_name = None | 226 self._driver_name = None |
227 self._initializeDriverAttributes() | 227 self._initializeDriverAttributes() |
228 | 228 |
229 self._timeout_scale = None | 229 self._timeout_scale = None |
230 self._initializeTestControlAttributes(args) | 230 self._initializeTestControlAttributes(args) |
231 | 231 |
232 def _initializeApkAttributes(self, args, error_func): | 232 def _initializeApkAttributes(self, args, error_func): |
233 if args.apk_under_test.endswith('.apk'): | 233 apk_under_test_path = args.apk_under_test |
234 self._apk_under_test = args.apk_under_test | 234 if not args.apk_under_test.endswith('.apk'): |
235 else: | 235 apk_under_test_path = os.path.join( |
236 self._apk_under_test = os.path.join( | |
237 constants.GetOutDirectory(), constants.SDK_BUILD_APKS_DIR, | 236 constants.GetOutDirectory(), constants.SDK_BUILD_APKS_DIR, |
238 '%s.apk' % args.apk_under_test) | 237 '%s.apk' % args.apk_under_test) |
239 | 238 |
240 if not os.path.exists(self._apk_under_test): | 239 if not os.path.exists(apk_under_test_path): |
241 error_func('Unable to find APK under test: %s' % self._apk_under_test) | 240 error_func('Unable to find APK under test: %s' % apk_under_test_path) |
242 | 241 |
243 apk = apk_helper.ApkHelper(self._apk_under_test) | 242 self._apk_under_test = apk_helper.ToHelper(apk_under_test_path) |
244 self._apk_under_test_permissions = apk.GetPermissions() | |
245 | 243 |
246 if args.test_apk.endswith('.apk'): | 244 if args.test_apk.endswith('.apk'): |
247 self._suite = os.path.splitext(os.path.basename(args.test_apk))[0] | 245 self._suite = os.path.splitext(os.path.basename(args.test_apk))[0] |
248 self._test_apk = args.test_apk | 246 self._test_apk = apk_helper.ToHelper(args.test_apk) |
249 else: | 247 else: |
250 self._suite = args.test_apk | 248 self._suite = args.test_apk |
251 self._test_apk = os.path.join( | 249 self._test_apk = apk_helper.ToHelper(os.path.join( |
252 constants.GetOutDirectory(), constants.SDK_BUILD_APKS_DIR, | 250 constants.GetOutDirectory(), constants.SDK_BUILD_APKS_DIR, |
253 '%s.apk' % args.test_apk) | 251 '%s.apk' % args.test_apk)) |
| 252 |
| 253 self._apk_under_test_incremental_install_script = ( |
| 254 args.apk_under_test_incremental_install_script) |
| 255 self._test_apk_incremental_install_script = ( |
| 256 args.test_apk_incremental_install_script) |
| 257 |
| 258 if self._test_apk_incremental_install_script: |
| 259 assert self._suite.endswith('_incremental') |
| 260 self._suite = self._suite[:-len('_incremental')] |
254 | 261 |
255 self._test_jar = os.path.join( | 262 self._test_jar = os.path.join( |
256 constants.GetOutDirectory(), constants.SDK_BUILD_TEST_JAVALIB_DIR, | 263 constants.GetOutDirectory(), constants.SDK_BUILD_TEST_JAVALIB_DIR, |
257 '%s.jar' % self._suite) | 264 '%s.jar' % self._suite) |
258 self._test_support_apk = os.path.join( | 265 self._test_support_apk = apk_helper.ToHelper(os.path.join( |
259 constants.GetOutDirectory(), constants.SDK_BUILD_TEST_JAVALIB_DIR, | 266 constants.GetOutDirectory(), constants.SDK_BUILD_TEST_JAVALIB_DIR, |
260 '%sSupport.apk' % self._suite) | 267 '%sSupport.apk' % self._suite)) |
261 | 268 |
262 if not os.path.exists(self._test_apk): | 269 if not os.path.exists(self._test_apk.path): |
263 error_func('Unable to find test APK: %s' % self._test_apk) | 270 error_func('Unable to find test APK: %s' % self._test_apk.path) |
264 if not os.path.exists(self._test_jar): | 271 if not os.path.exists(self._test_jar): |
265 error_func('Unable to find test JAR: %s' % self._test_jar) | 272 error_func('Unable to find test JAR: %s' % self._test_jar) |
266 | 273 |
267 apk = apk_helper.ApkHelper(self.test_apk) | 274 self._test_package = self._test_apk.GetPackageName() |
268 self._test_package = apk.GetPackageName() | 275 self._test_runner = self._test_apk.GetInstrumentationName() |
269 self._test_permissions = apk.GetPermissions() | |
270 self._test_runner = apk.GetInstrumentationName() | |
271 | 276 |
272 self._package_info = None | 277 self._package_info = None |
273 for package_info in constants.PACKAGE_INFO.itervalues(): | 278 for package_info in constants.PACKAGE_INFO.itervalues(): |
274 if self._test_package == package_info.test_package: | 279 if self._test_package == package_info.test_package: |
275 self._package_info = package_info | 280 self._package_info = package_info |
276 if not self._package_info: | 281 if not self._package_info: |
277 logging.warning('Unable to find package info for %s', self._test_package) | 282 logging.warning('Unable to find package info for %s', self._test_package) |
278 | 283 |
279 for apk in args.additional_apks: | 284 for apk in args.additional_apks: |
280 if not os.path.exists(apk): | 285 if not os.path.exists(apk): |
281 error_func('Unable to find additional APK: %s' % apk) | 286 error_func('Unable to find additional APK: %s' % apk) |
282 self._additional_apks = args.additional_apks | 287 self._additional_apks = ( |
| 288 [apk_helper.ToHelper(x) for x in args.additional_apks]) |
283 | 289 |
284 def _initializeDataDependencyAttributes(self, args, isolate_delegate): | 290 def _initializeDataDependencyAttributes(self, args, isolate_delegate): |
285 self._data_deps = [] | 291 self._data_deps = [] |
286 if args.isolate_file_path: | 292 if args.isolate_file_path: |
287 self._isolate_abs_path = os.path.abspath(args.isolate_file_path) | 293 self._isolate_abs_path = os.path.abspath(args.isolate_file_path) |
288 self._isolate_delegate = isolate_delegate | 294 self._isolate_delegate = isolate_delegate |
289 self._isolated_abs_path = os.path.join( | 295 self._isolated_abs_path = os.path.join( |
290 constants.GetOutDirectory(), '%s.isolated' % self._test_package) | 296 constants.GetOutDirectory(), '%s.isolated' % self._test_package) |
291 else: | 297 else: |
292 self._isolate_delegate = None | 298 self._isolate_delegate = None |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
365 | 371 |
366 @property | 372 @property |
367 def additional_apks(self): | 373 def additional_apks(self): |
368 return self._additional_apks | 374 return self._additional_apks |
369 | 375 |
370 @property | 376 @property |
371 def apk_under_test(self): | 377 def apk_under_test(self): |
372 return self._apk_under_test | 378 return self._apk_under_test |
373 | 379 |
374 @property | 380 @property |
375 def apk_under_test_permissions(self): | 381 def apk_under_test_incremental_install_script(self): |
376 return self._apk_under_test_permissions | 382 return self._apk_under_test_incremental_install_script |
377 | 383 |
378 @property | 384 @property |
379 def flags(self): | 385 def flags(self): |
380 return self._flags | 386 return self._flags |
381 | 387 |
382 @property | 388 @property |
383 def driver_apk(self): | 389 def driver_apk(self): |
384 return self._driver_apk | 390 return self._driver_apk |
385 | 391 |
386 @property | 392 @property |
(...skipping 10 matching lines...) Expand all Loading... |
397 | 403 |
398 @property | 404 @property |
399 def suite(self): | 405 def suite(self): |
400 return self._suite | 406 return self._suite |
401 | 407 |
402 @property | 408 @property |
403 def test_apk(self): | 409 def test_apk(self): |
404 return self._test_apk | 410 return self._test_apk |
405 | 411 |
406 @property | 412 @property |
| 413 def test_apk_incremental_install_script(self): |
| 414 return self._test_apk_incremental_install_script |
| 415 |
| 416 @property |
407 def test_jar(self): | 417 def test_jar(self): |
408 return self._test_jar | 418 return self._test_jar |
409 | 419 |
410 @property | 420 @property |
411 def test_support_apk(self): | 421 def test_support_apk(self): |
412 return self._test_support_apk | 422 return self._test_support_apk |
413 | 423 |
414 @property | 424 @property |
415 def test_package(self): | 425 def test_package(self): |
416 return self._test_package | 426 return self._test_package |
417 | 427 |
418 @property | 428 @property |
419 def test_permissions(self): | |
420 return self._test_permissions | |
421 | |
422 @property | |
423 def test_runner(self): | 429 def test_runner(self): |
424 return self._test_runner | 430 return self._test_runner |
425 | 431 |
426 @property | 432 @property |
427 def timeout_scale(self): | 433 def timeout_scale(self): |
428 return self._timeout_scale | 434 return self._timeout_scale |
429 | 435 |
430 #override | 436 #override |
431 def TestType(self): | 437 def TestType(self): |
432 return 'instrumentation' | 438 return 'instrumentation' |
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
623 def GenerateTestResults( | 629 def GenerateTestResults( |
624 result_code, result_bundle, statuses, start_ms, duration_ms): | 630 result_code, result_bundle, statuses, start_ms, duration_ms): |
625 return GenerateTestResults(result_code, result_bundle, statuses, | 631 return GenerateTestResults(result_code, result_bundle, statuses, |
626 start_ms, duration_ms) | 632 start_ms, duration_ms) |
627 | 633 |
628 #override | 634 #override |
629 def TearDown(self): | 635 def TearDown(self): |
630 if self._isolate_delegate: | 636 if self._isolate_delegate: |
631 self._isolate_delegate.Clear() | 637 self._isolate_delegate.Clear() |
632 | 638 |
OLD | NEW |