[PATCH] run-tests: $TESTDIR can be something else than $PWD
Augie Fackler
raf at durin42.com
Thu Nov 2 10:01:59 EDT 2017
queued, sure
> On Nov 2, 2017, at 09:37, matthieu.laneuville at octobus.net wrote:
>
> # HG changeset patch
> # User Matthieu Laneuville <matthieu.laneuville at octobus.net>
> # Date 1501648065 -32400
> # Wed Aug 02 13:27:45 2017 +0900
> # Node ID c4cc170d65e2dbcb075d09c26f5884aa8c0ceb31
> # Parent 3ce0e4b51f789eff195ec900a07c1fa5e8d5c5f2
> # EXP-Topic hg122
> run-tests: $TESTDIR can be something else than $PWD
>
> $TESTDIR is expected to be the directory were the test lives, and is often used
> to reference helper functions. However, it is now set to $PWD at test invocation
> time, so if `run-tests.py` is called from another folder, the test will fail.
>
> The solution is to force $TESTDIR to be the base directory of the test itself,
> irrespective of where the runner is called from.
>
> diff -r 3ce0e4b51f78 -r c4cc170d65e2 tests/run-tests.py
> --- a/tests/run-tests.py Wed Nov 01 17:19:45 2017 -0500
> +++ b/tests/run-tests.py Wed Aug 02 13:27:45 2017 +0900
> @@ -2353,6 +2353,12 @@ class TestRunner(object):
>
> self._testdir = osenvironb[b'TESTDIR'] = getattr(
> os, 'getcwdb', os.getcwd)()
> + # assume all tests in same folder for now
> + if testdescs:
> + pathname = os.path.dirname(testdescs[0]['path'])
> + if pathname and not osenvironb[b'TESTDIR'].endswith('/'):
> + osenvironb[b'TESTDIR'] += '/'
> + osenvironb[b'TESTDIR'] += pathname
> if self.options.outputdir:
> self._outputdir = canonpath(_bytespath(self.options.outputdir))
> else:
> diff -r 3ce0e4b51f78 -r c4cc170d65e2 tests/test-run-tests.t
> --- a/tests/test-run-tests.t Wed Nov 01 17:19:45 2017 -0500
> +++ b/tests/test-run-tests.t Wed Aug 02 13:27:45 2017 +0900
> @@ -1261,6 +1261,22 @@ support for running a test outside the c
> .
> # Ran 1 tests, 0 skipped, 0 failed.
>
> +support for running run-tests.py from another directory
> + $ mkdir tmp && cd tmp
> + $ cat > useful-file.sh << EOF
> + > important command
> + > EOF
> +
> + $ cat > test-folder.t << EOF
> + > $ cat \$TESTDIR/useful-file.sh
> + > important command
> + > EOF
> +
> + $ cd ..
> + $ $PYTHON $TESTDIR/run-tests.py tmp/test-folder.t
> + .
> + # Ran 1 tests, 0 skipped, 0 failed.
> +
> support for bisecting failed tests automatically
> $ hg init bisect
> $ cd bisect
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at mercurial-scm.org
> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
More information about the Mercurial-devel
mailing list