Chromium Code Reviews| 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_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_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_install_script = args.apk_under_test_install_script | |
| 254 self._test_apk_install_script = args.test_apk_install_script | |
| 255 | |
| 256 if self._test_apk_install_script: | |
| 257 assert self._suite.endswith('_incremental') | |
| 258 self._suite = self._suite[:-12] | |
|
jbudorick
2016/02/09 20:08:26
nit: self._suite[:-len('_incremental')]
agrieve
2016/02/09 21:43:50
Done.
| |
| 254 | 259 |
| 255 self._test_jar = os.path.join( | 260 self._test_jar = os.path.join( |
| 256 constants.GetOutDirectory(), constants.SDK_BUILD_TEST_JAVALIB_DIR, | 261 constants.GetOutDirectory(), constants.SDK_BUILD_TEST_JAVALIB_DIR, |
| 257 '%s.jar' % self._suite) | 262 '%s.jar' % self._suite) |
| 258 self._test_support_apk = os.path.join( | 263 self._test_support_apk = apk_helper.ToHelper(os.path.join( |
| 259 constants.GetOutDirectory(), constants.SDK_BUILD_TEST_JAVALIB_DIR, | 264 constants.GetOutDirectory(), constants.SDK_BUILD_TEST_JAVALIB_DIR, |
| 260 '%sSupport.apk' % self._suite) | 265 '%sSupport.apk' % self._suite)) |
| 261 | 266 |
| 262 if not os.path.exists(self._test_apk): | 267 if not os.path.exists(self._test_apk.path): |
| 263 error_func('Unable to find test APK: %s' % self._test_apk) | 268 error_func('Unable to find test APK: %s' % self._test_apk.path) |
| 264 if not os.path.exists(self._test_jar): | 269 if not os.path.exists(self._test_jar): |
| 265 error_func('Unable to find test JAR: %s' % self._test_jar) | 270 error_func('Unable to find test JAR: %s' % self._test_jar) |
| 266 | 271 |
| 267 apk = apk_helper.ApkHelper(self.test_apk) | 272 self._test_package = self._test_apk.GetPackageName() |
| 268 self._test_package = apk.GetPackageName() | 273 self._test_runner = self._test_apk.GetInstrumentationName() |
| 269 self._test_permissions = apk.GetPermissions() | |
| 270 self._test_runner = apk.GetInstrumentationName() | |
| 271 | 274 |
| 272 self._package_info = None | 275 self._package_info = None |
| 273 for package_info in constants.PACKAGE_INFO.itervalues(): | 276 for package_info in constants.PACKAGE_INFO.itervalues(): |
| 274 if self._test_package == package_info.test_package: | 277 if self._test_package == package_info.test_package: |
| 275 self._package_info = package_info | 278 self._package_info = package_info |
| 276 if not self._package_info: | 279 if not self._package_info: |
| 277 logging.warning('Unable to find package info for %s', self._test_package) | 280 logging.warning('Unable to find package info for %s', self._test_package) |
| 278 | 281 |
| 279 for apk in args.additional_apks: | 282 for apk in args.additional_apks: |
| 280 if not os.path.exists(apk): | 283 if not os.path.exists(apk): |
| 281 error_func('Unable to find additional APK: %s' % apk) | 284 error_func('Unable to find additional APK: %s' % apk) |
| 282 self._additional_apks = args.additional_apks | 285 self._additional_apks = ( |
| 286 [apk_helper.ToHelper(x) for x in args.additional_apks]) | |
| 283 | 287 |
| 284 def _initializeDataDependencyAttributes(self, args, isolate_delegate): | 288 def _initializeDataDependencyAttributes(self, args, isolate_delegate): |
| 285 self._data_deps = [] | 289 self._data_deps = [] |
| 286 if args.isolate_file_path: | 290 if args.isolate_file_path: |
| 287 self._isolate_abs_path = os.path.abspath(args.isolate_file_path) | 291 self._isolate_abs_path = os.path.abspath(args.isolate_file_path) |
| 288 self._isolate_delegate = isolate_delegate | 292 self._isolate_delegate = isolate_delegate |
| 289 self._isolated_abs_path = os.path.join( | 293 self._isolated_abs_path = os.path.join( |
| 290 constants.GetOutDirectory(), '%s.isolated' % self._test_package) | 294 constants.GetOutDirectory(), '%s.isolated' % self._test_package) |
| 291 else: | 295 else: |
| 292 self._isolate_delegate = None | 296 self._isolate_delegate = None |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 365 | 369 |
| 366 @property | 370 @property |
| 367 def additional_apks(self): | 371 def additional_apks(self): |
| 368 return self._additional_apks | 372 return self._additional_apks |
| 369 | 373 |
| 370 @property | 374 @property |
| 371 def apk_under_test(self): | 375 def apk_under_test(self): |
| 372 return self._apk_under_test | 376 return self._apk_under_test |
| 373 | 377 |
| 374 @property | 378 @property |
| 375 def apk_under_test_permissions(self): | 379 def apk_under_test_install_script(self): |
| 376 return self._apk_under_test_permissions | 380 return self._apk_under_test_install_script |
| 377 | 381 |
| 378 @property | 382 @property |
| 379 def flags(self): | 383 def flags(self): |
| 380 return self._flags | 384 return self._flags |
| 381 | 385 |
| 382 @property | 386 @property |
| 383 def driver_apk(self): | 387 def driver_apk(self): |
| 384 return self._driver_apk | 388 return self._driver_apk |
| 385 | 389 |
| 386 @property | 390 @property |
| (...skipping 10 matching lines...) Expand all Loading... | |
| 397 | 401 |
| 398 @property | 402 @property |
| 399 def suite(self): | 403 def suite(self): |
| 400 return self._suite | 404 return self._suite |
| 401 | 405 |
| 402 @property | 406 @property |
| 403 def test_apk(self): | 407 def test_apk(self): |
| 404 return self._test_apk | 408 return self._test_apk |
| 405 | 409 |
| 406 @property | 410 @property |
| 411 def test_apk_install_script(self): | |
| 412 return self._test_apk_install_script | |
| 413 | |
| 414 @property | |
| 407 def test_jar(self): | 415 def test_jar(self): |
| 408 return self._test_jar | 416 return self._test_jar |
| 409 | 417 |
| 410 @property | 418 @property |
| 411 def test_support_apk(self): | 419 def test_support_apk(self): |
| 412 return self._test_support_apk | 420 return self._test_support_apk |
| 413 | 421 |
| 414 @property | 422 @property |
| 415 def test_package(self): | 423 def test_package(self): |
| 416 return self._test_package | 424 return self._test_package |
| 417 | 425 |
| 418 @property | 426 @property |
| 419 def test_permissions(self): | |
| 420 return self._test_permissions | |
| 421 | |
| 422 @property | |
| 423 def test_runner(self): | 427 def test_runner(self): |
| 424 return self._test_runner | 428 return self._test_runner |
| 425 | 429 |
| 426 @property | 430 @property |
| 427 def timeout_scale(self): | 431 def timeout_scale(self): |
| 428 return self._timeout_scale | 432 return self._timeout_scale |
| 429 | 433 |
| 430 #override | 434 #override |
| 431 def TestType(self): | 435 def TestType(self): |
| 432 return 'instrumentation' | 436 return 'instrumentation' |
| (...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 623 def GenerateTestResults( | 627 def GenerateTestResults( |
| 624 result_code, result_bundle, statuses, start_ms, duration_ms): | 628 result_code, result_bundle, statuses, start_ms, duration_ms): |
| 625 return GenerateTestResults(result_code, result_bundle, statuses, | 629 return GenerateTestResults(result_code, result_bundle, statuses, |
| 626 start_ms, duration_ms) | 630 start_ms, duration_ms) |
| 627 | 631 |
| 628 #override | 632 #override |
| 629 def TearDown(self): | 633 def TearDown(self): |
| 630 if self._isolate_delegate: | 634 if self._isolate_delegate: |
| 631 self._isolate_delegate.Clear() | 635 self._isolate_delegate.Clear() |
| 632 | 636 |
| OLD | NEW |