diff --git a/tests/run-tests.py b/tests/run-tests.py --- a/tests/run-tests.py +++ b/tests/run-tests.py @@ -2510,6 +2510,16 @@ class TestRunner(object): else: args = os.listdir(b'.') + expanded_args = [] + for arg in args: + if os.path.isdir(arg): + if not arg.endswith(b'/'): + arg += b'/' + expanded_args.extend([arg + a for a in os.listdir(arg)]) + else: + expanded_args.append(arg) + args = expanded_args + tests = [] for t in args: if not (os.path.basename(t).startswith(b'test-') 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 @@ -1261,6 +1261,24 @@ support for running a test outside the c . # Ran 1 tests, 0 skipped, 0 failed. +support for automatically discovering test if arg is a folder + $ mkdir tmp && cd tmp + + $ cat > test-uno.t << EOF + > $ echo line + > line + > EOF + + $ cp test-uno.t test-dos.t + $ cd .. + $ cp -R tmp tmpp + $ cp tmp/test-uno.t test-solo.t + + $ $PYTHON $TESTDIR/run-tests.py tmp/ test-solo.t tmpp + ..... + # Ran 5 tests, 0 skipped, 0 failed. + $ rm -rf tmp tmpp + support for running run-tests.py from another directory $ mkdir tmp && cd tmp $ cat > useful-file.sh << EOF