changeset 47063:1d075b857c90 stable

tests: ensure `$PYTHON` is quoted for Windows Global installs of python3 go into "Program Files", and tons of tests fail with mysterious errors if this isn't quoted. Most of this is a followup to 0826d684a1b5, but a some of these were existing issues. Shebang lines are ignored because quoting breaks direct execution- these will need to be launched indirectly with the quoted `$PYTHON` command. Differential Revision: https://phab.mercurial-scm.org/D10633
author Matt Harbison <matt_harbison@yahoo.com>
date Sat, 01 May 2021 00:41:43 -0400
parents f38bf44e077f
children 7383df4f6e19
files tests/library-infinitepush.sh tests/narrow-library.sh tests/remotefilelog-library.sh tests/test-check-pyflakes.t tests/test-convert-svn-encoding.t tests/test-fuzz-targets.t tests/test-infinitepush-ci.t tests/test-nointerrupt.t tests/test-remotefilelog-cacheprocess.t tests/test-remotefilelog-gc.t tests/test-remotefilelog-http.t tests/test-unified-test.t tests/test-update-atomic.t tests/test-verify-repo-operations.py
diffstat 14 files changed, 25 insertions(+), 25 deletions(-) [+]
line wrap: on
line diff
--- a/tests/library-infinitepush.sh	Fri Apr 30 16:13:02 2021 -0700
+++ b/tests/library-infinitepush.sh	Sat May 01 00:41:43 2021 -0400
@@ -15,7 +15,7 @@
 [extensions]
 infinitepush=
 [ui]
-ssh = $PYTHON "$TESTDIR/dummyssh"
+ssh = "$PYTHON" "$TESTDIR/dummyssh"
 [infinitepush]
 branchpattern=re:scratch/.*
 EOF
--- a/tests/narrow-library.sh	Fri Apr 30 16:13:02 2021 -0700
+++ b/tests/narrow-library.sh	Sat May 01 00:41:43 2021 -0400
@@ -2,7 +2,7 @@
 [extensions]
 narrow=
 [ui]
-ssh=$PYTHON "$RUNTESTDIR/dummyssh"
+ssh="$PYTHON" "$RUNTESTDIR/dummyssh"
 [experimental]
 changegroup3 = True
 EOF
--- a/tests/remotefilelog-library.sh	Fri Apr 30 16:13:02 2021 -0700
+++ b/tests/remotefilelog-library.sh	Sat May 01 00:41:43 2021 -0400
@@ -8,7 +8,7 @@
 rebase=
 strip=
 [ui]
-ssh=$PYTHON "$TESTDIR/dummyssh"
+ssh="$PYTHON" "$TESTDIR/dummyssh"
 [server]
 preferuncompressed=True
 [experimental]
