| OLD | NEW |
| 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 303 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 314 | 314 |
| 315 Returns: | 315 Returns: |
| 316 The raw output of am instrument as a list of lines. | 316 The raw output of am instrument as a list of lines. |
| 317 """ | 317 """ |
| 318 extras = self._GetInstrumentationArgs() | 318 extras = self._GetInstrumentationArgs() |
| 319 extras['class'] = test | 319 extras['class'] = test |
| 320 return self.device.StartInstrumentation( | 320 return self.device.StartInstrumentation( |
| 321 '%s/%s' % (self.test_pkg.GetPackageName(), self.options.test_runner), | 321 '%s/%s' % (self.test_pkg.GetPackageName(), self.options.test_runner), |
| 322 raw=True, extras=extras, timeout=timeout, retries=0) | 322 raw=True, extras=extras, timeout=timeout, retries=0) |
| 323 | 323 |
| 324 def _GenerateTestResult(self, test, instr_statuses, start_ms, duration_ms): |
| 325 return instrumentation_test_instance.GenerateTestResult( |
| 326 test, instr_statuses, start_ms, duration_ms) |
| 327 |
| 324 #override | 328 #override |
| 325 def RunTest(self, test): | 329 def RunTest(self, test): |
| 326 results = base_test_result.TestRunResults() | 330 results = base_test_result.TestRunResults() |
| 327 timeout = (self._GetIndividualTestTimeoutSecs(test) * | 331 timeout = (self._GetIndividualTestTimeoutSecs(test) * |
| 328 self._GetIndividualTestTimeoutScale(test) * | 332 self._GetIndividualTestTimeoutScale(test) * |
| 329 self.tool.GetTimeoutScale()) | 333 self.tool.GetTimeoutScale()) |
| 330 if (self.device.build_version_sdk | 334 if (self.device.build_version_sdk |
| 331 < constants.ANDROID_SDK_VERSION_CODES.JELLY_BEAN): | 335 < constants.ANDROID_SDK_VERSION_CODES.JELLY_BEAN): |
| 332 timeout *= 10 | 336 timeout *= 10 |
| 333 | 337 |
| 334 start_ms = 0 | 338 start_ms = 0 |
| 335 duration_ms = 0 | 339 duration_ms = 0 |
| 336 try: | 340 try: |
| 337 self.TestSetup(test) | 341 self.TestSetup(test) |
| 338 | 342 |
| 339 time_ms = lambda: int(time.time() * 1000) | 343 time_ms = lambda: int(time.time() * 1000) |
| 340 start_ms = time_ms() | 344 start_ms = time_ms() |
| 341 raw_output = self._RunTest(test, timeout) | 345 raw_output = self._RunTest(test, timeout) |
| 342 duration_ms = time_ms() - start_ms | 346 duration_ms = time_ms() - start_ms |
| 343 | 347 |
| 344 # Parse the test output | 348 # Parse the test output |
| 345 _, _, statuses = ( | 349 _, _, statuses = ( |
| 346 instrumentation_test_instance.ParseAmInstrumentRawOutput(raw_output)) | 350 instrumentation_test_instance.ParseAmInstrumentRawOutput(raw_output)) |
| 347 result = instrumentation_test_instance.GenerateTestResult( | 351 result = self._GenerateTestResult(test, statuses, start_ms, duration_ms) |
| 348 test, statuses, start_ms, duration_ms) | |
| 349 if local_device_instrumentation_test_run.DidPackageCrashOnDevice( | 352 if local_device_instrumentation_test_run.DidPackageCrashOnDevice( |
| 350 self.test_pkg.GetPackageName(), self.device): | 353 self.test_pkg.GetPackageName(), self.device): |
| 351 result.SetType(base_test_result.ResultType.CRASH) | 354 result.SetType(base_test_result.ResultType.CRASH) |
| 352 results.AddResult(result) | 355 results.AddResult(result) |
| 353 except device_errors.CommandTimeoutError as e: | 356 except device_errors.CommandTimeoutError as e: |
| 354 results.AddResult(test_result.InstrumentationTestResult( | 357 results.AddResult(test_result.InstrumentationTestResult( |
| 355 test, base_test_result.ResultType.TIMEOUT, start_ms, duration_ms, | 358 test, base_test_result.ResultType.TIMEOUT, start_ms, duration_ms, |
| 356 log=str(e) or 'No information')) | 359 log=str(e) or 'No information')) |
| 357 except device_errors.DeviceUnreachableError as e: | 360 except device_errors.DeviceUnreachableError as e: |
| 358 results.AddResult(test_result.InstrumentationTestResult( | 361 results.AddResult(test_result.InstrumentationTestResult( |
| 359 test, base_test_result.ResultType.CRASH, start_ms, duration_ms, | 362 test, base_test_result.ResultType.CRASH, start_ms, duration_ms, |
| 360 log=str(e) or 'No information')) | 363 log=str(e) or 'No information')) |
| 361 self.TestTeardown(test, results) | 364 self.TestTeardown(test, results) |
| 362 return (results, None if results.DidRunPass() else test) | 365 return (results, None if results.DidRunPass() else test) |
| OLD | NEW |