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):