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

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

Issue 1680233002: Android Add _incremental targets for instrumentation tests (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: add missing dep Created 4 years, 10 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 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
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
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
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
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
OLDNEW
« no previous file with comments | « build/android/pylib/host_driven/test_case.py ('k') | build/android/pylib/instrumentation/setup.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698