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 |