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

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: 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_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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698