From d33ffb78aa9ce2ed5a5e41aefaebbb4a47c1b998 Mon Sep 17 00:00:00 2001 From: Moriyoshi Koizumi Date: Sun, 13 Jul 2003 08:03:46 +0000 Subject: [PATCH] Added regression test for proc_open() --- ext/standard/tests/file/proc_open01.phpt | 58 ++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 ext/standard/tests/file/proc_open01.phpt 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) +} -- 2.40.0