From 7f22330c69635441c9b3a5718a8490b162ddb739 Mon Sep 17 00:00:00 2001 From: Liviu Rau Date: Mon, 13 Nov 2023 12:16:27 +0000 Subject: [PATCH] Make rdb status calculation reusable Bug:none Change-Id: Ie7058e40d6e0174af382ef8f4ecfb62403683890 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5017798 Reviewed-by: Scott Lee Commit-Queue: Liviu Rau --- presubmit_support.py | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/presubmit_support.py b/presubmit_support.py index fe21b398c..d30240d5f 100755 --- a/presubmit_support.py +++ b/presubmit_support.py @@ -1728,18 +1728,7 @@ class PresubmitExecuter(object): sys.stdout.write('%6.1fs to run %s from %s.\n' % (elapsed_time, function_name, presubmit_path)) if sink: - failure_reason = None - status = rdb_wrapper.STATUS_PASS - if any(r.fatal for r in result): - status = rdb_wrapper.STATUS_FAIL - failure_reasons = [] - for r in result: - fields = r.json_format() - message = fields['message'] - items = '\n'.join(' %s' % item for item in fields['items']) - failure_reasons.append('\n'.join([message, items])) - if failure_reasons: - failure_reason = '\n'.join(failure_reasons) + status, failure_reason = RDBStatusFrom(result) sink.report(function_name, status, elapsed_time, failure_reason) return result @@ -1757,6 +1746,23 @@ class PresubmitExecuter(object): 'output_api.PresubmitResult') +def RDBStatusFrom(result): + """Returns the status and failure reason for a PresubmitResult.""" + failure_reason = None + status = rdb_wrapper.STATUS_PASS + if any(r.fatal for r in result): + status = rdb_wrapper.STATUS_FAIL + failure_reasons = [] + for r in result: + fields = r.json_format() + message = fields['message'] + items = '\n'.join(' %s' % item for item in fields['items']) + failure_reasons.append('\n'.join([message, items])) + if failure_reasons: + failure_reason = '\n'.join(failure_reasons) + return status, failure_reason + + def DoPresubmitChecks(change, committing, verbose,