[PATCH 2 of 3] run-tests: alias hg to hg.exe on Windows

Matt Harbison mharbison72 at gmail.com
Mon Dec 17 01:58:05 EST 2018


# HG changeset patch
# User Matt Harbison <matt_harbison at yahoo.com>
# Date 1544999811 18000
#      Sun Dec 16 17:36:51 2018 -0500
# Node ID 8b4f610c06528a66f6cd437aee1fd97f5dcea066
# Parent  1a2afc80fc6d8660bcafcf21bde92754b1bd0f18
run-tests: alias hg to hg.exe on Windows

To enable legacy stdio mode on Windows, hg.exe needs to be updated.  But before
that, we actually have to use it when running the tests.  I *think* what was
happening before was when MSYS invoked `hg`, it looked at the shbang line and
ran python.exe found there.  The test harness must be updating $PATH to include
the python used to launch it, and therefore it ran py3.  As a side note, this
also fixed `py -3 run-tests.py` (without --local), which complained about the
space in the shbang line before this.

This should also help in WSL, because the explicit '.exe' is needed to invoke a
Windows app instead of invoking the Linux app.

I have no idea why this change capitalizes Lib in the tests, as it was
previously lowercase for both py2 and py3.

diff --git a/tests/run-tests.py b/tests/run-tests.py
--- a/tests/run-tests.py
+++ b/tests/run-tests.py
@@ -2640,6 +2640,9 @@ class TestRunner(object):
             self._tmpbindir = self._bindir
             self._pythondir = os.path.join(self._installdir, b"lib", b"python")
 
+        if os.name == 'nt' and not self._hgcommand.endswith(b'.exe'):
+            self._hgcommand += b'.exe'
+
         # set CHGHG, then replace "hg" command by "chg"
         chgbindir = self._bindir
         if self.options.chg or self.options.with_chg:
diff --git a/tests/test-install.t b/tests/test-install.t
--- a/tests/test-install.t
+++ b/tests/test-install.t
@@ -4,7 +4,7 @@ hg debuginstall
   checking Python executable (*) (glob)
   checking Python version (2.*) (glob) (no-py3 !)
   checking Python version (3.*) (glob) (py3 !)
-  checking Python lib (*lib*)... (glob)
+  checking Python lib (.*[Ll]ib.*)... (re)
   checking Python security support (*) (glob)
     TLS 1.2 not supported by Python install; network connections lack modern security (?)
     SNI not supported by Python install; may have connectivity issues with some servers (?)
@@ -60,7 +60,7 @@ hg debuginstall with no username
   checking Python executable (*) (glob)
   checking Python version (2.*) (glob) (no-py3 !)
   checking Python version (3.*) (glob) (py3 !)
-  checking Python lib (*lib*)... (glob)
+  checking Python lib (.*[Ll]ib.*)... (re)
   checking Python security support (*) (glob)
     TLS 1.2 not supported by Python install; network connections lack modern security (?)
     SNI not supported by Python install; may have connectivity issues with some servers (?)
@@ -105,7 +105,7 @@ path variables are expanded (~ is the sa
   checking Python executable (*) (glob)
   checking Python version (2.*) (glob) (no-py3 !)
   checking Python version (3.*) (glob) (py3 !)
-  checking Python lib (*lib*)... (glob)
+  checking Python lib (.*[Ll]ib.*)... (re)
   checking Python security support (*) (glob)
     TLS 1.2 not supported by Python install; network connections lack modern security (?)
     SNI not supported by Python install; may have connectivity issues with some servers (?)
@@ -130,7 +130,7 @@ not found (this is intentionally using b
   checking Python executable (*) (glob)
   checking Python version (2.*) (glob) (no-py3 !)
   checking Python version (3.*) (glob) (py3 !)
-  checking Python lib (*lib*)... (glob)
+  checking Python lib (.*[Ll]ib.*)... (re)
   checking Python security support (*) (glob)
     TLS 1.2 not supported by Python install; network connections lack modern security (?)
     SNI not supported by Python install; may have connectivity issues with some servers (?)
diff --git a/tests/test-run-tests.t b/tests/test-run-tests.t
--- a/tests/test-run-tests.t
+++ b/tests/test-run-tests.t
@@ -644,12 +644,14 @@ Running In Debug Mode
 
   $ rt --debug 2>&1 | grep -v pwd
   running 2 tests using 1 parallel processes 
+  + alias hg=hg.exe (windows !)
   + echo *SALT* 0 0 (glob)
   *SALT* 0 0 (glob)
   + echo babar
   babar
   + echo *SALT* 10 0 (glob)
   *SALT* 10 0 (glob)
+  .+ alias hg=hg.exe (windows !)
   *+ echo *SALT* 0 0 (glob)
   *SALT* 0 0 (glob)
   + echo babar


More information about the Mercurial-devel mailing list