1
0
mirror of https://github.com/php/php-src.git synced 2026-04-02 21:52:36 +02:00

MFB tests (they still fail though)

fix BC in fgetss()
This commit is contained in:
Antony Dovgal
2006-12-07 23:00:45 +00:00
parent 3e6c056584
commit 7ea07ff6dc
3 changed files with 157 additions and 0 deletions

View File

@@ -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;

View File

@@ -0,0 +1,83 @@
--TEST--
fgetss() tests
--FILE--
<?php
$filename = dirname(__FILE__)."/fgetss.html";
$array = array(
"askasdfasdf<b>aaaaaa\n</b>dddddd",
"asdqw<i onClick=\"hello();\">\naaaa<>qqqq",
"aaa<script>function foo() {}</script>qqq",
"asdasd<a\n asdjeje",
"",
"some text \n<b>blah</i>",
"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

View File

@@ -0,0 +1,69 @@
--TEST--
more fgetss() tests
--FILE--
<?php
$filename = dirname(__FILE__)."/fgetss1.html";
$array = array(
"askasdfasdf<b>aaaaaa\n</b>dddddd",
"asdqw<i onClick=\"hello();\">\naaaa<>qqqq",
"aaa<script>function foo() {}</script>qqq",
"asdasd<a\n asdjeje",
"",
"some text \n<b>blah</i>",
"some another text <> hoho </>"
);
foreach ($array as $str) {
file_put_contents($filename, $str);
$fp = fopen($filename, "r");
var_dump(fgetss($fp, 1000, "<i>,<b>,<a>"));
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, "<script>,<a>"));
}
@unlink($filename);
echo "Done\n";
?>
--EXPECTF--
string(21) "askasdfasdf<b>aaaaaa
"
string(6) "dddddd"
string(28) "asdqw<i onClick="hello();">
"
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(9) "t>functio"
string(6) "asdasd"
string(0) ""
bool(false)
bool(false)
string(9) "some text"
string(2) "
"
string(9) "some anot"
string(9) "her text "
Done