tests: support passing testcase after .t paths that have path separators
This probably could have been implemented by changing the regex above this bit
of code, but I wasn't sure if it would end up handling various OSes correctly,
so I decided to go with this version instead.
Previously:
$ tests/run-tests.py tests/test-ssh.t -l
running 2 tests using 2 parallel processes
..
# Ran 2 tests, 0 skipped, 0 failed.
$ tests/run-tests.py tests/test-ssh.t#sshv1 -l
running 0 tests using 0 parallel processes
# Ran 0 tests, 0 skipped, 0 failed.
Now:
$ tests/run-tests.py tests/test-ssh.t -l
running 2 tests using 2 parallel processes
..
# Ran 2 tests, 0 skipped, 0 failed.
$ tests/run-tests.py tests/test-ssh.t#sshv1 -l
running 1 tests using 1 parallel processes
.
# Ran 1 tests, 0 skipped, 0 failed.
Differential Revision: https://phab.mercurial-scm.org/D5535
--- a/tests/run-tests.py Tue Jan 08 09:43:24 2019 -0800
+++ b/tests/run-tests.py Tue Jan 08 17:52:39 2019 -0800
@@ -2794,9 +2794,10 @@
if not (os.path.basename(t).startswith(b'test-')
and (t.endswith(b'.py') or t.endswith(b'.t'))):
- m = testcasepattern.match(t)
+ m = testcasepattern.match(os.path.basename(t))
if m is not None:
- t, _, casestr = m.groups()
+ t_basename, _, casestr = m.groups()
+ t = os.path.join(os.path.dirname(t), t_basename)
if casestr:
case = casestr.split(b'#')
else: