From: Antony Dovgal Date: Thu, 7 Dec 2006 23:00:45 +0000 (+0000) Subject: MFB tests (they still fail though) X-Git-Tag: RELEASE_1_0_0RC1~769 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7ea07ff6dcb89d4598929006593fc695a9e83f78;p=php MFB tests (they still fail though) fix BC in fgetss() --- diff --git a/ext/standard/file.c b/ext/standard/file.c index 457f1f2475..a9a6acd07c 100644 --- a/ext/standard/file.c +++ b/ext/standard/file.c @@ -1196,6 +1196,11 @@ PHPAPI PHP_FUNCTION(fgetss) php_stream_from_zval(stream, &zstream); + if (length > 0) { + /* For BC reasons, fgetss() should only return length-1 bytes. */ + length--; + } + if (stream->readbuf_type == IS_UNICODE) { UChar *buf = php_stream_get_line_ex(stream, IS_UNICODE, NULL_ZSTR, 0, length, &retlen); UChar *allowed = NULL; diff --git a/ext/standard/tests/file/fgetss.phpt b/ext/standard/tests/file/fgetss.phpt new file mode 100644 index 0000000000..b4ac21167b --- /dev/null +++ b/ext/standard/tests/file/fgetss.phpt @@ -0,0 +1,83 @@ +--TEST-- +fgetss() tests +--FILE-- +aaaaaa\ndddddd", + "asdqw\naaaa<>qqqq", + "aaaqqq", + "asdasdblah", + "some another text <> hoho " + ); + +foreach ($array as $str) { + file_put_contents($filename, $str); + $fp = fopen($filename, "r"); + var_dump(fgetss($fp)); + var_dump(fgetss($fp)); +} + +foreach ($array as $str) { + file_put_contents($filename, $str); + $fp = fopen($filename, "r"); + var_dump(fgetss($fp, 10)); + var_dump(fgetss($fp, 10)); +} + +var_dump(fgetss($fp, -10)); +var_dump(fgetss($fp, 0)); +fclose($fp); +var_dump(fgetss($fp, 0)); + +@unlink($filename); + +echo "Done\n"; +?> +--EXPECTF-- +string(18) "askasdfasdfaaaaaa +" +string(6) "dddddd" +string(6) "asdqw +" +string(8) "aaaaqqqq" +string(23) "aaafunction foo() {}qqq" +bool(false) +string(6) "asdasd" +string(0) "" +bool(false) +bool(false) +string(11) "some text +" +string(4) "blah" +string(24) "some another text hoho " +bool(false) +string(9) "askasdfas" +string(6) "dfaaaa" +string(5) "asdqw" +string(0) "" +string(3) "aaa" +string(7) "functio" +string(6) "asdasd" +string(0) "" +bool(false) +bool(false) +string(9) "some text" +string(2) " +" +string(9) "some anot" +string(9) "her text " + +Warning: fgetss(): Length parameter must be greater than 0 in %s on line %d +bool(false) + +Warning: fgetss(): Length parameter must be greater than 0 in %s on line %d +bool(false) + +Warning: fgetss(): %d is not a valid stream resource in %s on line %d +bool(false) +Done diff --git a/ext/standard/tests/file/fgetss1.phpt b/ext/standard/tests/file/fgetss1.phpt new file mode 100644 index 0000000000..96b8b6f532 --- /dev/null +++ b/ext/standard/tests/file/fgetss1.phpt @@ -0,0 +1,69 @@ +--TEST-- +more fgetss() tests +--FILE-- +aaaaaa\ndddddd", + "asdqw\naaaa<>qqqq", + "aaaqqq", + "asdasdblah", + "some another text <> hoho " + ); + +foreach ($array as $str) { + file_put_contents($filename, $str); + $fp = fopen($filename, "r"); + var_dump(fgetss($fp, 1000, ",,")); + var_dump(fgetss($fp)); +} + +foreach ($array as $str) { + file_put_contents($filename, $str); + $fp = fopen($filename, "r"); + var_dump(fgetss($fp, 10)); + var_dump(fgetss($fp, 10, "