From: Anatol Belski Date: Tue, 30 Jun 2015 17:22:17 +0000 (+0200) Subject: added test for bug #69900 X-Git-Tag: php-7.1.0alpha3~25^2~51 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=5750058ddb18528909e1842985730b4e3223bcb0;p=php added test for bug #69900 --- diff --git a/ext/standard/tests/streams/proc_open_bug69900.phpt b/ext/standard/tests/streams/proc_open_bug69900.phpt new file mode 100644 index 0000000000..cbfc451864 --- /dev/null +++ b/ext/standard/tests/streams/proc_open_bug69900.phpt @@ -0,0 +1,69 @@ +--TEST-- +Bug #69900 Commandline input/output weird behaviour with STDIO +--FILE-- + array("blocking" => true)))); + +while(!feof($in)){ +$s = fgets($in); + fwrite(STDOUT, $s); +} + +?>'; +file_put_contents($fl, $test_content); + +$descriptorspec = array(0 => array("pipe", "r"),1 => array("pipe", "w"), 2 => array("file", "error-output.txt", "a")); +$pipes = array(); + +$process = proc_open(PHP_BINARY.' -f ' . $fl, $descriptorspec, $pipes, NULL, NULL, array("blocking_pipes" => true)); + +for($i = 0; $i < 10; $i++){ + fwrite($pipes[0], "hello$i\r\n"); + fflush($pipes[0]); + + $t0 = microtime(1); + $s = fgets($pipes[1]); + fflush($pipes[1]); + $t1 = microtime(1); + + echo $s; + echo "fgets() took ", (($t1 - $t0)*1000), "ms\n"; +} + +fclose($pipes[0]); +fclose($pipes[1]); + +proc_close($process); + +@unlink($fl); +?> +===DONE=== +--EXPECTF-- +hello0 +fgets() took %d.%dms +hello1 +fgets() took 0.%dms +hello2 +fgets() took 0.%dms +hello3 +fgets() took 0.%dms +hello4 +fgets() took 0.%dms +hello5 +fgets() took 0.%dms +hello6 +fgets() took 0.%dms +hello7 +fgets() took 0.%dms +hello8 +fgets() took 0.%dms +hello9 +fgets() took 0.%dms +===DONE===