From d1430f3d892fc12c98f74b9c1d95d1c34f02d2ea Mon Sep 17 00:00:00 2001 From: Eelco Chaudron Date: Thu, 10 Oct 2024 15:37:46 +0200 Subject: [PATCH] checkpatch: Fix checkpatch's check-authors-file option in CirrusCI. This patch makes sure that if git is missing it's not showing any errors on the standard output. Secondly the OVS_SRC_DIR environment variable is used to locate the OVS source directory. Fixes: a6ccd111552d ("checkpatch: Add new check-authors-file option to checkpatch.py.") Acked-by: Kevin Traynor Acked-by: Mike Pattrick Signed-off-by: Eelco Chaudron --- tests/checkpatch.at | 6 ++++-- utilities/checkpatch.py | 12 +++++++----- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/tests/checkpatch.at b/tests/checkpatch.at index fa179c707..2ed2ec878 100755 --- a/tests/checkpatch.at +++ b/tests/checkpatch.at @@ -29,11 +29,13 @@ Subject: Patch this is. fi if test -s expout; then - AT_CHECK([$PYTHON3 $top_srcdir/utilities/checkpatch.py $3 -q test.patch], + AT_CHECK([OVS_SRC_DIR=$top_srcdir $PYTHON3 \ + $top_srcdir/utilities/checkpatch.py $3 -q test.patch], [1], [stdout]) AT_CHECK([sed '/^Lines checked:/,$d' stdout], [0], [expout]) else - AT_CHECK([$PYTHON3 $top_srcdir/utilities/checkpatch.py $3 -q test.patch]) + AT_CHECK([OVS_SRC_DIR=$top_srcdir $PYTHON3 \ + $top_srcdir/utilities/checkpatch.py $3 -q test.patch]) fi } OVS_END_SHELL_HELPERS diff --git a/utilities/checkpatch.py b/utilities/checkpatch.py index 53b13bcf2..fe6aa79b0 100755 --- a/utilities/checkpatch.py +++ b/utilities/checkpatch.py @@ -18,6 +18,7 @@ import email import getopt import os import re +import subprocess import sys RETURN_CHECK_INITIAL_STATE = 0 @@ -867,13 +868,14 @@ def run_subject_checks(subject, spellcheck=False): def get_top_directory(): - with os.popen('git rev-parse --show-toplevel') as pipe: - path = pipe.read() + result = subprocess.run('git rev-parse --show-toplevel', + stdout=subprocess.PIPE, + stderr=subprocess.DEVNULL, shell=True) - if path: - return path.strip() + if result and result.returncode == 0: + return result.stdout.decode('utf-8').strip() - return "." + return os.getenv('OVS_SRC_DIR', '.') def update_missing_authors(diffed_line):