[PATCH 2 of 2] dispatch: mask negative exit code recorded in blackbox log
Yuya Nishihara
yuya at tcha.org
Wed May 16 08:19:38 EDT 2018
# HG changeset patch
# User Yuya Nishihara <yuya at tcha.org>
# Date 1526469743 -32400
# Wed May 16 20:22:23 2018 +0900
# Node ID a548e75b75e778f26a50b429fc7b31618cc34d3f
# Parent d5956b687bbc39c686390b45d08caea976b8b7dd
dispatch: mask negative exit code recorded in blackbox log
That's what we do for the exit code delivered to the environment.
diff --git a/mercurial/dispatch.py b/mercurial/dispatch.py
--- a/mercurial/dispatch.py
+++ b/mercurial/dispatch.py
@@ -239,7 +239,7 @@ def dispatch(req):
req.ui.log('uiblocked', 'ui blocked ms',
**pycompat.strkwargs(req.ui._blockedtimes))
req.ui.log("commandfinish", "%s exited %d after %0.2f seconds\n",
- msg, ret, duration)
+ msg, ret & 255, duration)
try:
req._runexithandlers()
except: # exiting, so no re-raises
diff --git a/tests/test-blackbox.t b/tests/test-blackbox.t
--- a/tests/test-blackbox.t
+++ b/tests/test-blackbox.t
@@ -7,6 +7,9 @@ setup
> @command(b'crash', [], b'hg crash')
> def crash(ui, *args, **kwargs):
> raise Exception("oops")
+ > @command(b'abort', [], b'hg abort')
+ > def abort(ui, *args, **kwargs):
+ > raise error.Abort(b"oops")
> EOF
$ abspath=`pwd`/myextension.py
@@ -44,6 +47,14 @@ failure exit code
1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> add non-existent exited 1 after * seconds (glob)
1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> blackbox
+abort exit code
+ $ rm ./.hg/blackbox.log
+ $ hg abort 2> /dev/null
+ [255]
+ $ hg blackbox -l 2
+ 1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> abort exited 255 after * seconds (glob)
+ 1970/01/01 00:00:00 bob @0000000000000000000000000000000000000000 (5000)> blackbox -l 2
+
unhandled exception
$ rm ./.hg/blackbox.log
$ hg crash 2> /dev/null
More information about the Mercurial-devel
mailing list