run-tests: avoid an early return
To fix the "python3 pointing to python2" we will also need to create a "python"
pointer. So we will need to create multiple pointer. So we need to stop using
early return.
We replace the early return with a loop and a continue, since the next
changeset will introduce that loop anyway.
Differential Revision: https://phab.mercurial-scm.org/D10942
--- a/tests/run-tests.py Fri Jul 02 22:53:17 2021 +0200
+++ b/tests/run-tests.py Fri Jul 02 22:58:04 2021 +0200
@@ -3540,22 +3540,23 @@
msg = "# Making python executable in test path a symlink to '%s'"
msg %= sysexecutable
vlog(msg)
- mypython = os.path.join(self._tmpbindir, pyexename)
- try:
- if os.readlink(mypython) == sysexecutable:
- return
- os.unlink(mypython)
- except OSError as err:
- if err.errno != errno.ENOENT:
- raise
- if self._findprogram(pyexename) != sysexecutable:
+ for pyexename in [pyexename]:
+ mypython = os.path.join(self._tmpbindir, pyexename)
try:
- os.symlink(sysexecutable, mypython)
- self._createdfiles.append(mypython)
+ if os.readlink(mypython) == sysexecutable:
+ continue
+ os.unlink(mypython)
except OSError as err:
- # child processes may race, which is harmless
- if err.errno != errno.EEXIST:
+ if err.errno != errno.ENOENT:
raise
+ if self._findprogram(pyexename) != sysexecutable:
+ try:
+ os.symlink(sysexecutable, mypython)
+ self._createdfiles.append(mypython)
+ except OSError as err:
+ # child processes may race, which is harmless
+ if err.errno != errno.EEXIST:
+ raise
else:
# Windows doesn't have `python3.exe`, and MSYS cannot understand the
# reparse point with that name provided by Microsoft. Create a