tests: stabilize test-fix.t on Windows
authorMatt Harbison <matt_harbison@yahoo.com>
Sat, 14 Sep 2019 12:11:03 -0400
changeset 42938 a2dffe68b4ea
parent 42937 69de49c4e39c
child 42939 06080afd0565
tests: stabilize test-fix.t on Windows `pwd` prints /tmp/... style paths, not C:\... needed for $TESTTMP to be substituted. In the final test, for whatever reason, Windows was missing EOL in the files and printing: [wdir] changedlines: printf: warning: ignoring excess arguments, starting with 'printf' even though it was trying to run: printf "Line ranges:\n"; printf "2 through 2\n"; I tried wrapping both :command and :linerange in `sh -c "..."`, and while that fixed the missing EOL, it missed the "2 through 2" output. Differential Revision: https://phab.mercurial-scm.org/D6852
tests/test-fix.t
--- a/tests/test-fix.t	Sun Sep 15 20:04:00 2019 -0700
+++ b/tests/test-fix.t	Sat Sep 14 12:11:03 2019 -0400
@@ -1297,7 +1297,7 @@
 
   $ cat >> .hg/hgrc <<EOF
   > [fix]
-  > printcwd:command = pwd
+  > printcwd:command = "$PYTHON" -c "import os; print(os.getcwd())"
   > printcwd:pattern = path:foo/bar
   > EOF
 
@@ -1382,9 +1382,15 @@
   $ printf "a\nc\n" > foo
   $ printf "a\nx\nc\n" > baz
 
+  $ cat >> print.py <<EOF
+  > import sys
+  > for a in sys.argv[1:]:
+  >    print(a)
+  > EOF
+
   $ hg fix --working-dir foo bar baz \
-  >        --config 'fix.changedlines:command=printf "Line ranges:\n"; ' \
-  >        --config 'fix.changedlines:linerange=printf "{first} through {last}\n"; ' \
+  >        --config "fix.changedlines:command=\"$PYTHON\" print.py \"Line ranges:\"" \
+  >        --config 'fix.changedlines:linerange="{first} through {last}"' \
   >        --config 'fix.changedlines:pattern=rootglob:**' \
   >        --config 'fix.changedlines:skipclean=false'