@@ -67,7 +67,7 @@
 }
 
 ls_l() {
-  $PYTHON $TESTDIR/ls-l.py "$@"
+  "$PYTHON" $TESTDIR/ls-l.py "$@"
 }
 
 identifyrflcaps() {
--- a/tests/test-check-pyflakes.t	Fri Apr 30 16:13:02 2021 -0700
+++ b/tests/test-check-pyflakes.t	Sat May 01 00:41:43 2021 -0400
@@ -8,7 +8,7 @@
   $ cat > test.py <<EOF
   > print(undefinedname)
   > EOF
-  $ $PYTHON -m pyflakes test.py 2>/dev/null | "$TESTDIR/filterpyflakes.py"
+  $ "$PYTHON" -m pyflakes test.py 2>/dev/null | "$TESTDIR/filterpyflakes.py"
   test.py:1:* undefined name 'undefinedname' (glob)
   
   $ cd "`dirname "$TESTDIR"`"
@@ -18,7 +18,7 @@
   > -X mercurial/pycompat.py -X contrib/python-zstandard \
   > -X mercurial/thirdparty \
   > 2>/dev/null \
-  > | xargs $PYTHON -m pyflakes 2>/dev/null | "$TESTDIR/filterpyflakes.py"
+  > | xargs "$PYTHON" -m pyflakes 2>/dev/null | "$TESTDIR/filterpyflakes.py"
   contrib/perf.py:*:* undefined name 'xrange' (glob) (?)
   mercurial/hgweb/server.py:*:* undefined name 'reload' (glob) (?)
   mercurial/util.py:*:* undefined name 'file' (glob) (?)
--- a/tests/test-convert-svn-encoding.t	Fri Apr 30 16:13:02 2021 -0700
+++ b/tests/test-convert-svn-encoding.t	Sat May 01 00:41:43 2021 -0400
@@ -155,7 +155,7 @@
 
 Subversion sources don't support non-ASCII characters in HTTP(S) URLs.
 
-  $ XFF=$($PYTHON -c 'from mercurial.utils.procutil import stdout; stdout.write(b"\xff")')
+  $ XFF=$("$PYTHON" -c 'from mercurial.utils.procutil import stdout; stdout.write(b"\xff")')
   $ hg convert --source-type=svn http://localhost:$HGPORT/$XFF test
   initializing destination test repository
   Subversion sources don't support non-ASCII characters in HTTP(S) URLs. Please percent-encode them.
--- a/tests/test-fuzz-targets.t	Fri Apr 30 16:13:02 2021 -0700
+++ b/tests/test-fuzz-targets.t	Sat May 01 00:41:43 2021 -0400
@@ -29,7 +29,7 @@
 Try to find a python3-config that's next to our sys.executable. If
 that doesn't work, fall back to looking for a global python3-config
 and hope that works out for the best.
-  $ PYBIN=`$PYTHON -c 'import sys, os; print(os.path.dirname(sys.executable))'`
+  $ PYBIN=`"$PYTHON" -c 'import sys, os; print(os.path.dirname(sys.executable))'`
   $ if [ -x "$PYBIN/python3-config" ] ; then
   >   PYTHON_CONFIG="$PYBIN/python3-config"
   > else
--- a/tests/test-infinitepush-ci.t	Fri Apr 30 16:13:02 2021 -0700
+++ b/tests/test-infinitepush-ci.t	Sat May 01 00:41:43 2021 -0400
@@ -10,7 +10,7 @@
   $ . "$TESTDIR/library-infinitepush.sh"
   $ cat >> $HGRCPATH <<EOF
   > [ui]
-  > ssh = $PYTHON "$TESTDIR/dummyssh"
+  > ssh = "$PYTHON" "$TESTDIR/dummyssh"
   > [alias]
   > glog = log -GT "{rev}:{node|short} {desc}\n{phase}"
   > EOF
--- a/tests/test-nointerrupt.t	Fri Apr 30 16:13:02 2021 -0700
+++ b/tests/test-nointerrupt.t	Sat May 01 00:41:43 2021 -0400
@@ -59,7 +59,7 @@
   > EOF
 
 Test ctrl-c
-  $ $PYTHON $TESTTMP/timeout.py -s INT 1 hg sleep 2
+  $ "$PYTHON" $TESTTMP/timeout.py -s INT 1 hg sleep 2
   interrupted!
   [124]
 
@@ -68,7 +68,7 @@
   > nointerrupt = yes
   > EOF
 
-  $ $PYTHON $TESTTMP/timeout.py -s INT 1 hg sleep 2
+  $ "$PYTHON" $TESTTMP/timeout.py -s INT 1 hg sleep 2
   interrupted!
   [124]
 
@@ -77,7 +77,7 @@
   > nointerrupt-interactiveonly = False
   > EOF
 
-  $ $PYTHON $TESTTMP/timeout.py -s INT 1 hg sleep 2
+  $ "$PYTHON" $TESTTMP/timeout.py -s INT 1 hg sleep 2
   shutting down cleanly
   press ^C again to terminate immediately (dangerous)
   end of unsafe operation
--- a/tests/test-remotefilelog-cacheprocess.t	Fri Apr 30 16:13:02 2021 -0700
+++ b/tests/test-remotefilelog-cacheprocess.t	Sat May 01 00:41:43 2021 -0400
@@ -66,7 +66,7 @@
 
   $ cat >> $HGRCPATH <<EOF
   > [remotefilelog]
-  > cacheprocess = $PYTHON $TESTTMP/cacheprocess-logger.py
+  > cacheprocess = "$PYTHON" $TESTTMP/cacheprocess-logger.py
   > EOF
 
 Test cache keys and cache misses.
--- a/tests/test-remotefilelog-gc.t	Fri Apr 30 16:13:02 2021 -0700
+++ b/tests/test-remotefilelog-gc.t	Sat May 01 00:41:43 2021 -0400
@@ -40,7 +40,7 @@
 
 # gc client cache
 
-  $ lastweek=`$PYTHON -c 'import datetime,time; print(datetime.datetime.fromtimestamp(time.time() - (86400 * 7)).strftime("%y%m%d%H%M"))'`
+  $ lastweek=`"$PYTHON" -c 'import datetime,time; print(datetime.datetime.fromtimestamp(time.time() - (86400 * 7)).strftime("%y%m%d%H%M"))'`
   $ find $CACHEDIR -type f -exec touch -t $lastweek {} \;
 
   $ find $CACHEDIR -type f | sort
--- a/tests/test-remotefilelog-http.t	Fri Apr 30 16:13:02 2021 -0700
+++ b/tests/test-remotefilelog-http.t	Sat May 01 00:41:43 2021 -0400
@@ -14,7 +14,7 @@
   $ hg serve -p $HGPORT -d --pid-file=../hg1.pid -E ../error.log -A ../access.log
 
 Build a query string for later use:
-  $ GET=`hg debugdata -m 0 | $PYTHON -c \
+  $ GET=`hg debugdata -m 0 | "$PYTHON" -c \
   > 'import sys ; print([("?cmd=x_rfl_getfile&file=%s&node=%s" % tuple(s.split("\0"))) for s in sys.stdin.read().splitlines()][0])'`
 
   $ cd ..
--- a/tests/test-unified-test.t	Fri Apr 30 16:13:02 2021 -0700
+++ b/tests/test-unified-test.t	Sat May 01 00:41:43 2021 -0400
@@ -77,12 +77,12 @@
 
 Escapes:
 
-  $ $PYTHON -c 'from mercurial.utils.procutil import stdout; stdout.write(b"\xff")'
+  $ "$PYTHON" -c 'from mercurial.utils.procutil import stdout; stdout.write(b"\xff")'
   \xff (no-eol) (esc)
 
 Escapes with conditions:
 
-  $ $PYTHON -c 'from mercurial.utils.procutil import stdout; stdout.write(b"\xff")'
+  $ "$PYTHON" -c 'from mercurial.utils.procutil import stdout; stdout.write(b"\xff")'
   \xff (no-eol) (esc) (true !)
 
 Combining esc with other markups - and handling lines ending with \r instead of \n:
--- a/tests/test-update-atomic.t	Fri Apr 30 16:13:02 2021 -0700
+++ b/tests/test-update-atomic.t	Sat May 01 00:41:43 2021 -0400
@@ -54,7 +54,7 @@
   $ hg update -r 1 --config extensions.showwrites=.hg/showwrites.py 2>&1 | grep "a1'.*wb"
   ('vfs open', ('a1', 'wb'), [('atomictemp', False), ('backgroundclose', True)])
 
-  $ $PYTHON $TESTTMP/show_mode.py *
+  $ "$PYTHON" $TESTTMP/show_mode.py *
   a1:0644
   a2:0755
   b1:0644
@@ -76,7 +76,7 @@
   $ hg update -r 1
   6 files updated, 0 files merged, 1 files removed, 0 files unresolved
 
-  $ $PYTHON $TESTTMP/show_mode.py *
+  $ "$PYTHON" $TESTTMP/show_mode.py *
   a1:0644
   a2:0755
   b1:0644
@@ -88,7 +88,7 @@
 
   $ chmod a-w ro
 
-  $ $PYTHON $TESTTMP/show_mode.py ro
+  $ "$PYTHON" $TESTTMP/show_mode.py ro
   ro:0444
 
 Now the file is present, try to update and check the permissions of the file
@@ -96,7 +96,7 @@
   $ hg up -r 2
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
-  $ $PYTHON $TESTTMP/show_mode.py ro
+  $ "$PYTHON" $TESTTMP/show_mode.py ro
   ro:0644
 
 # The file which was read-only is now writable in the default behavior
@@ -121,7 +121,7 @@
   C ro
 
 Check the file permission after update
-  $ $PYTHON $TESTTMP/show_mode.py *
+  $ "$PYTHON" $TESTTMP/show_mode.py *
   a1:0644
   a2:0755
   b1:0644
@@ -133,7 +133,7 @@
 
   $ chmod a-w ro
 
-  $ $PYTHON $TESTTMP/show_mode.py ro
+  $ "$PYTHON" $TESTTMP/show_mode.py ro
   ro:0444
 
 Now the file is present, try to update and check the permissions of the file
@@ -141,7 +141,7 @@
   $ hg update -r 2 --traceback
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
-  $ $PYTHON $TESTTMP/show_mode.py ro
+  $ "$PYTHON" $TESTTMP/show_mode.py ro
   ro:0644
 
 # The behavior is the same as without atomic update
--- a/tests/test-verify-repo-operations.py	Fri Apr 30 16:13:02 2021 -0700
+++ b/tests/test-verify-repo-operations.py	Sat May 01 00:41:43 2021 -0400
@@ -354,7 +354,7 @@
             o.write(content)
         self.log.append(
             (
-                "$ $PYTHON -c 'import binascii; "
+                "$ \"$PYTHON\" -c 'import binascii; "
                 "print(binascii.unhexlify(\"%s\"))' > %s"
             )
             % (