[ovs-dev] [PATCH v3] checkpatch: Normalize exit code for Windows
Alin Gabriel Serdean
aserdean at ovn.org
Wed Mar 13 14:03:46 UTC 2019
Using python `sys.exit(-1)` on Windows produces mixed results.
Let's take the following results from different shells:
CMD
>python -c "import sys; sys.exit(-1)" & echo %errorlevel%
1
MSYS
$ python -c "import sys; sys.exit(-1)" && echo $?
0
WSL
$ python -c "import sys; sys.exit(-1)"; echo $?
255
this results in the following tests to fail:
checkpatch
10: checkpatch - sign-offs FAILED (checkpatch.at:32)
11: checkpatch - parenthesized constructs FAILED (checkpatch.at:32)
12: checkpatch - parenthesized constructs - for FAILED (checkpatch.at:32)
13: checkpatch - comments FAILED (checkpatch.at:32)
because of:
./checkpatch.at:32: exit code was 0, expected 255
This patch introduces a positive constant for the default exit code.
Signed-off-by: Alin Gabriel Serdean <aserdean at ovn.org>
Acked-by: Ben Pfaff <blp at ovn.org>
Acked-by: Aaron Conole <aconole at redhat.com>
---
utilities/checkpatch.py | 23 ++++++++++++-----------
1 file changed, 12 insertions(+), 11 deletions(-)
diff --git a/utilities/checkpatch.py b/utilities/checkpatch.py
index 4164ea8ec..5d39691f4 100755
--- a/utilities/checkpatch.py
+++ b/utilities/checkpatch.py
@@ -24,6 +24,7 @@ import sys
RETURN_CHECK_INITIAL_STATE = 0
RETURN_CHECK_STATE_WITH_RETURN = 1
RETURN_CHECK_AWAITING_BRACE = 2
+EXIT_FAILURE = 255
__errors = 0
__warnings = 0
empty_return_check_state = 0
@@ -842,7 +843,7 @@ def ovs_checkpatch_parse(text, filename, author=None, committer=None):
run_file_checks(text)
if __errors or __warnings:
- return -1
+ return EXIT_FAILURE
return 0
@@ -868,10 +869,10 @@ Check options:
% sys.argv[0])
-def ovs_checkpatch_print_result(result):
+def ovs_checkpatch_print_result():
global quiet, __warnings, __errors, total_line
- if result < 0:
+ if __errors or __warnings:
print("Lines checked: %d, Warnings: %d, Errors: %d\n" %
(total_line, __warnings, __errors))
elif not quiet:
@@ -891,7 +892,7 @@ def ovs_checkpatch_file(filename):
result = ovs_checkpatch_parse(part.get_payload(decode=False), filename,
mail.get('Author', mail['From']),
mail['Commit'])
- ovs_checkpatch_print_result(result)
+ ovs_checkpatch_print_result()
return result
@@ -925,7 +926,7 @@ if __name__ == '__main__':
"quiet"])
except:
print("Unknown option encountered. Please rerun with -h for help.")
- sys.exit(-1)
+ sys.exit(EXIT_FAILURE)
for o, a in optlist:
if o in ("-h", "--help"):
@@ -951,7 +952,7 @@ if __name__ == '__main__':
quiet = True
else:
print("Unknown option '%s'" % o)
- sys.exit(-1)
+ sys.exit(EXIT_FAILURE)
if sys.stdout.isatty():
colors = True
@@ -977,17 +978,17 @@ Subject: %s
if not quiet:
print('== Checking %s ("%s") ==' % (revision[0:12], name))
result = ovs_checkpatch_parse(patch, revision)
- ovs_checkpatch_print_result(result)
+ ovs_checkpatch_print_result()
if result:
- status = -1
+ status = EXIT_FAILURE
sys.exit(status)
if not args:
if sys.stdin.isatty():
usage()
- sys.exit(-1)
+ sys.exit(EXIT_FAILURE)
result = ovs_checkpatch_parse(sys.stdin.read(), '-')
- ovs_checkpatch_print_result(result)
+ ovs_checkpatch_print_result()
sys.exit(result)
status = 0
@@ -996,5 +997,5 @@ Subject: %s
print('== Checking "%s" ==' % filename)
result = ovs_checkpatch_file(filename)
if result:
- status = -1
+ status = EXIT_FAILURE
sys.exit(status)
--
2.16.1.windows.1
More information about the dev
mailing list