From: Moriyoshi Koizumi Date: Sun, 13 Jul 2003 08:03:46 +0000 (+0000) Subject: Added regression test for proc_open() X-Git-Tag: BEFORE_ARG_INFO~265 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d33ffb78aa9ce2ed5a5e41aefaebbb4a47c1b998;p=php Added regression test for proc_open() --- diff --git a/ext/standard/tests/file/proc_open01.phpt b/ext/standard/tests/file/proc_open01.phpt new file mode 100644 index 0000000000..ab41a35819 --- /dev/null +++ b/ext/standard/tests/file/proc_open01.phpt @@ -0,0 +1,58 @@ +--TEST-- +proc_open() regression test 1 (proc_open() leak) +--FILE-- + array('pipe', 'r'), 1 => array('pipe', 'w')), + $pipes +); +if ($proc === false) { + print "something went wrong.\n"; +} +var_dump($pipes); +stream_set_blocking($pipes[1], FALSE); +$test_string = "yay!\n"; +fwrite($pipes[0], $test_string); +fflush($pipes[0]); +fclose($pipes[0]); +$cnt = ''; +for ($left = strlen($test_string); $left > 0;) { + $read_fds = array($pipes[1]); + $retval = stream_select($read_fds, $write_fds = NULL, $exp_fds = NULL, 1); + if ($retval === false) { + print "select() failed\n"; + break; + } + if ($retval === 0) { + print "timed out\n"; + break; + } + $buf = fread($pipes[1], 1024); + $cnt .= $buf; + $left -= strlen($buf); +} +var_dump($cnt); +fclose($pipes[1]); +proc_close($proc); +var_dump($orig_pipes); +?> +--EXPECTF-- +array(2) { + [0]=> + resource(%d) of type (stream) + [1]=> + resource(%d) of type (stream) +} +string(5) "yay! +" +array(3) { + [0]=> + int(1) + [1]=> + int(2) + [2]=> + int(3) +}