diff --git a/presubmit_support.py b/presubmit_support.py index 5c715ad45..30c003601 100755 --- a/presubmit_support.py +++ b/presubmit_support.py @@ -1638,14 +1638,12 @@ class PresubmitExecuter(object): result = eval(function_name + '(*__args)', context) self._check_result_type(result) except Exception: - if sink: - elapsed_time = time_time() - start_time - sink.report(function_name, rdb_wrapper.STATUS_FAIL, elapsed_time) - # TODO(crbug.com/953884): replace reraise with native py3: - # raise .. from e - e_type, e_value, e_tb = sys.exc_info() - print('Evaluation of %s failed: %s' % (function_name, e_value)) - six.reraise(e_type, e_value, e_tb) + _, e_value, _ = sys.exc_info() + result = [ + OutputApi.PresubmitError( + 'Evaluation of %s failed: %s, %s' % + (function_name, e_value, traceback.format_exc())) + ] elapsed_time = time_time() - start_time if elapsed_time > 10.0: diff --git a/tests/presubmit_unittest.py b/tests/presubmit_unittest.py index 109d104f5..e47766a52 100755 --- a/tests/presubmit_unittest.py +++ b/tests/presubmit_unittest.py @@ -540,12 +540,6 @@ class PresubmitUnittest(PresubmitTestsBase): ' else:\n' ' return ()'), fake_presubmit)) - self.assertRaises( - presubmit.PresubmitFailure, executer.ExecPresubmitScript, - self.presubmit_text_prefix + - 'def CheckChangeOnCommit(input_api, output_api):\n' - ' return "foo"', fake_presubmit) - self.assertFalse( executer.ExecPresubmitScript( self.presubmit_text_prefix + @@ -561,12 +555,6 @@ class PresubmitUnittest(PresubmitTestsBase): ' input_api, output_api))\n' ' return results\n', fake_presubmit)) - self.assertRaises( - presubmit.PresubmitFailure, executer.ExecPresubmitScript, - self.presubmit_text_prefix + - 'def CheckChangeOnCommit(input_api, output_api):\n' - ' return ["foo"]', fake_presubmit) - def testExecPresubmitScriptWithResultDB(self): description_lines = ('Hello there', 'this is a change', 'BUG=123') files = [['A', 'foo\\blat.cc']] @@ -585,15 +573,6 @@ class PresubmitUnittest(PresubmitTestsBase): sink.report.assert_called_with('CheckChangeOnCommit', rdb_wrapper.STATUS_PASS, 0) - # STATUS_FAIL on exception - sink.reset_mock() - self.assertRaises( - Exception, executer.ExecPresubmitScript, self.presubmit_text_prefix + - 'def CheckChangeOnCommit(input_api, output_api):\n' - ' raise Exception("boom")', fake_presubmit) - sink.report.assert_called_with('CheckChangeOnCommit', - rdb_wrapper.STATUS_FAIL, 0) - # STATUS_FAIL on fatal error sink.reset_mock() executer.ExecPresubmitScript(