def RunTest(self, test): results = base_test_result.TestRunResults() timeout = (self._GetIndividualTestTimeoutSecs(test) * self._GetIndividualTestTimeoutScale(test) * self.tool.GetTimeoutScale()) cmdline_parameters = self._GetTestCmdlineParameters(test) for flag_modifiers in cmdline_parameters: start_ms = 0 duration_ms = 0 try: if self._IsFreTest(test): flag_modifiers.remove.append('--disable-fre') self.TestSetup(test, flag_modifiers) try: self.device.GoHome() except device_errors.CommandTimeoutError: logging.exception('Failed to focus the launcher.') time_ms = lambda: int(time.time() * 1000) start_ms = time_ms() raw_output = self._RunTest(test, timeout) duration_ms = time_ms() - start_ms # Parse the test output result_code, result_bundle, statuses = ( instrumentation_test_instance.ParseAmInstrumentRawOutput( raw_output)) result = self._GenerateTestResult( test, result_code, result_bundle, statuses, start_ms, duration_ms) if local_device_instrumentation_test_run.DidPackageCrashOnDevice( self.test_pkg.GetPackageName(), self.device): result.SetType(base_test_result.ResultType.CRASH) except device_errors.CommandTimeoutError as e: result = test_result.InstrumentationTestResult( test, base_test_result.ResultType.TIMEOUT, start_ms, duration_ms, log=str(e) or 'No information') if self.package_info: self.device.ForceStop(self.package_info.package) self.device.ForceStop(self.package_info.test_package) except device_errors.DeviceUnreachableError as e: result = test_result.InstrumentationTestResult( test, base_test_result.ResultType.CRASH, start_ms, duration_ms, log=str(e) or 'No information') if len(cmdline_parameters) > 1: # Specify commandline flag modifications used in the test run result_name = result.GetName() if flag_modifiers.add: result_name = '%s with {%s}' % ( result_name, ' '.join(flag_modifiers.add)) if flag_modifiers.remove: result_name = '%s without {%s}' % ( result_name, ' '.join(flag_modifiers.remove)) result.SetName(result_name) results.AddResult(result) self.TestTeardown(test, results) return (results, None if results.DidRunPass() else test)
def RunTest(self, test): results = base_test_result.TestRunResults() timeout = (self._GetIndividualTestTimeoutSecs(test) * self._GetIndividualTestTimeoutScale(test) * self.tool.GetTimeoutScale()) start_ms = 0 duration_ms = 0 try: self.TestSetup(test) time_ms = lambda: int(time.time() * 1000) start_ms = time_ms() raw_output = self._RunTest(test, timeout) duration_ms = time_ms() - start_ms # Parse the test output result_code, result_bundle, statuses = ( instrumentation_test_instance.ParseAmInstrumentRawOutput(raw_output)) result = self._GenerateTestResult( test, result_code, result_bundle, statuses, start_ms, duration_ms) if local_device_instrumentation_test_run.DidPackageCrashOnDevice( self.test_pkg.GetPackageName(), self.device): result.SetType(base_test_result.ResultType.CRASH) results.AddResult(result) except device_errors.CommandTimeoutError as e: results.AddResult(test_result.InstrumentationTestResult( test, base_test_result.ResultType.TIMEOUT, start_ms, duration_ms, log=str(e) or 'No information')) except device_errors.DeviceUnreachableError as e: results.AddResult(test_result.InstrumentationTestResult( test, base_test_result.ResultType.CRASH, start_ms, duration_ms, log=str(e) or 'No information')) self.TestTeardown(test, results) return (results, None if results.DidRunPass() else test)
def testParseAmInstrumentRawOutput_nothing(self): code, result, statuses = ( instrumentation_test_instance.ParseAmInstrumentRawOutput([''])) self.assertEqual(None, code) self.assertEqual([], result) self.assertEqual([], statuses)