changeset 37461:538353b80676

procutil: fix error message of tempfile filter First, we need to use procutil.system() to get an exit code compatible with explainexit(). Second, explainexit() returns (msg, code) tuple.
author Yuya Nishihara <yuya@tcha.org>
date Sat, 07 Apr 2018 21:17:50 +0900
parents a6c6b7beb025
children c0d0fd87ba7c
files mercurial/utils/procutil.py tests/test-encode.t
diffstat 2 files changed, 11 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/utils/procutil.py	Sat Apr 07 21:14:16 2018 +0900
+++ b/mercurial/utils/procutil.py	Sat Apr 07 21:17:50 2018 +0900
@@ -174,12 +174,12 @@
         os.close(outfd)
         cmd = cmd.replace('INFILE', inname)
         cmd = cmd.replace('OUTFILE', outname)
-        code = os.system(cmd)
+        code = system(cmd)
         if pycompat.sysplatform == 'OpenVMS' and code & 1:
             code = 0
         if code:
             raise error.Abort(_("command '%s' failed: %s") %
-                              (cmd, explainexit(code)))
+                              (cmd, explainexit(code)[0]))
         with open(outname, 'rb') as fp:
             return fp.read()
     finally:
--- a/tests/test-encode.t	Sat Apr 07 21:14:16 2018 +0900
+++ b/tests/test-encode.t	Sat Apr 07 21:17:50 2018 +0900
@@ -59,5 +59,14 @@
   this is a test
   $ hg -R .. cat --decode ../a.gz | gunzip
   this is a test
+  $ cd ..
+
+check tempfile filter
+
+  $ hg cat a.gz --decode --config 'decode.*.gz=tempfile:gzip -c INFILE > OUTFILE' | gunzip
+  this is a test
+  $ hg cat a.gz --decode --config 'decode.*.gz=tempfile:sh -c "exit 1"'
+  abort: command '*' failed: exited with status 1 (glob)
+  [255]
 
   $ cd ..