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

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

Issue 812543002: Update from https://crrev.com/308331 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 6 years 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 (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 sys 10 import sys
(...skipping 281 matching lines...) Expand 10 before | Expand all | Expand 10 after
292 return 10 * 60 292 return 10 * 60
293 if 'EnormousTest' in annotations: 293 if 'EnormousTest' in annotations:
294 return 10 * 60 294 return 10 * 60
295 if 'LargeTest' in annotations or _PERF_TEST_ANNOTATION in annotations: 295 if 'LargeTest' in annotations or _PERF_TEST_ANNOTATION in annotations:
296 return 5 * 60 296 return 5 * 60
297 if 'MediumTest' in annotations: 297 if 'MediumTest' in annotations:
298 return 3 * 60 298 return 3 * 60
299 if 'SmallTest' in annotations: 299 if 'SmallTest' in annotations:
300 return 1 * 60 300 return 1 * 60
301 301
302 logging.warn(("Test size not found in annotations for test '{0}', using " + 302 logging.warn(("Test size not found in annotations for test '%s', using " +
303 "1 minute for timeout.").format(test)) 303 "1 minute for timeout.") % test)
304 return 1 * 60 304 return 1 * 60
305 305
306 def _RunTest(self, test, timeout): 306 def _RunTest(self, test, timeout):
307 """Runs a single instrumentation test. 307 """Runs a single instrumentation test.
308 308
309 Args: 309 Args:
310 test: Test class/method. 310 test: Test class/method.
311 timeout: Timeout time in seconds. 311 timeout: Timeout time in seconds.
312 312
313 Returns: 313 Returns:
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
436 436
437 return test_result.InstrumentationTestResult( 437 return test_result.InstrumentationTestResult(
438 test, result_type, start_ms, duration_ms, log=log) 438 test, result_type, start_ms, duration_ms, log=log)
439 439
440 #override 440 #override
441 def RunTest(self, test): 441 def RunTest(self, test):
442 results = base_test_result.TestRunResults() 442 results = base_test_result.TestRunResults()
443 timeout = (self._GetIndividualTestTimeoutSecs(test) * 443 timeout = (self._GetIndividualTestTimeoutSecs(test) *
444 self._GetIndividualTestTimeoutScale(test) * 444 self._GetIndividualTestTimeoutScale(test) *
445 self.tool.GetTimeoutScale()) 445 self.tool.GetTimeoutScale())
446 if (self.device.GetProp('ro.build.version.sdk') 446 if (self.device.build_version_sdk
447 < constants.ANDROID_SDK_VERSION_CODES.JELLY_BEAN): 447 < constants.ANDROID_SDK_VERSION_CODES.JELLY_BEAN):
448 timeout *= 10 448 timeout *= 10
449 449
450 start_ms = 0 450 start_ms = 0
451 duration_ms = 0 451 duration_ms = 0
452 try: 452 try:
453 self.TestSetup(test) 453 self.TestSetup(test)
454 454
455 time_ms = lambda: int(time.time() * 1000) 455 time_ms = lambda: int(time.time() * 1000)
456 start_ms = time_ms() 456 start_ms = time_ms()
457 raw_output = self._RunTest(test, timeout) 457 raw_output = self._RunTest(test, timeout)
458 duration_ms = time_ms() - start_ms 458 duration_ms = time_ms() - start_ms
459 459
460 # Parse the test output 460 # Parse the test output
461 _, _, statuses = self._ParseAmInstrumentRawOutput(raw_output) 461 _, _, statuses = self._ParseAmInstrumentRawOutput(raw_output)
462 result = self._GenerateTestResult(test, statuses, start_ms, duration_ms) 462 result = self._GenerateTestResult(test, statuses, start_ms, duration_ms)
463 results.AddResult(result) 463 results.AddResult(result)
464 except device_errors.CommandTimeoutError as e: 464 except device_errors.CommandTimeoutError as e:
465 results.AddResult(test_result.InstrumentationTestResult( 465 results.AddResult(test_result.InstrumentationTestResult(
466 test, base_test_result.ResultType.TIMEOUT, start_ms, duration_ms, 466 test, base_test_result.ResultType.TIMEOUT, start_ms, duration_ms,
467 log=str(e) or 'No information')) 467 log=str(e) or 'No information'))
468 except device_errors.DeviceUnreachableError as e: 468 except device_errors.DeviceUnreachableError as e:
469 results.AddResult(test_result.InstrumentationTestResult( 469 results.AddResult(test_result.InstrumentationTestResult(
470 test, base_test_result.ResultType.CRASH, start_ms, duration_ms, 470 test, base_test_result.ResultType.CRASH, start_ms, duration_ms,
471 log=str(e) or 'No information')) 471 log=str(e) or 'No information'))
472 self.TestTeardown(test, results) 472 self.TestTeardown(test, results)
473 return (results, None if results.DidRunPass() else test) 473 return (results, None if results.DidRunPass() else test)
OLDNEW
« no previous file with comments | « build/android/pylib/instrumentation/test_jar.py ('k') | build/android/pylib/perf/perf_control.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698