summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorSara Golemon <pollita@php.net>2017-11-13 06:11:59 -0500
committerSara Golemon <pollita@php.net>2017-11-13 09:40:34 -0500
commit0a45e8f096a04464bda6277c6f3d0b5461737a27 (patch)
tree11d15c12214d564c9ec22bca684f08986368dd59 /ext
parent704bcd385f4dfc28db54aa5d3c46c30ea1107695 (diff)
downloadphp-git-0a45e8f096a04464bda6277c6f3d0b5461737a27.tar.gz
Bugfix#75515 php://streams behaving greedily
5060fc23 attempted to fix #68948 by treating all non-uri streams as non-blocking, however php://fd/* streams (which includes stdin) may block if the other end of the IPC isn't finished. This represents a partial revert to the pre RC6 state, but includes an escape hatch for php://memory and php://temp streams which are local to the current process. This also restores stream_set_chunk_size test to previous state.
Diffstat (limited to 'ext')
-rw-r--r--ext/standard/tests/streams/stream_set_chunk_size.phpt10
1 files changed, 4 insertions, 6 deletions
diff --git a/ext/standard/tests/streams/stream_set_chunk_size.phpt b/ext/standard/tests/streams/stream_set_chunk_size.phpt
index 88f4897e93..ce272519c4 100644
--- a/ext/standard/tests/streams/stream_set_chunk_size.phpt
+++ b/ext/standard/tests/streams/stream_set_chunk_size.phpt
@@ -39,7 +39,7 @@ var_dump(fwrite($f, str_repeat('b', 3)));
echo "should return previous chunk size (1)\n";
var_dump(stream_set_chunk_size($f, 100));
-echo "should elicit 3 reads of size 100 (chunk size)\n";
+echo "should elicit one read of size 100 (chunk size)\n";
var_dump(strlen(fread($f, 250)));
echo "should elicit one read of size 100 (chunk size)\n";
var_dump(strlen(fread($f, 50)));
@@ -67,15 +67,13 @@ write with size: 1
int(3)
should return previous chunk size (1)
int(1)
-should elicit 3 reads of size 100 (chunk size)
-read with size: 100
-read with size: 100
+should elicit one read of size 100 (chunk size)
read with size: 100
-int(250)
+int(100)
should elicit one read of size 100 (chunk size)
+read with size: 100
int(50)
should elicit no read because there is sufficient cached data
-read with size: 100
int(50)
should elicit 2 writes of size 100 and one of size 50
write with size: 100