diff --git a/tests/run-tests.py b/tests/run-tests.py --- a/tests/run-tests.py +++ b/tests/run-tests.py @@ -1812,6 +1812,8 @@ class TestRunner(object): realfile = os.path.realpath(fileb) realdir = os.path.abspath(os.path.dirname(realfile)) path.insert(2, realdir) + if self._testdir != runtestdir: + path = [self._testdir] + path if self._tmpbindir != self._bindir: path = [self._tmpbindir] + path osenvironb[b"PATH"] = sepb.join(path) 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 @@ -602,3 +602,22 @@ running is placed. $ run-tests.py test-runtestdir.t . # Ran 1 tests, 0 skipped, 0 warned, 0 failed. + +#if execbit + +test that TESTDIR is referred in PATH + + $ cat > custom-command.sh < #!/bin/sh + > echo "hello world" + > EOF + $ chmod +x custom-command.sh + $ cat > test-testdir-path.t < $ custom-command.sh + > hello world + > EOF + $ run-tests.py test-testdir-path.t + . + # Ran 1 tests, 0 skipped, 0 warned, 0 failed. + +#endif