Skip to content

Commit

Permalink
checkpatch: Normalize exit code for Windows
Browse files Browse the repository at this point in the history
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 (1)
similar to other OVS utilities.

Signed-off-by: Alin Gabriel Serdean <[email protected]>
Acked-by: Ben Pfaff <[email protected]>
Acked-by: Aaron Conole <[email protected]>
  • Loading branch information
aserdean committed Apr 3, 2019
1 parent c4f8dc7 commit 241bc88
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 12 deletions.
2 changes: 1 addition & 1 deletion tests/checkpatch.at
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ try_checkpatch__() {
:
elif test -s expout; then
AT_CHECK([$2 $top_srcdir/utilities/checkpatch.py -q test.patch],
[255], [stdout])
[1], [stdout])
AT_CHECK([sed '/^Lines checked:/,$d' stdout], [0], [expout])
else
AT_CHECK([$2 $top_srcdir/utilities/checkpatch.py -q test.patch])
Expand Down
23 changes: 12 additions & 11 deletions utilities/checkpatch.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
RETURN_CHECK_INITIAL_STATE = 0
RETURN_CHECK_STATE_WITH_RETURN = 1
RETURN_CHECK_AWAITING_BRACE = 2
EXIT_FAILURE = 1
__errors = 0
__warnings = 0
empty_return_check_state = 0
Expand Down Expand Up @@ -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


Expand All @@ -868,10 +869,10 @@ def usage():
% 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:
Expand All @@ -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


Expand Down Expand Up @@ -925,7 +926,7 @@ def partition(pred, iterable):
"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"):
Expand All @@ -951,7 +952,7 @@ def partition(pred, iterable):
quiet = True
else:
print("Unknown option '%s'" % o)
sys.exit(-1)
sys.exit(EXIT_FAILURE)

if sys.stdout.isatty():
colors = True
Expand All @@ -977,17 +978,17 @@ def partition(pred, iterable):
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
Expand All @@ -996,5 +997,5 @@ def partition(pred, iterable):
print('== Checking "%s" ==' % filename)
result = ovs_checkpatch_file(filename)
if result:
status = -1
status = EXIT_FAILURE
sys.exit(status)

0 comments on commit 241bc88

Please sign in to comment.