php-src/ext/standard/tests/file/fread_fwrite_basic.phpt
Peter Kokot d679f02295 Sync leading and final newlines in *.phpt sections
This patch adds missing newlines, trims multiple redundant final
newlines into a single one, and trims redundant leading newlines in all
*.phpt sections.

According to POSIX, a line is a sequence of zero or more non-' <newline>'
characters plus a terminating '<newline>' character. [1] Files should
normally have at least one final newline character.

C89 [2] and later standards [3] mention a final newline:
"A source file that is not empty shall end in a new-line character,
which shall not be immediately preceded by a backslash character."

Although it is not mandatory for all files to have a final newline
fixed, a more consistent and homogeneous approach brings less of commit
differences issues and a better development experience in certain text
editors and IDEs.

[1] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_206
[2] https://port70.net/~nsz/c/c89/c89-draft.html#2.1.1.2
[3] https://port70.net/~nsz/c/c99/n1256.html#5.1.1.2
2018-10-15 04:33:09 +02:00

72 lines
1.6 KiB
PHP

--TEST--
fread & fwrite - Test reading and writing using a single resource
--CREDITS--
Dave Kelsey <d_kelsey@uk.ibm.com>
--FILE--
<?php
/*
* proto int fwrite(resource fp, string str [, int length])
* Function is implemented in ext/standard/file.c
*/
/*
Prototype: string fread ( resource $handle [, int $length] );
Description: reads up to length bytes from the file pointer referenced by handle.
Reading stops when up to length bytes have been read, EOF (end of file) is
reached, (for network streams) when a packet becomes available, or (after
opening userspace stream) when 8192 bytes have been read whichever comes first.
*/
$outputfile = __FILE__.".tmp";
echo "--- testing rw moving about the file ---\n";
$h = fopen($outputfile, 'wb+');
$out1 = "The 1st prrt";
$out2 = " part of the ttxt";
$out3 = "text";
fwrite($h, $out1);
fseek($h, 0, SEEK_SET);
echo "start:".fread($h, strlen($out1) - 5). "\n";
fwrite($h, $out2);
echo "at end:".fread($h,100)."\n";
var_dump(feof($h));
fseek($h, -4, SEEK_CUR);
fwrite($h, $out3);
fseek($h, 0, SEEK_SET);
echo "final:".fread($h, 100)."\n";
fclose($h);
echo "--- testing eof ---\n";
$h = fopen($outputfile, 'ab+');
fread($h,1024);
var_dump(feof($h));
fread($h,1);
var_dump(feof($h));
$out = "extra";
fwrite($h, $out);
var_dump(feof($h));
fread($h,1);
var_dump(feof($h));
fseek($h, -strlen($out) + 1, SEEK_CUR);
echo "last bytes: ".fread($h, strlen($out))."\n";
fclose($h);
unlink($outputfile);
echo "Done";
?>
--EXPECT--
--- testing rw moving about the file ---
start:The 1st
at end:
bool(true)
final:The 1st part of the text
--- testing eof ---
bool(true)
bool(true)
bool(true)
bool(true)
last bytes: xtra
Done