diff --git a/run-tests.php b/run-tests.php
index 5adfcd2991581..07e3d2d797d0b 100755
--- a/run-tests.php
+++ b/run-tests.php
@@ -318,219 +318,217 @@ function main()
}
}
- if (getenv('TEST_PHP_ARGS')) {
-
- if (!isset($argc, $argv) || !$argc) {
- $argv = array(__FILE__);
- }
+ if (!isset($argc, $argv) || !$argc) {
+ $argv = array(__FILE__);
+ $argc = 1;
+ }
+ if (getenv('TEST_PHP_ARGS')) {
$argv = array_merge($argv, explode(' ', getenv('TEST_PHP_ARGS')));
$argc = count($argv);
}
- if (isset($argc) && $argc > 1) {
+ for ($i = 1; $i < $argc; $i++) {
+ $is_switch = false;
+ $switch = substr($argv[$i], 1, 1);
+ $repeat = substr($argv[$i], 0, 1) == '-';
- for ($i = 1; $i < $argc; $i++) {
- $is_switch = false;
- $switch = substr($argv[$i], 1, 1);
- $repeat = substr($argv[$i], 0, 1) == '-';
+ while ($repeat) {
- while ($repeat) {
-
- if (!$is_switch) {
- $switch = substr($argv[$i], 1, 1);
- }
+ if (!$is_switch) {
+ $switch = substr($argv[$i], 1, 1);
+ }
- $is_switch = true;
+ $is_switch = true;
- if ($repeat) {
- foreach ($cfgtypes as $type) {
- if (strpos($switch, '--' . $type) === 0) {
- foreach ($cfgfiles as $file) {
- if ($switch == '--' . $type . '-' . $file) {
- $cfg[$type][$file] = true;
- $is_switch = false;
- break;
- }
+ if ($repeat) {
+ foreach ($cfgtypes as $type) {
+ if (strpos($switch, '--' . $type) === 0) {
+ foreach ($cfgfiles as $file) {
+ if ($switch == '--' . $type . '-' . $file) {
+ $cfg[$type][$file] = true;
+ $is_switch = false;
+ break;
}
}
}
}
+ }
- if (!$is_switch) {
- $is_switch = true;
- break;
- }
+ if (!$is_switch) {
+ $is_switch = true;
+ break;
+ }
- $repeat = false;
+ $repeat = false;
- switch ($switch) {
- case 'j':
- $workers = substr($argv[$i], 2);
- if (!preg_match('/^\d+$/', $workers) || $workers == 0) {
- error("'$workers' is not a valid number of workers, try e.g. -j16 for 16 workers");
- }
- $workers = intval($workers, 10);
- // Don't use parallel testing infrastructure if there is only one worker.
- if ($workers === 1) {
- $workers = null;
- }
- break;
- case 'r':
- case 'l':
- $test_list = file($argv[++$i]);
- if ($test_list) {
- foreach ($test_list as $test) {
- $matches = array();
- if (preg_match('/^#.*\[(.*)\]\:\s+(.*)$/', $test, $matches)) {
- $redir_tests[] = array($matches[1], $matches[2]);
- } else {
- if (strlen($test)) {
- $test_files[] = trim($test);
- }
+ switch ($switch) {
+ case 'j':
+ $workers = substr($argv[$i], 2);
+ if (!preg_match('/^\d+$/', $workers) || $workers == 0) {
+ error("'$workers' is not a valid number of workers, try e.g. -j16 for 16 workers");
+ }
+ $workers = intval($workers, 10);
+ // Don't use parallel testing infrastructure if there is only one worker.
+ if ($workers === 1) {
+ $workers = null;
+ }
+ break;
+ case 'r':
+ case 'l':
+ $test_list = file($argv[++$i]);
+ if ($test_list) {
+ foreach ($test_list as $test) {
+ $matches = array();
+ if (preg_match('/^#.*\[(.*)\]\:\s+(.*)$/', $test, $matches)) {
+ $redir_tests[] = array($matches[1], $matches[2]);
+ } else {
+ if (strlen($test)) {
+ $test_files[] = trim($test);
}
}
}
- if ($switch != 'l') {
- break;
- }
- $i--;
- // break left intentionally
- case 'w':
- $failed_tests_file = fopen($argv[++$i], 'w+t');
- break;
- case 'a':
- $failed_tests_file = fopen($argv[++$i], 'a+t');
- break;
- case 'W':
- $result_tests_file = fopen($argv[++$i], 'w+t');
- break;
- case 'c':
- $conf_passed = $argv[++$i];
- break;
- case 'd':
- $ini_overwrites[] = $argv[++$i];
- break;
- case 'g':
- $SHOW_ONLY_GROUPS = explode(",", $argv[++$i]);
- break;
- //case 'h'
- case '--keep-all':
- foreach ($cfgfiles as $file) {
- $cfg['keep'][$file] = true;
- }
- break;
- //case 'l'
- case 'm':
- $valgrind = new RuntestsValgrind($environment);
- break;
- case 'M':
- $valgrind = new RuntestsValgrind($environment, $argv[++$i]);
- break;
- case 'n':
- if (!$pass_option_n) {
- $pass_options .= ' -n';
- }
- $pass_option_n = true;
- break;
- case 'e':
- $pass_options .= ' -e';
- break;
- case '--preload':
- $preload = true;
- break;
- case '--no-clean':
- $no_clean = true;
- break;
- case 'p':
- $php = $argv[++$i];
- putenv("TEST_PHP_EXECUTABLE=$php");
- $environment['TEST_PHP_EXECUTABLE'] = $php;
- break;
- case 'P':
- $php = PHP_BINARY;
- putenv("TEST_PHP_EXECUTABLE=$php");
- $environment['TEST_PHP_EXECUTABLE'] = $php;
- break;
- case 'q':
- putenv('NO_INTERACTION=1');
- $environment['NO_INTERACTION'] = 1;
- break;
- //case 'r'
- case 's':
- $output_file = $argv[++$i];
- $just_save_results = true;
- break;
- case '--set-timeout':
- $environment['TEST_TIMEOUT'] = $argv[++$i];
- break;
- case '--show-all':
- foreach ($cfgfiles as $file) {
- $cfg['show'][$file] = true;
- }
- break;
- case '--show-slow':
- $slow_min_ms = $argv[++$i];
- break;
- case '--temp-source':
- $temp_source = $argv[++$i];
- break;
- case '--temp-target':
- $temp_target = $argv[++$i];
- if ($temp_urlbase) {
- $temp_urlbase = $temp_target;
- }
- break;
- case '--temp-urlbase':
- $temp_urlbase = $argv[++$i];
- break;
- case 'v':
- case '--verbose':
- $DETAILED = true;
- break;
- case 'x':
- $environment['SKIP_SLOW_TESTS'] = 1;
- break;
- case '--offline':
- $environment['SKIP_ONLINE_TESTS'] = 1;
- break;
- case '--shuffle':
- $shuffle = true;
- break;
- case '--asan':
- $environment['USE_ZEND_ALLOC'] = 0;
- $environment['USE_TRACKED_ALLOC'] = 1;
- $environment['SKIP_ASAN'] = 1;
- $environment['SKIP_PERF_SENSITIVE'] = 1;
-
- $lsanSuppressions = __DIR__ . '/azure/lsan-suppressions.txt';
- if (file_exists($lsanSuppressions)) {
- $environment['LSAN_OPTIONS'] = 'suppressions=' . $lsanSuppressions
- . ':print_suppressions=0';
- }
- break;
- //case 'w'
- case '-':
- // repeat check with full switch
- $switch = $argv[$i];
- if ($switch != '-') {
- $repeat = true;
- }
- break;
- case '--html':
- $html_file = fopen($argv[++$i], 'wt');
- $html_output = is_resource($html_file);
+ }
+ if ($switch != 'l') {
break;
- case '--version':
- echo '$Id$' . "\n";
- exit(1);
-
- default:
- echo "Illegal switch '$switch' specified!\n";
- case 'h':
- case '-help':
- case '--help':
- echo <<