]> granicus.if.org Git - php/commitdiff
Two new options for Travis to come to terms with:
authorSteph Fox <sfox@php.net>
Thu, 19 Jun 2008 21:08:13 +0000 (21:08 +0000)
committerSteph Fox <sfox@php.net>
Thu, 19 Jun 2008 21:08:13 +0000 (21:08 +0000)
- --set-timeout <n> sets the timeout in seconds for the call to stream_select() during system_with_timeout()
- -x sets an environmental variable, SKIP_SLOW_TESTS, which can be checked for during a SKIPIF clause

and just for a special treat, you can have it from my working branch this time.

run-tests.php

index 8962c1f56600172bef8d3f76b4582c63ba6d7b6b..0697a57b5957ef0647a8cc8ce1ef9ad2d9869a8b 100755 (executable)
@@ -408,6 +408,9 @@ if (isset($argc) && $argc > 1) {
                                        $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;
@@ -430,6 +433,9 @@ if (isset($argc) && $argc > 1) {
                                        $DETAILED = true;
                                        break;
                                //case 'w'
+                               case 'x':
+                                       $environment['SKIP_SLOW_TESTS'] = 1;
+                                       break;
                                case '-':
                                        // repeat check with full switch
                                        $switch = $argv[$i];
@@ -924,18 +930,20 @@ function system_with_timeout($commandline, $env = null, $stdin = null)
        if (is_string($stdin)) {
                fwrite($pipes[0], $stdin);
        }
-       fclose($pipes[0]);
+
+       $timeout = $leak_check ? 300 : (isset($env['TEST_TIMEOUT']) ? $env['TEST_TIMEOUT'] : 60);
 
        while (true) {
                /* hide errors from interrupted syscalls */
                $r = $pipes;
                $w = null;
                $e = null;
-               $n = @stream_select($r, $w, $e, $leak_check ? 300 : 60);
+               $n = @stream_select($r, $w, $e, $timeout);
 
                if ($n === 0) {
                        /* timed out */
                        $data .= "\n ** ERROR: process timed out **\n";
+                       fclose($pipes[0]);
                        proc_terminate($proc);
                        return $data;
                } else if ($n > 0) {
@@ -951,6 +959,7 @@ function system_with_timeout($commandline, $env = null, $stdin = null)
        if ($stat['signaled']) {
                $data .= "\nTermsig=".$stat['stopsig'];
        }
+       fclose($pipes[0]);
        $code = proc_close($proc);
        return $data;
 }