Re: [PATCH] run-tests: $TESTDIR can be something else than $PWD

2017-11-02 Thread Yuya Nishihara
On Thu, 02 Nov 2017 22:37:45 +0900, matthieu.laneuvi...@octobus.net wrote:
> # HG changeset patch
> # User Matthieu Laneuville 
> # 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'] += '/'

Not work on Python 3 because of u'/' vs b'/' issue. Can you send a follow up?
___
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel


Re: [PATCH] run-tests: $TESTDIR can be something else than $PWD

2017-11-02 Thread Augie Fackler
queued, sure

> On Nov 2, 2017, at 09:37, matthieu.laneuvi...@octobus.net wrote:
> 
> # HG changeset patch
> # User Matthieu Laneuville 
> # 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@mercurial-scm.org
> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel

___
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel


[PATCH] run-tests: $TESTDIR can be something else than $PWD

2017-11-02 Thread matthieu . laneuville
# HG changeset patch
# User Matthieu Laneuville 
# 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.pyWed Nov 01 17:19:45 2017 -0500
+++ b/tests/run-tests.pyWed 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.tWed Nov 01 17:19:45 2017 -0500
+++ b/tests/test-run-tests.tWed 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@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel