run-tests: echo message and exit if no tests found

The test runner currently defaults to running the entire test suite if
no selected tests can be found. This can be unexpected.

For example the ext/mysqlnd/ directory has no tests, if you specify that
directory when testing the entire test suite will be run.

    run-tests.php [options] ext/mysqlnd/

Closes GH-5605.
This commit is contained in:
Gerard Roche 2020-05-20 16:45:14 +01:00 committed by Nikita Popov
parent 7f51f43509
commit 2ef88f517d

View File

@ -394,6 +394,7 @@ NO_PROC_OPEN_ERROR;
$temp_urlbase = null;
$conf_passed = null;
$no_clean = false;
$selected_tests = false;
$slow_min_ms = INF;
$preload = false;
$file_cache = null;
@ -634,6 +635,7 @@ NO_PROC_OPEN_ERROR;
}
if (!$is_switch) {
$selected_tests = true;
$testfile = realpath($argv[$i]);
if (!$testfile && strpos($argv[$i], '*') !== false && function_exists('glob')) {
@ -664,6 +666,11 @@ NO_PROC_OPEN_ERROR;
}
}
if ($selected_tests && count($test_files) === 0) {
echo "No tests found.\n";
return;
}
// Default to PHP_BINARY as executable
if (!isset($environment['TEST_PHP_EXECUTABLE'])) {
$php = PHP_BINARY;