run-tests: allow test paths in other directories

Previously, test paths were assumed to be in the same directory and
wouldn't have a directory component. If a path with a directory
component was specified, it would be filtered out. This change allow
paths to contain directories. This in turn allows tests from other
directories to be executed.

Executing tests in other directories may break assumptions elsewhere in
the testing code. However, on initial glance, things appear to "just
work." This approach of running tests from other directories is
successfully being used at
https://hg.mozilla.org/hgcustom/version-control-tools/file/7085790ff3af/run-mercurial-tests.py
This commit is contained in:
Gregory Szorc 2014-03-24 22:12:37 -07:00
parent c299dbb10c
commit a283450c0f

View File

@ -939,7 +939,7 @@ def runone(options, test, count):
else:
return ignore("doesn't match keyword")
if not lctest.startswith("test-"):
if not os.path.basename(lctest).startswith("test-"):
return skip("not a test file")
for ext, func, out in testtypes:
if lctest.endswith(ext):
@ -1197,8 +1197,8 @@ def main(args, parser=None):
args = os.listdir(".")
tests = [t for t in args
if t.startswith("test-")
and (t.endswith(".py") or t.endswith(".t"))]
if os.path.basename(t).startswith("test-")
and (t.endswith(".py") or t.endswith(".t"))]
if options.random:
random.shuffle(tests)