diff options
author | Nikita Popov <nikita.ppv@gmail.com> | 2019-07-18 15:25:59 +0200 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2019-07-22 17:17:28 +0200 |
commit | d59aac58b3e7da7ad01a194fe9840d89725ea229 (patch) | |
tree | 5cfc4509f8aa6f9cb0c49df3530fb82c5b0456df /ext/standard/tests/file/007_variation13-win32.phpt | |
parent | c817b8020c8a835946681ca94b9257e78e64dad3 (diff) | |
download | php-git-d59aac58b3e7da7ad01a194fe9840d89725ea229.tar.gz |
Report errors from stream read and write operations
The php_stream_read() and php_stream_write() functions now return
an ssize_t value, with negative results indicating failure. Functions
like fread() and fwrite() will return false in that case.
As a special case, EWOULDBLOCK and EAGAIN on non-blocking streams
should not be regarded as error conditions, and be reported as
successful zero-length reads/writes instead. The handling of EINTR
remains unclear and is internally inconsistent (e.g. some code-paths
will automatically retry on EINTR, while some won't).
I'm landing this now to make sure the stream wrapper ops API changes
make it into 7.4 -- however, if the user-facing changes turn out to
be problematic we have the option of clamping negative returns to
zero in php_stream_read() and php_stream_write() to restore the
old behavior in a relatively non-intrusive manner.
Diffstat (limited to 'ext/standard/tests/file/007_variation13-win32.phpt')
-rw-r--r-- | ext/standard/tests/file/007_variation13-win32.phpt | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/ext/standard/tests/file/007_variation13-win32.phpt b/ext/standard/tests/file/007_variation13-win32.phpt index 12484cfcde..72292d057f 100644 --- a/ext/standard/tests/file/007_variation13-win32.phpt +++ b/ext/standard/tests/file/007_variation13-win32.phpt @@ -37,7 +37,7 @@ var_dump($file_handle); //Check for the content of handle var_dump( get_resource_type($file_handle) ); //Check for the type of resource var_dump( fwrite($file_handle, $string) ); //Check for write operation; passes; expected:size of the $string rewind($file_handle); -var_dump( fread($file_handle, 100) ); //Check for read operation; fails; expected: empty string +var_dump( fread($file_handle, 100) ); //Check for read operation; fails; expected: false var_dump( ftell($file_handle) ); //File pointer position after read operation, expected at the end of the file var_dump( fclose($file_handle) ); //Check for close operation on the file handle var_dump( get_resource_type($file_handle) ); //Check whether resource is lost after close operation @@ -56,7 +56,7 @@ unlink(__DIR__."/007_variation13.tmp"); resource(%d) of type (stream) string(6) "stream" int(37) -string(0) "" +bool(false) int(0) bool(true) string(7) "Unknown" |