parent
1ec0f3a2e0
commit
10fd8fe0ce
740 changed files with 79880 additions and 0 deletions
@ -0,0 +1,88 @@ |
||||
--TEST-- |
||||
Testing randomization of shuffle() and str_shuffle(). |
||||
--SKIPIF-- |
||||
<?php |
||||
echo 'skip AOT limitation'; |
||||
?> |
||||
--FILE-- |
||||
<?php |
||||
function stats($f, $a) { |
||||
$times = 90000; |
||||
print "$f\n"; |
||||
ksort($a); |
||||
foreach($a as $k => $v) |
||||
print "$k: $v: " . sprintf('%0.3f', $v / $times) . "\n"; |
||||
} |
||||
$a = array(); |
||||
$times = 90000; |
||||
for ($i = 0; $i < $times; $i++) { |
||||
$p = range(1,4); |
||||
shuffle($p); |
||||
$s = join('', $p); |
||||
if (empty($a[$s])) $a[$s] = 0; |
||||
$a[$s]++; |
||||
} |
||||
|
||||
stats('shuffle', $a); |
||||
$a = array(); |
||||
$times = 90000; |
||||
for ($i = 0; $i < $times; $i++) { |
||||
$p = '1234'; |
||||
$s = str_shuffle($p); |
||||
if (empty($a[$s])) $a[$s] = 0; |
||||
$a[$s]++; |
||||
} |
||||
|
||||
stats('str_shuffle', $a); |
||||
?> |
||||
--EXPECTREGEX-- |
||||
shuffle |
||||
1234: [34][0-9][0-9][0-9]: 0.0[3-4][0-9] |
||||
1243: [34][0-9][0-9][0-9]: 0.0[3-4][0-9] |
||||
1324: [34][0-9][0-9][0-9]: 0.0[3-4][0-9] |
||||
1342: [34][0-9][0-9][0-9]: 0.0[3-4][0-9] |
||||
1423: [34][0-9][0-9][0-9]: 0.0[3-4][0-9] |
||||
1432: [34][0-9][0-9][0-9]: 0.0[3-4][0-9] |
||||
2134: [34][0-9][0-9][0-9]: 0.0[3-4][0-9] |
||||
2143: [34][0-9][0-9][0-9]: 0.0[3-4][0-9] |
||||
2314: [34][0-9][0-9][0-9]: 0.0[3-4][0-9] |
||||
2341: [34][0-9][0-9][0-9]: 0.0[3-4][0-9] |
||||
2413: [34][0-9][0-9][0-9]: 0.0[3-4][0-9] |
||||
2431: [34][0-9][0-9][0-9]: 0.0[3-4][0-9] |
||||
3124: [34][0-9][0-9][0-9]: 0.0[3-4][0-9] |
||||
3142: [34][0-9][0-9][0-9]: 0.0[3-4][0-9] |
||||
3214: [34][0-9][0-9][0-9]: 0.0[3-4][0-9] |
||||
3241: [34][0-9][0-9][0-9]: 0.0[3-4][0-9] |
||||
3412: [34][0-9][0-9][0-9]: 0.0[3-4][0-9] |
||||
3421: [34][0-9][0-9][0-9]: 0.0[3-4][0-9] |
||||
4123: [34][0-9][0-9][0-9]: 0.0[3-4][0-9] |
||||
4132: [34][0-9][0-9][0-9]: 0.0[3-4][0-9] |
||||
4213: [34][0-9][0-9][0-9]: 0.0[3-4][0-9] |
||||
4231: [34][0-9][0-9][0-9]: 0.0[3-4][0-9] |
||||
4312: [34][0-9][0-9][0-9]: 0.0[3-4][0-9] |
||||
4321: [34][0-9][0-9][0-9]: 0.0[3-4][0-9] |
||||
str_shuffle |
||||
1234: [34][0-9][0-9][0-9]: 0.0[3-4][0-9] |
||||
1243: [34][0-9][0-9][0-9]: 0.0[3-4][0-9] |
||||
1324: [34][0-9][0-9][0-9]: 0.0[3-4][0-9] |
||||
1342: [34][0-9][0-9][0-9]: 0.0[3-4][0-9] |
||||
1423: [34][0-9][0-9][0-9]: 0.0[3-4][0-9] |
||||
1432: [34][0-9][0-9][0-9]: 0.0[3-4][0-9] |
||||
2134: [34][0-9][0-9][0-9]: 0.0[3-4][0-9] |
||||
2143: [34][0-9][0-9][0-9]: 0.0[3-4][0-9] |
||||
2314: [34][0-9][0-9][0-9]: 0.0[3-4][0-9] |
||||
2341: [34][0-9][0-9][0-9]: 0.0[3-4][0-9] |
||||
2413: [34][0-9][0-9][0-9]: 0.0[3-4][0-9] |
||||
2431: [34][0-9][0-9][0-9]: 0.0[3-4][0-9] |
||||
3124: [34][0-9][0-9][0-9]: 0.0[3-4][0-9] |
||||
3142: [34][0-9][0-9][0-9]: 0.0[3-4][0-9] |
||||
3214: [34][0-9][0-9][0-9]: 0.0[3-4][0-9] |
||||
3241: [34][0-9][0-9][0-9]: 0.0[3-4][0-9] |
||||
3412: [34][0-9][0-9][0-9]: 0.0[3-4][0-9] |
||||
3421: [34][0-9][0-9][0-9]: 0.0[3-4][0-9] |
||||
4123: [34][0-9][0-9][0-9]: 0.0[3-4][0-9] |
||||
4132: [34][0-9][0-9][0-9]: 0.0[3-4][0-9] |
||||
4213: [34][0-9][0-9][0-9]: 0.0[3-4][0-9] |
||||
4231: [34][0-9][0-9][0-9]: 0.0[3-4][0-9] |
||||
4312: [34][0-9][0-9][0-9]: 0.0[3-4][0-9] |
||||
4321: [34][0-9][0-9][0-9]: 0.0[3-4][0-9] |
||||
@ -0,0 +1,28 @@ |
||||
--TEST-- |
||||
highlight_string(), output buffer and error level |
||||
--SKIPIF-- |
||||
<?php |
||||
echo 'skip AOT limitation'; |
||||
?> |
||||
--INI-- |
||||
error_reporting=8192 |
||||
--FILE-- |
||||
<?php |
||||
|
||||
echo "hello\n"; |
||||
|
||||
$string = str_repeat("A", 1024); |
||||
|
||||
var_dump(error_reporting()); |
||||
highlight_string($string, true); |
||||
var_dump(ob_get_contents()); |
||||
var_dump(error_reporting()); |
||||
|
||||
echo "Done\n"; |
||||
?> |
||||
--EXPECT-- |
||||
hello |
||||
int(8192) |
||||
bool(false) |
||||
int(8192) |
||||
Done |
||||
@ -0,0 +1,21 @@ |
||||
--TEST-- |
||||
highlight_file() and output buffer |
||||
--SKIPIF-- |
||||
<?php |
||||
echo 'skip AOT limitation'; |
||||
?> |
||||
--FILE-- |
||||
<?php |
||||
|
||||
$file = str_repeat("A", 1024); |
||||
|
||||
var_dump(highlight_file($file, true)); |
||||
var_dump(ob_get_contents()); |
||||
|
||||
?> |
||||
--EXPECTF-- |
||||
Warning: highlight_file(AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA): Failed to open stream: %s006.php on line %d |
||||
|
||||
Warning: highlight_file(): Failed opening 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' for highlighting in %s006.php on line %d |
||||
bool(false) |
||||
bool(false) |
||||
@ -0,0 +1,16 @@ |
||||
--TEST-- |
||||
php_strip_whitespace() and output buffer |
||||
--SKIPIF-- |
||||
<?php if( substr(PHP_OS, 0, 3) != "WIN") die('skip Windows only test');?> |
||||
--FILE-- |
||||
<?php |
||||
$file = str_repeat("A", PHP_MAXPATHLEN - strlen(__DIR__ . DIRECTORY_SEPARATOR . __FILE__)); |
||||
|
||||
var_dump(php_strip_whitespace($file)); |
||||
var_dump(ob_get_contents()); |
||||
|
||||
?> |
||||
--EXPECTF-- |
||||
Warning: php_strip_whitespace(%s): Failed to open stream: No such file or directory in %s on line %d |
||||
string(0) "" |
||||
bool(false) |
||||
@ -0,0 +1,18 @@ |
||||
--TEST-- |
||||
php_strip_whitespace() and output buffer |
||||
--SKIPIF-- |
||||
<?php |
||||
echo 'skip AOT compilation or behavior differs'; |
||||
?> |
||||
--FILE-- |
||||
<?php |
||||
$file = str_repeat("A", PHP_MAXPATHLEN - strlen(__DIR__ . DIRECTORY_SEPARATOR . __FILE__)); |
||||
|
||||
var_dump(php_strip_whitespace($file)); |
||||
var_dump(ob_get_contents()); |
||||
|
||||
?> |
||||
--EXPECTF-- |
||||
Warning: php_strip_whitespace(%s): Failed to open stream: File%Sname too long in %s007.php on line %d |
||||
string(0) "" |
||||
bool(false) |
||||
@ -0,0 +1,23 @@ |
||||
--TEST-- |
||||
addcslashes() and stripcslashes() function |
||||
--FILE-- |
||||
<?php |
||||
echo addcslashes("", "")."\n"; |
||||
echo addcslashes("", "burp")."\n"; |
||||
echo addcslashes("kaboemkara!", "")."\n"; |
||||
echo addcslashes("foobarbaz", 'bar')."\n"; |
||||
echo addcslashes('foo[ ]', 'A..z')."\n"; |
||||
echo @addcslashes("zoo['.']", 'z..A')."\n"; |
||||
echo addcslashes('abcdefghijklmnopqrstuvwxyz', "a\145..\160z")."\n"; |
||||
echo "\n\r" == stripcslashes('\n\r'),"\n"; |
||||
echo stripcslashes('\065\x64')."\n"; |
||||
echo stripcslashes('')."\n"; |
||||
?> |
||||
--EXPECT-- |
||||
kaboemkara! |
||||
foo\b\a\r\b\az |
||||
\f\o\o\[ \] |
||||
\zoo['\.'] |
||||
\abcd\e\f\g\h\i\j\k\l\m\n\o\pqrstuvwxy\z |
||||
1 |
||||
5d |
||||
@ -0,0 +1,20 @@ |
||||
--TEST-- |
||||
addslashes() and stripslashes() functions |
||||
--FILE-- |
||||
<?php |
||||
|
||||
$input = ''; |
||||
for($i=0; $i<512; $i++) { |
||||
$input .= chr($i%256); |
||||
} |
||||
|
||||
echo "Normal: "; |
||||
if($input === stripslashes(addslashes($input))) { |
||||
echo "OK\n"; |
||||
} else { |
||||
echo "FAILED\n"; |
||||
} |
||||
|
||||
?> |
||||
--EXPECT-- |
||||
Normal: OK |
||||
@ -0,0 +1,37 @@ |
||||
--TEST-- |
||||
Test addcslashes() function (variation 2) |
||||
--SKIPIF-- |
||||
<?php |
||||
echo 'skip AOT compiler requires __toString() to have explicit :string return type'; |
||||
?> |
||||
--INI-- |
||||
precision=14 |
||||
--FILE-- |
||||
<?php |
||||
|
||||
$string = "goodyear12345NULL\0truefalse\a\v\f\b\n\r\t"; |
||||
/* charlist "\0..\37" would escape all characters with ASCII code between 0 and 31 */ |
||||
echo "\n*** Testing addcslashes() with ASCII code between 0 and 31 ***\n"; |
||||
var_dump( addcslashes($string, "\0..\37") ); |
||||
|
||||
/* Checking OBJECTS type */ |
||||
echo "\n*** Testing addcslashes() with objects ***\n"; |
||||
class string1 |
||||
{ |
||||
public function __toString() { |
||||
return "Object"; |
||||
} |
||||
} |
||||
$obj = new string1; |
||||
var_dump( addcslashes($obj, "b") ); |
||||
|
||||
echo "Done\n"; |
||||
|
||||
?> |
||||
--EXPECT-- |
||||
*** Testing addcslashes() with ASCII code between 0 and 31 *** |
||||
string(44) "goodyear12345NULL\000truefalse\a\v\f\b\n\r\t" |
||||
|
||||
*** Testing addcslashes() with objects *** |
||||
string(7) "O\bject" |
||||
Done |
||||
@ -0,0 +1,42 @@ |
||||
--TEST-- |
||||
Test addcslashes() function (variation 3) |
||||
--INI-- |
||||
precision=14 |
||||
--FILE-- |
||||
<?php |
||||
|
||||
/* Miscellaneous input */ |
||||
echo "\n*** Testing addcslashes() with miscellaneous input arguments ***\n"; |
||||
var_dump( addcslashes("", "") ); |
||||
var_dump( addcslashes("", "burp") ); |
||||
var_dump( addcslashes("kaboemkara!", "") ); |
||||
var_dump( addcslashes("foobarbaz", 'bar') ); |
||||
var_dump( addcslashes('foo[ ]', 'A..z') ); |
||||
var_dump( @addcslashes("zoo['.']", 'z..A') ); |
||||
var_dump( addcslashes('abcdefghijklmnopqrstuvwxyz', "a\145..\160z") ); |
||||
var_dump( addcslashes( 123, 123 ) ); |
||||
var_dump( addcslashes( 0, 0 ) ); |
||||
var_dump( addcslashes( "\0" , 0 ) ); |
||||
var_dump( addcslashes( -1.234578, 3 ) ); |
||||
var_dump( addcslashes( " ", " ") ); |
||||
var_dump( addcslashes( "string\x00with\x00NULL", "\0") ); |
||||
|
||||
echo "Done\n"; |
||||
|
||||
?> |
||||
--EXPECTF-- |
||||
*** Testing addcslashes() with miscellaneous input arguments *** |
||||
string(0) "" |
||||
string(0) "" |
||||
string(11) "kaboemkara!" |
||||
string(14) "foo\b\a\r\b\az" |
||||
string(11) "\f\o\o\[ \]" |
||||
string(10) "\zoo['\.']" |
||||
string(40) "\abcd\e\f\g\h\i\j\k\l\m\n\o\pqrstuvwxy\z" |
||||
string(6) "\1\2\3" |
||||
string(2) "\0" |
||||
string(1) "%0" |
||||
string(10) "-1.2\34578" |
||||
string(2) "\ " |
||||
string(22) "string\000with\000NULL" |
||||
Done |
||||
@ -0,0 +1,16 @@ |
||||
--TEST-- |
||||
addcslashes(); function test with warning |
||||
--SKIPIF-- |
||||
<?php |
||||
echo 'skip AOT limitation'; |
||||
?> |
||||
--CREDITS-- |
||||
marcosptf - <marcosptf@yahoo.com.br> |
||||
#phptestfest PHPSP on Google - Sao Paulo - Brazil - 2014-06-05 |
||||
--FILE-- |
||||
<?php |
||||
echo addcslashes("zoo['.']","z..A"); |
||||
?> |
||||
--EXPECTF-- |
||||
Warning: addcslashes(): Invalid '..'-range, '..'-range needs to be incrementing in %s on line %d |
||||
\zoo['\.'] |
||||
@ -0,0 +1,32 @@ |
||||
--TEST-- |
||||
Test addslashes() function : basic functionality |
||||
--FILE-- |
||||
<?php |
||||
/* |
||||
* Testing addslashes() with strings containing characters that can be prefixed with backslash |
||||
* by the function |
||||
*/ |
||||
|
||||
echo "*** Testing addslashes() : basic functionality ***\n"; |
||||
|
||||
// Initialize all required variables |
||||
$str_array = array( "How's everybody", // string containing single quote |
||||
'Are you "JOHN"?', // string with double quotes |
||||
'c:\php\addslashes', // string with backslashes |
||||
"hello\0world" // string with nul character |
||||
); |
||||
|
||||
// Calling addslashes() with all arguments |
||||
foreach( $str_array as $str ) { |
||||
var_dump( addslashes($str) ); |
||||
} |
||||
|
||||
echo "Done\n"; |
||||
?> |
||||
--EXPECT-- |
||||
*** Testing addslashes() : basic functionality *** |
||||
string(16) "How\'s everybody" |
||||
string(17) "Are you \"JOHN\"?" |
||||
string(19) "c:\\php\\addslashes" |
||||
string(12) "hello\0world" |
||||
Done |
||||
@ -0,0 +1,189 @@ |
||||
--TEST-- |
||||
Test addslashes() function : usage variations - strings with characters to be backslashed |
||||
--FILE-- |
||||
<?php |
||||
/* |
||||
* Test addslashes() with various strings containing characters that can be backslashed |
||||
*/ |
||||
|
||||
echo "*** Testing addslashes() : with various strings containing characters to be backslashed ***\n"; |
||||
|
||||
// initialising a heredoc string |
||||
$heredoc_string = <<<EOT |
||||
This is line 1 of 'heredoc' string |
||||
This is line 2 of "heredoc" string |
||||
EOT; |
||||
|
||||
$heredoc_null_string =<<<EOT |
||||
EOT; |
||||
|
||||
// initialising the string array |
||||
|
||||
$str_array = array( |
||||
// string without any characters that can be backslashed |
||||
'Hello world', |
||||
|
||||
// string with single quotes |
||||
"how're you doing?", |
||||
"don't disturb u'r neighbours", |
||||
"don't disturb u'r neighbours''", |
||||
'', |
||||
'\'', |
||||
"'", |
||||
|
||||
// string with double quotes |
||||
'he said, "he will be on leave"', |
||||
'he said, ""he will be on leave"', |
||||
'"""PHP"""', |
||||
"", |
||||
"\"", |
||||
'"', |
||||
"hello\"", |
||||
|
||||
// string with backslash characters |
||||
'Is your name Ram\Krishna?', |
||||
'\\0.0.0.0', |
||||
'c:\php\testcase\addslashes', |
||||
'\\', |
||||
|
||||
// string with nul characters |
||||
'hello'.chr(0).'world', |
||||
chr(0).'hello'.chr(0), |
||||
chr(0).chr(0).'hello', |
||||
chr(0), |
||||
|
||||
// mixed strings |
||||
"'\\0.0.0.0'", |
||||
"'\\0.0.0.0'".chr(0), |
||||
chr(0)."'c:\php\'", |
||||
'"\\0.0.0.0"', |
||||
'"c:\php\"'.chr(0)."'", |
||||
'"hello"'."'world'".chr(0).'//', |
||||
|
||||
// string with hexadecimal number |
||||
"0xABCDEF0123456789", |
||||
"\x00", |
||||
'!@#$%&*@$%#&/;:,<>', |
||||
"hello\x00world", |
||||
|
||||
// heredoc strings |
||||
$heredoc_string, |
||||
$heredoc_null_string |
||||
); |
||||
|
||||
$count = 1; |
||||
// looping to test for all strings in $str_array |
||||
foreach( $str_array as $str ) { |
||||
echo "\n-- Iteration $count --\n"; |
||||
var_dump( addslashes($str) ); |
||||
$count ++; |
||||
} |
||||
|
||||
echo "Done\n"; |
||||
?> |
||||
--EXPECTF-- |
||||
*** Testing addslashes() : with various strings containing characters to be backslashed *** |
||||
|
||||
-- Iteration 1 -- |
||||
string(11) "Hello world" |
||||
|
||||
-- Iteration 2 -- |
||||
string(18) "how\'re you doing?" |
||||
|
||||
-- Iteration 3 -- |
||||
string(30) "don\'t disturb u\'r neighbours" |
||||
|
||||
-- Iteration 4 -- |
||||
string(34) "don\'t disturb u\'r neighbours\'\'" |
||||
|
||||
-- Iteration 5 -- |
||||
string(0) "" |
||||
|
||||
-- Iteration 6 -- |
||||
string(2) "\'" |
||||
|
||||
-- Iteration 7 -- |
||||
string(2) "\'" |
||||
|
||||
-- Iteration 8 -- |
||||
string(32) "he said, \"he will be on leave\"" |
||||
|
||||
-- Iteration 9 -- |
||||
string(34) "he said, \"\"he will be on leave\"" |
||||
|
||||
-- Iteration 10 -- |
||||
string(15) "\"\"\"PHP\"\"\"" |
||||
|
||||
-- Iteration 11 -- |
||||
string(0) "" |
||||
|
||||
-- Iteration 12 -- |
||||
string(2) "\"" |
||||
|
||||
-- Iteration 13 -- |
||||
string(2) "\"" |
||||
|
||||
-- Iteration 14 -- |
||||
string(7) "hello\"" |
||||
|
||||
-- Iteration 15 -- |
||||
string(26) "Is your name Ram\\Krishna?" |
||||
|
||||
-- Iteration 16 -- |
||||
string(9) "\\0.0.0.0" |
||||
|
||||
-- Iteration 17 -- |
||||
string(29) "c:\\php\\testcase\\addslashes" |
||||
|
||||
-- Iteration 18 -- |
||||
string(2) "\\" |
||||
|
||||
-- Iteration 19 -- |
||||
string(12) "hello\0world" |
||||
|
||||
-- Iteration 20 -- |
||||
string(9) "\0hello\0" |
||||
|
||||
-- Iteration 21 -- |
||||
string(9) "\0\0hello" |
||||
|
||||
-- Iteration 22 -- |
||||
string(2) "\0" |
||||
|
||||
-- Iteration 23 -- |
||||
string(13) "\'\\0.0.0.0\'" |
||||
|
||||
-- Iteration 24 -- |
||||
string(15) "\'\\0.0.0.0\'\0" |
||||
|
||||
-- Iteration 25 -- |
||||
string(15) "\0\'c:\\php\\\'" |
||||
|
||||
-- Iteration 26 -- |
||||
string(13) "\"\\0.0.0.0\"" |
||||
|
||||
-- Iteration 27 -- |
||||
string(17) "\"c:\\php\\\"\0\'" |
||||
|
||||
-- Iteration 28 -- |
||||
string(22) "\"hello\"\'world\'\0//" |
||||
|
||||
-- Iteration 29 -- |
||||
string(18) "0xABCDEF0123456789" |
||||
|
||||
-- Iteration 30 -- |
||||
string(2) "\0" |
||||
|
||||
-- Iteration 31 -- |
||||
string(18) "!@#$%&*@$%#&/;:,<>" |
||||
|
||||
-- Iteration 32 -- |
||||
string(12) "hello\0world" |
||||
|
||||
-- Iteration 33 -- |
||||
string(7%d) "This is line 1 of \'heredoc\' string |
||||
This is line 2 of \"heredoc\" string" |
||||
|
||||
-- Iteration 34 -- |
||||
string(0) "" |
||||
Done |
||||
@ -0,0 +1,51 @@ |
||||
--TEST-- |
||||
basename() function |
||||
--FILE-- |
||||
<?php |
||||
// simple checks |
||||
var_dump(basename("bar")); |
||||
var_dump(basename("/foo/bar")); |
||||
var_dump(basename("/bar")); |
||||
|
||||
// simple checks with trailing slashes |
||||
var_dump(basename("bar/")); |
||||
var_dump(basename("/foo/bar/")); |
||||
var_dump(basename("/bar/")); |
||||
|
||||
// suffix removal checks |
||||
var_dump(basename("bar.gz", ".gz")); |
||||
var_dump(basename("/foo/bar.gz", ".gz")); |
||||
var_dump(basename("/bar.gz", ".gz")); |
||||
|
||||
// suffix removal checks with trailing slashes |
||||
var_dump(basename("bar.gz/", ".gz")); |
||||
var_dump(basename("/foo/bar.gz/", ".gz")); |
||||
var_dump(basename("/bar.gz/", ".gz")); |
||||
|
||||
// suffix removal checks |
||||
var_dump(basename("/.gz", ".gz")); |
||||
var_dump(basename("/foo/.gz", ".gz")); |
||||
var_dump(basename("/.gz", ".gz")); |
||||
|
||||
// binary safe? |
||||
var_dump(basename("foo".chr(0)."bar")); |
||||
var_dump(basename("foo".chr(0)."bar.gz", ".gz")); |
||||
?> |
||||
--EXPECTF-- |
||||
string(3) "bar" |
||||
string(3) "bar" |
||||
string(3) "bar" |
||||
string(3) "bar" |
||||
string(3) "bar" |
||||
string(3) "bar" |
||||
string(3) "bar" |
||||
string(3) "bar" |
||||
string(3) "bar" |
||||
string(3) "bar" |
||||
string(3) "bar" |
||||
string(3) "bar" |
||||
string(3) ".gz" |
||||
string(3) ".gz" |
||||
string(3) ".gz" |
||||
string(7) "foo%0bar" |
||||
string(7) "foo%0bar" |
||||
@ -0,0 +1,172 @@ |
||||
--TEST-- |
||||
Test basename() function : basic functionality |
||||
--SKIPIF-- |
||||
<?php |
||||
echo 'skip AOT requires all executable code be in functions'; |
||||
?> |
||||
--FILE-- |
||||
<?php |
||||
$file_paths = array ( |
||||
/* simple paths */ |
||||
array("bar"), |
||||
array("/foo/bar"), |
||||
array("foo/bar"), |
||||
array("/bar"), |
||||
|
||||
/* simple paths with trailing slashes */ |
||||
array("bar/"), |
||||
array("/bar/"), |
||||
array("/foo/bar/"), |
||||
array("foo/bar/"), |
||||
array("/bar/"), |
||||
|
||||
/* paths with suffix removal */ |
||||
array("bar.gz", ".gz"), |
||||
array("bar.gz", "bar.gz"), |
||||
array("/foo/bar.gz", ".gz"), |
||||
array("foo/bar.gz", ".gz"), |
||||
array("/bar.gz", ".gz"), |
||||
|
||||
/* paths with suffix and trailing slashes with suffix removal*/ |
||||
array("bar.gz/", ".gz"), |
||||
array("/bar.gz/", ".gz"), |
||||
array("/foo/bar.gz/", ".gz"), |
||||
array("foo/bar.gz/", ".gz"), |
||||
array("/bar.gz/", ".gz"), |
||||
|
||||
/* paths with basename only suffix, with suffix removal*/ |
||||
array("/.gz", ".gz"), |
||||
array(".gz", ".gz"), |
||||
array("/foo/.gz", ".gz"), |
||||
|
||||
/* paths with basename only suffix & trailing slashes, with suffix removal*/ |
||||
array(".gz/", ".gz"), |
||||
array("/foo/.gz/", ".gz"), |
||||
array("foo/.gz/", ".gz"), |
||||
|
||||
/* paths with binary value to check if the function is binary safe*/ |
||||
array("foo".chr(0)."bar"), |
||||
array("/foo".chr(0)."bar"), |
||||
array("/foo".chr(0)."bar/"), |
||||
array("foo".chr(0)."bar/"), |
||||
array("foo".chr(0)."bar/test"), |
||||
array("/foo".chr(0)."bar/bar.gz", ".gz"), |
||||
array("/foo".chr(0)."bar/bar.gz") |
||||
); |
||||
|
||||
function check_basename( $path_arrays ) { |
||||
$loop_counter = 1; |
||||
foreach ($path_arrays as $path) { |
||||
echo "\n--Iteration $loop_counter--\n"; $loop_counter++; |
||||
if( 1 == count($path) ) { // no suffix provided |
||||
var_dump( basename($path[0]) ); |
||||
} else { // path as well as suffix provided, |
||||
var_dump( basename($path[0], $path[1]) ); |
||||
} |
||||
} |
||||
} |
||||
|
||||
echo "*** Testing basic operations ***\n"; |
||||
check_basename( $file_paths ); |
||||
|
||||
echo "Done\n"; |
||||
?> |
||||
--EXPECTF-- |
||||
*** Testing basic operations *** |
||||
|
||||
--Iteration 1-- |
||||
string(3) "bar" |
||||
|
||||
--Iteration 2-- |
||||
string(3) "bar" |
||||
|
||||
--Iteration 3-- |
||||
string(3) "bar" |
||||
|
||||
--Iteration 4-- |
||||
string(3) "bar" |
||||
|
||||
--Iteration 5-- |
||||
string(3) "bar" |
||||
|
||||
--Iteration 6-- |
||||
string(3) "bar" |
||||
|
||||
--Iteration 7-- |
||||
string(3) "bar" |
||||
|
||||
--Iteration 8-- |
||||
string(3) "bar" |
||||
|
||||
--Iteration 9-- |
||||
string(3) "bar" |
||||
|
||||
--Iteration 10-- |
||||
string(3) "bar" |
||||
|
||||
--Iteration 11-- |
||||
string(6) "bar.gz" |
||||
|
||||
--Iteration 12-- |
||||
string(3) "bar" |
||||
|
||||
--Iteration 13-- |
||||
string(3) "bar" |
||||
|
||||
--Iteration 14-- |
||||
string(3) "bar" |
||||
|
||||
--Iteration 15-- |
||||
string(3) "bar" |
||||
|
||||
--Iteration 16-- |
||||
string(3) "bar" |
||||
|
||||
--Iteration 17-- |
||||
string(3) "bar" |
||||
|
||||
--Iteration 18-- |
||||
string(3) "bar" |
||||
|
||||
--Iteration 19-- |
||||
string(3) "bar" |
||||
|
||||
--Iteration 20-- |
||||
string(3) ".gz" |
||||
|
||||
--Iteration 21-- |
||||
string(3) ".gz" |
||||
|
||||
--Iteration 22-- |
||||
string(3) ".gz" |
||||
|
||||
--Iteration 23-- |
||||
string(3) ".gz" |
||||
|
||||
--Iteration 24-- |
||||
string(3) ".gz" |
||||
|
||||
--Iteration 25-- |
||||
string(3) ".gz" |
||||
|
||||
--Iteration 26-- |
||||
string(7) "foo%0bar" |
||||
|
||||
--Iteration 27-- |
||||
string(7) "foo%0bar" |
||||
|
||||
--Iteration 28-- |
||||
string(7) "foo%0bar" |
||||
|
||||
--Iteration 29-- |
||||
string(7) "foo%0bar" |
||||
|
||||
--Iteration 30-- |
||||
string(4) "test" |
||||
|
||||
--Iteration 31-- |
||||
string(3) "bar" |
||||
|
||||
--Iteration 32-- |
||||
string(6) "bar.gz" |
||||
Done |
||||
@ -0,0 +1,19 @@ |
||||
--TEST-- |
||||
Test basename() function : usage variations with invalid paths |
||||
--SKIPIF-- |
||||
<?php |
||||
if((substr(PHP_OS, 0, 3) == "WIN")) |
||||
die('skip not for Windows"'); |
||||
?> |
||||
--FILE-- |
||||
<?php |
||||
setlocale(LC_CTYPE, "C"); |
||||
var_dump(bin2hex(basename("\xff"))); |
||||
var_dump(bin2hex(basename("a\xffb"))); |
||||
|
||||
echo "Done\n"; |
||||
?> |
||||
--EXPECT-- |
||||
string(2) "ff" |
||||
string(6) "61ff62" |
||||
Done |
||||
@ -0,0 +1,16 @@ |
||||
--TEST-- |
||||
Test basename() function : usage variations with invalid paths |
||||
--SKIPIF-- |
||||
<?php |
||||
if((substr(PHP_OS, 0, 3) != "WIN")) |
||||
die('skip Run only on Windows"'); |
||||
?> |
||||
--FILE-- |
||||
<?php |
||||
var_dump(basename("\377")); |
||||
|
||||
echo "Done\n"; |
||||
?> |
||||
--EXPECTF-- |
||||
string(1) "%c" |
||||
Done |
||||
@ -0,0 +1,214 @@ |
||||
--TEST-- |
||||
Test basename() function : usage variations |
||||
--SKIPIF-- |
||||
<?php |
||||
echo 'skip AOT requires all executable code be in functions'; |
||||
?> |
||||
--FILE-- |
||||
<?php |
||||
$file_path_variations = array ( |
||||
/* paths with shortcut home dir char, with suffix variation */ |
||||
array("~/home/user/bar"), |
||||
array("~/home/user/bar", ""), |
||||
array("~/home/user/bar", ' '), |
||||
array("~/home/user/bar.tar", ".tar"), |
||||
array("~/home/user/bar.tar", "~"), |
||||
array("~/home/user/bar.tar/", "~"), |
||||
array("~/home/user/bar.tar/", ""), |
||||
array("~/home/user/bar.tar", ''), |
||||
array("~/home/user/bar.tar", " "), |
||||
|
||||
/* paths with hostname:dir notation, with suffix variation */ |
||||
array("hostname:/home/usr/bar.tar"), |
||||
array("hostname:/home/user/bar.tar", "home"), |
||||
array("hostname:/home/user/tbar.gz", "bar.gz"), |
||||
array("hostname:/home/user/tbar.gz", "/bar.gz"), |
||||
array("hostname:/home/user/tbar.gz", "/bar.gz/"), |
||||
array("hostname:/home/user/tbar.gz/", "/bar.gz/"), |
||||
array("hostname:/home/user/tbar.gz/", "/bar.gz/"), |
||||
array("hostname:/home/user/My Pics.gz/", "/bar.gz/"), |
||||
array("hostname:/home/user/My Pics.gz/", "Pics.gz/"), |
||||
array("hostname:/home/user/My Pics.gz/", "Pics.gz"), |
||||
array("hostname:/home/user/My Pics.gz/", ".gz"), |
||||
array("hostname:/home/user/My Pics.gz/"), |
||||
array("hostname:/home/user/My Pics.gz/", ' '), |
||||
array("hostname:/home/user/My Pics.gz/", ''), |
||||
array("hostname:/home/user/My Pics.gz/", "My Pics.gz"), |
||||
|
||||
/* paths with numeirc strings */ |
||||
array("10.5"), |
||||
array("10.5", ".5"), |
||||
array("10.5", "10.5"), |
||||
array("10"), |
||||
array("105", "5"), |
||||
array("/10.5"), |
||||
array("10.5/"), |
||||
array("10/10.gz"), |
||||
array("0"), |
||||
array('0'), |
||||
|
||||
/* paths and suffix given as same */ |
||||
array("bar.gz", "bar.gz"), |
||||
array("/bar.gz", "/bar.gz"), |
||||
array("/bar.gz/", "/bar.gz/"), |
||||
array(" ", " "), |
||||
array(' ', ' '), |
||||
|
||||
/* path with spaces */ |
||||
array(" "), |
||||
array(' '), |
||||
|
||||
/* empty paths */ |
||||
array(""), |
||||
array(''), |
||||
); |
||||
|
||||
function check_basename( $path_arrays ) { |
||||
$loop_counter = 1; |
||||
foreach ($path_arrays as $path) { |
||||
echo "\n--Iteration $loop_counter--\n"; $loop_counter++; |
||||
if( 1 == count($path) ) { // no suffix provided |
||||
var_dump( basename($path[0]) ); |
||||
} else { // path as well as suffix provided, |
||||
var_dump( basename($path[0], $path[1]) ); |
||||
} |
||||
} |
||||
} |
||||
|
||||
echo "*** Testing possible variations in path and suffix ***\n"; |
||||
check_basename( $file_path_variations ); |
||||
|
||||
echo "Done\n"; |
||||
?> |
||||
--EXPECT-- |
||||
*** Testing possible variations in path and suffix *** |
||||
|
||||
--Iteration 1-- |
||||
string(3) "bar" |
||||
|
||||
--Iteration 2-- |
||||
string(3) "bar" |
||||
|
||||
--Iteration 3-- |
||||
string(3) "bar" |
||||
|
||||
--Iteration 4-- |
||||
string(3) "bar" |
||||
|
||||
--Iteration 5-- |
||||
string(7) "bar.tar" |
||||
|
||||
--Iteration 6-- |
||||
string(7) "bar.tar" |
||||
|
||||
--Iteration 7-- |
||||
string(7) "bar.tar" |
||||
|
||||
--Iteration 8-- |
||||
string(7) "bar.tar" |
||||
|
||||
--Iteration 9-- |
||||
string(7) "bar.tar" |
||||
|
||||
--Iteration 10-- |
||||
string(7) "bar.tar" |
||||
|
||||
--Iteration 11-- |
||||
string(7) "bar.tar" |
||||
|
||||
--Iteration 12-- |
||||
string(1) "t" |
||||
|
||||
--Iteration 13-- |
||||
string(7) "tbar.gz" |
||||
|
||||
--Iteration 14-- |
||||
string(7) "tbar.gz" |
||||
|
||||
--Iteration 15-- |
||||
string(7) "tbar.gz" |
||||
|
||||
--Iteration 16-- |
||||
string(7) "tbar.gz" |
||||
|
||||
--Iteration 17-- |
||||
string(10) "My Pics.gz" |
||||
|
||||
--Iteration 18-- |
||||
string(10) "My Pics.gz" |
||||
|
||||
--Iteration 19-- |
||||
string(3) "My " |
||||
|
||||
--Iteration 20-- |
||||
string(7) "My Pics" |
||||
|
||||
--Iteration 21-- |
||||
string(10) "My Pics.gz" |
||||
|
||||
--Iteration 22-- |
||||
string(10) "My Pics.gz" |
||||
|
||||
--Iteration 23-- |
||||
string(10) "My Pics.gz" |
||||
|
||||
--Iteration 24-- |
||||
string(10) "My Pics.gz" |
||||
|
||||
--Iteration 25-- |
||||
string(4) "10.5" |
||||
|
||||
--Iteration 26-- |
||||
string(2) "10" |
||||
|
||||
--Iteration 27-- |
||||
string(4) "10.5" |
||||
|
||||
--Iteration 28-- |
||||
string(2) "10" |
||||
|
||||
--Iteration 29-- |
||||
string(2) "10" |
||||
|
||||
--Iteration 30-- |
||||
string(4) "10.5" |
||||
|
||||
--Iteration 31-- |
||||
string(4) "10.5" |
||||
|
||||
--Iteration 32-- |
||||
string(5) "10.gz" |
||||
|
||||
--Iteration 33-- |
||||
string(1) "0" |
||||
|
||||
--Iteration 34-- |
||||
string(1) "0" |
||||
|
||||
--Iteration 35-- |
||||
string(6) "bar.gz" |
||||
|
||||
--Iteration 36-- |
||||
string(6) "bar.gz" |
||||
|
||||
--Iteration 37-- |
||||
string(6) "bar.gz" |
||||
|
||||
--Iteration 38-- |
||||
string(1) " " |
||||
|
||||
--Iteration 39-- |
||||
string(1) " " |
||||
|
||||
--Iteration 40-- |
||||
string(1) " " |
||||
|
||||
--Iteration 41-- |
||||
string(1) " " |
||||
|
||||
--Iteration 42-- |
||||
string(0) "" |
||||
|
||||
--Iteration 43-- |
||||
string(0) "" |
||||
Done |
||||
@ -0,0 +1,14 @@ |
||||
--TEST-- |
||||
bin2hex() function |
||||
--FILE-- |
||||
<?php |
||||
$s = ''; |
||||
for($i=0; $i<256; $i++) { |
||||
$s .= chr($i); |
||||
} |
||||
echo bin2hex($s)."\n"; |
||||
echo bin2hex("abc")."\n"; |
||||
?> |
||||
--EXPECT-- |
||||
000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeafb0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff |
||||
616263 |
||||
@ -0,0 +1,11 @@ |
||||
--TEST-- |
||||
bin2hex(); function test |
||||
--CREDITS-- |
||||
marcosptf - <marcosptf@yahoo.com.br> |
||||
#phptestfest PHPSP on Google - Sao Paulo - Brazil - 2014-06-05 |
||||
--FILE-- |
||||
<?php |
||||
echo bin2hex("123456"); |
||||
?> |
||||
--EXPECT-- |
||||
313233343536 |
||||
@ -0,0 +1,43 @@ |
||||
--TEST-- |
||||
Test bin2hex() function : basic functionality |
||||
--FILE-- |
||||
<?php |
||||
|
||||
echo "*** Testing bin2hex() : basic functionality ***\n"; |
||||
|
||||
// array with different values for $string |
||||
$strings = array ( |
||||
|
||||
//double quoted strings |
||||
/*1*/ "Here is a simple string", |
||||
"\t This String contains \t\t some control characters\r\n", |
||||
"\x90\x91\x00\x93\x94\x90\x91\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f", |
||||
|
||||
//single quoted strings |
||||
/*4*/ 'Here is a simple string', |
||||
'\t This String contains \t\t some control characters\r\n', |
||||
'\x90\x91\x00\x93\x94\x90\x91\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f', |
||||
); |
||||
|
||||
// loop through with each element of the $strings array to test bin2hex() function |
||||
$count = 1; |
||||
foreach($strings as $string) { |
||||
echo "-- Iteration $count --\n"; |
||||
var_dump(bin2hex($string)); |
||||
$count ++; |
||||
} |
||||
?> |
||||
--EXPECT-- |
||||
*** Testing bin2hex() : basic functionality *** |
||||
-- Iteration 1 -- |
||||
string(46) "4865726520697320612073696d706c6520737472696e67" |
||||
-- Iteration 2 -- |
||||
string(102) "09205468697320537472696e6720636f6e7461696e7320090920736f6d6520636f6e74726f6c20636861726163746572730d0a" |
||||
-- Iteration 3 -- |
||||
string(36) "9091009394909195969798999a9b9c9d9e9f" |
||||
-- Iteration 4 -- |
||||
string(46) "4865726520697320612073696d706c6520737472696e67" |
||||
-- Iteration 5 -- |
||||
string(112) "5c74205468697320537472696e6720636f6e7461696e73205c745c7420736f6d6520636f6e74726f6c20636861726163746572735c725c6e" |
||||
-- Iteration 6 -- |
||||
string(144) "5c7839305c7839315c7830305c7839335c7839345c7839305c7839315c7839355c7839365c7839375c7839385c7839395c7839615c7839625c7839635c7839645c7839655c783966" |
||||
@ -0,0 +1,11 @@ |
||||
--TEST-- |
||||
Bug #20108 (Segfault on printf statement) |
||||
--FILE-- |
||||
<?php |
||||
$a = "boo"; |
||||
$z = sprintf("%580.58s\n", $a); |
||||
var_dump($z); |
||||
?> |
||||
--EXPECT-- |
||||
string(581) " boo |
||||
" |
||||
@ -0,0 +1,14 @@ |
||||
--TEST-- |
||||
Bug #20169 (implode() clobbers first argument) |
||||
--FILE-- |
||||
<?php |
||||
@set_time_limit(5); |
||||
$delimiter = "|"; |
||||
|
||||
echo "delimiter: $delimiter\n"; |
||||
implode($delimiter, array("foo", "bar")); |
||||
echo "delimiter: $delimiter\n"; |
||||
?> |
||||
--EXPECT-- |
||||
delimiter: | |
||||
delimiter: | |
||||
@ -0,0 +1,25 @@ |
||||
--TEST-- |
||||
Bug #20261 (str_rot13() changes too much) |
||||
--FILE-- |
||||
<?php |
||||
$first = "boo"; |
||||
$second = $first; |
||||
$rot = ""; |
||||
|
||||
echo "1: ".$first."\n"; |
||||
echo "2: ".$second."\n"; |
||||
echo "3: ".$rot."\n"; |
||||
|
||||
$rot = str_rot13($second); |
||||
|
||||
echo "1: ".$first."\n"; |
||||
echo "2: ".$second."\n"; |
||||
echo "3: ".$rot."\n"; |
||||
?> |
||||
--EXPECT-- |
||||
1: boo |
||||
2: boo |
||||
3: |
||||
1: boo |
||||
2: boo |
||||
3: obb |
||||
File diff suppressed because one or more lines are too long
@ -0,0 +1,11 @@ |
||||
--TEST-- |
||||
Bug #20934 (htmlspecialchars returns latin1 from UTF-8) |
||||
--FILE-- |
||||
<?php |
||||
$str = "\xc3\xa0\xc3\xa1"; |
||||
echo bin2hex($str), "\n"; |
||||
echo bin2hex(htmlspecialchars($str, ENT_COMPAT, "UTF-8")), "\n"; |
||||
?> |
||||
--EXPECTF-- |
||||
c3a0c3a1 |
||||
c3a0c3a1 |
||||
@ -0,0 +1,8 @@ |
||||
--TEST-- |
||||
Bug #20934 (html_entity_decode() crash when "" is passed) |
||||
--FILE-- |
||||
<?php |
||||
var_dump(html_entity_decode("")); |
||||
?> |
||||
--EXPECT-- |
||||
string(0) "" |
||||
@ -0,0 +1,18 @@ |
||||
--TEST-- |
||||
Bug #21453 (handling of non-encoded <) |
||||
--FILE-- |
||||
<?php |
||||
$test = " |
||||
<table> |
||||
<tr><td>first cell before < first cell after</td></tr> |
||||
<tr><td>second cell before < second cell after</td></tr> |
||||
</table>"; |
||||
|
||||
var_dump(strip_tags($test)); |
||||
?> |
||||
--EXPECTF-- |
||||
string(8%d) " |
||||
|
||||
first cell before < first cell after |
||||
second cell before < second cell after |
||||
" |
||||
@ -0,0 +1,39 @@ |
||||
--TEST-- |
||||
Bug #21730 (*scanf "%n" conversion flag gives string instead of integer) |
||||
--SKIPIF-- |
||||
<?php |
||||
echo 'skip AOT limitation'; |
||||
?> |
||||
--FILE-- |
||||
<?php |
||||
$foo = "ABC = DEF"; |
||||
$fmt = "%s = %s %n"; |
||||
$res_a = array(); |
||||
|
||||
/* $res_a[2] is supposed to be a integer value that |
||||
* represents the number of characters consumed so far |
||||
*/ |
||||
sscanf($foo, $fmt, $res_a[0], $res_a[1], $res_a[2]); |
||||
|
||||
$res_b = sscanf($foo, $fmt); |
||||
|
||||
var_dump($res_a); |
||||
var_dump($res_b); |
||||
?> |
||||
--EXPECT-- |
||||
array(3) { |
||||
[0]=> |
||||
string(3) "ABC" |
||||
[1]=> |
||||
string(3) "DEF" |
||||
[2]=> |
||||
int(9) |
||||
} |
||||
array(3) { |
||||
[0]=> |
||||
string(3) "ABC" |
||||
[1]=> |
||||
string(3) "DEF" |
||||
[2]=> |
||||
int(9) |
||||
} |
||||
@ -0,0 +1,15 @@ |
||||
--TEST-- |
||||
Bug #21744 (strip_tags misses exclamation marks in alt text) |
||||
--FILE-- |
||||
<?php |
||||
$test = <<< HERE |
||||
<a href="test?test\\!!!test">test</a> |
||||
<!-- test --> |
||||
HERE; |
||||
|
||||
print strip_tags($test, ''); |
||||
print strip_tags($test, '<a>'); |
||||
?> |
||||
--EXPECT-- |
||||
test |
||||
<a href="test?test\!!!test">test</a> |
||||
@ -0,0 +1,24 @@ |
||||
--TEST-- |
||||
Bug #22008 (strip_tags() eliminates too much) |
||||
--FILE-- |
||||
<?php |
||||
$html = <<< HERE |
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> |
||||
<html> |
||||
<head> |
||||
<title>test</title> |
||||
</head> |
||||
<body> |
||||
<b>PHP!</b> |
||||
</body> |
||||
</html> |
||||
|
||||
HERE; |
||||
|
||||
echo trim(strip_tags($html, '<b>'))."\n"; |
||||
?> |
||||
--EXPECT-- |
||||
test |
||||
|
||||
|
||||
<b>PHP!</b> |
||||
@ -0,0 +1,10 @@ |
||||
--TEST-- |
||||
Bug #22187 (possible crash in number_format() function) |
||||
--FILE-- |
||||
<?php |
||||
var_dump(number_format(0.0001, 1)); |
||||
var_dump(number_format(0.0001, 0)); |
||||
?> |
||||
--EXPECT-- |
||||
string(3) "0.0" |
||||
string(1) "0" |
||||
@ -0,0 +1,11 @@ |
||||
--TEST-- |
||||
Bug #22207 (missing 0 when using the e notation in *printf functions) |
||||
--FILE-- |
||||
<?php |
||||
printf("%10.5e\n", 1.1); |
||||
var_dump(sprintf("%10.5e\n", 1.1)); |
||||
?> |
||||
--EXPECT-- |
||||
1.10000e+0 |
||||
string(11) "1.10000e+0 |
||||
" |
||||
@ -0,0 +1,35 @@ |
||||
--TEST-- |
||||
Bug #22224 (implode changes object references in array) |
||||
--SKIPIF-- |
||||
<?php |
||||
echo 'skip AOT compiler requires __toString() to have explicit :string return type'; |
||||
?> |
||||
--INI-- |
||||
error_reporting=0 |
||||
--FILE-- |
||||
<?php |
||||
class foo |
||||
{ |
||||
function __toString() |
||||
{ |
||||
return "Object"; |
||||
} |
||||
} |
||||
|
||||
|
||||
$a = new foo(); |
||||
|
||||
$arr = array(0=>&$a, 1=>&$a); |
||||
var_dump(implode(",",$arr)); |
||||
var_dump($arr) |
||||
?> |
||||
--EXPECTF-- |
||||
string(13) "Object,Object" |
||||
array(2) { |
||||
[0]=> |
||||
&object(foo)#%d (0) { |
||||
} |
||||
[1]=> |
||||
&object(foo)#%d (0) { |
||||
} |
||||
} |
||||
@ -0,0 +1,9 @@ |
||||
--TEST-- |
||||
Bug #22227 (printf() field limiters broke between 4.2.3 and 4.3.0) |
||||
--FILE-- |
||||
<?php |
||||
printf("%-3.3s", "abcdef"); |
||||
print "\n"; |
||||
?> |
||||
--EXPECT-- |
||||
abc |
||||
@ -0,0 +1,30 @@ |
||||
--TEST-- |
||||
Bug #23650 (strip_tags() removes hyphens) |
||||
--FILE-- |
||||
<?php |
||||
$str = <<< HERE |
||||
1:<!-- abc - --> |
||||
2:<!doctype -- > |
||||
3: |
||||
4:<abc - def> |
||||
5:abc - def |
||||
6:</abc> |
||||
|
||||
HERE; |
||||
|
||||
echo strip_tags($str); |
||||
echo strip_tags($str, '<abc>'); |
||||
?> |
||||
--EXPECT-- |
||||
1: |
||||
2: |
||||
3: |
||||
4: |
||||
5:abc - def |
||||
6: |
||||
1: |
||||
2: |
||||
3: |
||||
4:<abc - def> |
||||
5:abc - def |
||||
6:</abc> |
||||
@ -0,0 +1,19 @@ |
||||
--TEST-- |
||||
Bug #23894 (sprintf() decimal specifiers problem) 32bit version |
||||
--SKIPIF-- |
||||
<?php |
||||
if (PHP_INT_SIZE != 4) die("skip this test is for 32bit platform only"); |
||||
?> |
||||
--FILE-- |
||||
<?php |
||||
$a = -12.3456; |
||||
$test = sprintf("%04d", $a); |
||||
var_dump($test, bin2hex($test)); |
||||
$test = sprintf("% 13u", $a); |
||||
var_dump($test, bin2hex($test)); |
||||
?> |
||||
--EXPECT-- |
||||
string(4) "-012" |
||||
string(8) "2d303132" |
||||
string(13) " 4294967284" |
||||
string(26) "20202034323934393637323834" |
||||
@ -0,0 +1,19 @@ |
||||
--TEST-- |
||||
Bug #23894 (sprintf() decimal specifiers problem) 64bit version |
||||
--SKIPIF-- |
||||
<?php |
||||
if (PHP_INT_SIZE != 8) die("skip this test is for 64bit platform only"); |
||||
?> |
||||
--FILE-- |
||||
<?php |
||||
$a = -12.3456; |
||||
$test = sprintf("%04d", $a); |
||||
var_dump($test, bin2hex($test)); |
||||
$test = sprintf("% 13u", $a); |
||||
var_dump($test, bin2hex($test)); |
||||
?> |
||||
--EXPECT-- |
||||
string(4) "-012" |
||||
string(8) "2d303132" |
||||
string(20) "18446744073709551604" |
||||
string(40) "3138343436373434303733373039353531363034" |
||||
@ -0,0 +1,17 @@ |
||||
--TEST-- |
||||
Bug #24098 (pathinfo() crash) |
||||
--FILE-- |
||||
<?php |
||||
var_dump(pathinfo("/dsds.asa")); |
||||
?> |
||||
--EXPECTF-- |
||||
array(4) { |
||||
["dirname"]=> |
||||
string(1) "%e" |
||||
["basename"]=> |
||||
string(8) "dsds.asa" |
||||
["extension"]=> |
||||
string(3) "asa" |
||||
["filename"]=> |
||||
string(4) "dsds" |
||||
} |
||||
@ -0,0 +1,14 @@ |
||||
--TEST-- |
||||
Bug #24281 (str_replace count not returned if variable wasn't initialized) |
||||
--FILE-- |
||||
<?php |
||||
$string = "He had had to have had it"; |
||||
$newstring = str_replace("had", "foo", $string, $count); |
||||
print "$count changes were made.\n"; |
||||
$count = "foo"; |
||||
$newstring = str_replace("had", "foo", $string, $count); |
||||
print "$count changes were made.\n"; |
||||
?> |
||||
--EXPECT-- |
||||
3 changes were made. |
||||
3 changes were made. |
||||
@ -0,0 +1,27 @@ |
||||
--TEST-- |
||||
Bug #24208 (base64_decode() not skipping 0xF0 - 0xFF) |
||||
--FILE-- |
||||
<?php |
||||
$data = str_repeat("a", 100); |
||||
for ($i = 0xF0; $i < 0xFF + 1; $i++) { |
||||
$enc = chunk_split(base64_encode($data), 10, chr($i)); |
||||
var_dump(base64_decode($enc)); |
||||
} |
||||
?> |
||||
--EXPECT-- |
||||
string(100) "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" |
||||
string(100) "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" |
||||
string(100) "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" |
||||
string(100) "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" |
||||
string(100) "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" |
||||
string(100) "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" |
||||
string(100) "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" |
||||
string(100) "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" |
||||
string(100) "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" |
||||
string(100) "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" |
||||
string(100) "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" |
||||
string(100) "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" |
||||
string(100) "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" |
||||
string(100) "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" |
||||
string(100) "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" |
||||
string(100) "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" |
||||
@ -0,0 +1,29 @@ |
||||
--TEST-- |
||||
Bug #25671 (subarrays not copied correctly) |
||||
--FILE-- |
||||
<?php |
||||
$arr = array( |
||||
"This is string one.", |
||||
"This is string two.", |
||||
array( |
||||
"This is another string.", |
||||
"This is a last string."), |
||||
"This is a last string."); |
||||
|
||||
echo serialize(str_replace("string", "strung", $arr)) . "\n"; |
||||
echo serialize(str_replace("string", "strung", $arr)) . "\n"; |
||||
echo serialize(str_replace(" ", "", $arr)) . "\n"; |
||||
echo serialize(str_replace(" ", "", $arr)) . "\n"; |
||||
?> |
||||
--EXPECTF-- |
||||
Warning: Array to string conversion in %s on line %d |
||||
a:4:{i:0;s:19:"This is strung one.";i:1;s:19:"This is strung two.";i:2;s:5:"Array";i:3;s:22:"This is a last strung.";} |
||||
|
||||
Warning: Array to string conversion in %s on line %d |
||||
a:4:{i:0;s:19:"This is strung one.";i:1;s:19:"This is strung two.";i:2;s:5:"Array";i:3;s:22:"This is a last strung.";} |
||||
|
||||
Warning: Array to string conversion in %s on line %d |
||||
a:4:{i:0;s:16:"Thisisstringone.";i:1;s:16:"Thisisstringtwo.";i:2;s:5:"Array";i:3;s:18:"Thisisalaststring.";} |
||||
|
||||
Warning: Array to string conversion in %s on line %d |
||||
a:4:{i:0;s:16:"Thisisstringone.";i:1;s:16:"Thisisstringtwo.";i:2;s:5:"Array";i:3;s:18:"Thisisalaststring.";} |
||||
@ -0,0 +1,12 @@ |
||||
--TEST-- |
||||
Bug #25707 (html_entity_decode over-decodes &lt;) |
||||
--FILE-- |
||||
<?php |
||||
var_dump(html_entity_decode("&lt;", ENT_COMPAT, 'ISO-8859-1')); |
||||
var_dump(html_entity_decode("&#38;", ENT_COMPAT, 'ISO-8859-1')); |
||||
var_dump(html_entity_decode("&#38;lt;", ENT_COMPAT, 'ISO-8859-1')); |
||||
?> |
||||
--EXPECT-- |
||||
string(4) "<" |
||||
string(5) "&" |
||||
string(8) "&lt;" |
||||
@ -0,0 +1,9 @@ |
||||
--TEST-- |
||||
Bug #26878 (problem with multiple references to the same variable with different types) |
||||
--FILE-- |
||||
<?php |
||||
printf('Int: %1$d and as string: %1$s', 'some string'); |
||||
echo "\n"; |
||||
?> |
||||
--EXPECT-- |
||||
Int: 0 and as string: some string |
||||
@ -0,0 +1,34 @@ |
||||
--TEST-- |
||||
Bug #26973 (*printf() '+' modifier problem) |
||||
--FILE-- |
||||
<?php |
||||
|
||||
printf("%+05d\n", 200); |
||||
printf("%+05d\n", -200); |
||||
printf("%+05f\n", 200); |
||||
printf("%+05f\n", -200); |
||||
printf("%+05u\n", 200); |
||||
printf("%+05u\n", -200); |
||||
echo "---\n"; |
||||
printf("%05d\n", 200); |
||||
printf("%05d\n", -200); |
||||
printf("%05f\n", 200); |
||||
printf("%05f\n", -200); |
||||
printf("%05u\n", 200); |
||||
printf("%05u\n", -200); |
||||
|
||||
?> |
||||
--EXPECTREGEX-- |
||||
\+0200 |
||||
\-0200 |
||||
\+200\.000000 |
||||
\-200\.000000 |
||||
00200 |
||||
(4294967096|18446744073709551416) |
||||
--- |
||||
00200 |
||||
\-0200 |
||||
200\.000000 |
||||
\-200\.000000 |
||||
00200 |
||||
(4294967096|18446744073709551416) |
||||
@ -0,0 +1,15 @@ |
||||
--TEST-- |
||||
Bug #27276 (str_replace tries to use obscene amounts of ram) |
||||
--FILE-- |
||||
<?php |
||||
ini_set("memory_limit", "12m"); |
||||
$replacement = str_repeat("x", 12444); |
||||
$string = str_repeat("x", 9432); |
||||
$key = "{BLURPS}"; |
||||
|
||||
str_replace($key, $replacement, $string); |
||||
|
||||
echo "Alive!\n"; |
||||
?> |
||||
--EXPECT-- |
||||
Alive! |
||||
@ -0,0 +1,25 @@ |
||||
--TEST-- |
||||
Bug #27278 (*printf() functions treat arguments as if passed by reference) |
||||
--SKIPIF-- |
||||
<?php |
||||
echo 'skip AOT requires all executable code be in functions'; |
||||
?> |
||||
--FILE-- |
||||
<?php |
||||
|
||||
function foo ($a) |
||||
{ |
||||
$a=sprintf("%02d",$a); |
||||
var_dump($a); |
||||
} |
||||
|
||||
$x="02"; |
||||
var_dump($x); |
||||
foo($x); |
||||
var_dump($x); |
||||
|
||||
?> |
||||
--EXPECT-- |
||||
string(2) "02" |
||||
string(2) "02" |
||||
string(2) "02" |
||||
@ -0,0 +1,18 @@ |
||||
--TEST-- |
||||
Bug #27295 (memory leak inside sscanf()) |
||||
--SKIPIF-- |
||||
<?php |
||||
echo 'skip AOT limitation'; |
||||
?> |
||||
--FILE-- |
||||
<?php |
||||
$strings = array("foo = bar", "bar = foo"); |
||||
foreach( $strings as $string ) |
||||
{ |
||||
sscanf( $string, "%s = %[^[]]", $var, $val ); |
||||
echo "$var = $val\n"; |
||||
} |
||||
?> |
||||
--EXPECT-- |
||||
foo = bar |
||||
bar = foo |
||||
@ -0,0 +1,21 @@ |
||||
--TEST-- |
||||
Bug #27457 (Problem with strtr() and translation array) |
||||
--FILE-- |
||||
<?php |
||||
$test = "Dot in brackets [.]\n"; |
||||
echo $test; |
||||
$test = strtr($test, array('.' => '0')); |
||||
echo $test; |
||||
$test = strtr($test, array('0' => '.')); |
||||
echo $test; |
||||
$test = strtr($test, '.', '0'); |
||||
echo $test; |
||||
$test = strtr($test, '0', '.'); |
||||
echo $test; |
||||
?> |
||||
--EXPECT-- |
||||
Dot in brackets [.] |
||||
Dot in brackets [0] |
||||
Dot in brackets [.] |
||||
Dot in brackets [0] |
||||
Dot in brackets [.] |
||||
@ -0,0 +1,8 @@ |
||||
--TEST-- |
||||
Bug #27675 (str_ireplace segfaults when shrinking string) |
||||
--FILE-- |
||||
<?php |
||||
echo str_ireplace('/*<B>', '<B>', '/*<b> I am a comment</b>*/'); |
||||
?> |
||||
--EXPECT-- |
||||
<B> I am a comment</b>*/ |
||||
@ -0,0 +1,13 @@ |
||||
--TEST-- |
||||
Bug #28386 (wordwrap() wraps text 1 character too soon) |
||||
--FILE-- |
||||
<?php |
||||
$text = "Some text"; |
||||
$string = "$text $text $text $text"; |
||||
echo wordwrap($string, 9); |
||||
?> |
||||
--EXPECT-- |
||||
Some text |
||||
Some text |
||||
Some text |
||||
Some text |
||||
@ -0,0 +1,10 @@ |
||||
--TEST-- |
||||
Bug #28633 (sprintf incorrectly adding padding to floats) |
||||
--FILE-- |
||||
<?php |
||||
echo sprintf("%05.2f", 0.02) . "\n"; |
||||
echo sprintf("%05.2f", 2.02) . "\n"; |
||||
?> |
||||
--EXPECT-- |
||||
00.02 |
||||
02.02 |
||||
@ -0,0 +1,14 @@ |
||||
--TEST-- |
||||
Bug #29075 (strnatcmp() incorrectly handles whitespace) |
||||
--FILE-- |
||||
<?php |
||||
var_dump( |
||||
strnatcmp('foo ', 'foo '), |
||||
strnatcmp('foo', 'foo'), |
||||
strnatcmp(' foo', ' foo') |
||||
); |
||||
?> |
||||
--EXPECT-- |
||||
int(0) |
||||
int(0) |
||||
int(0) |
||||
@ -0,0 +1,8 @@ |
||||
--TEST-- |
||||
Bug #29119 (html_entity_decode() misbehaves with UTF-8) |
||||
--FILE-- |
||||
<?php |
||||
var_dump(bin2hex(html_entity_decode('  ‘†′⁄€', ENT_QUOTES, 'UTF-8'))); |
||||
?> |
||||
--EXPECT-- |
||||
string(42) "e28082e28089e28098e280a0e280b2e28184e282ac" |
||||
@ -0,0 +1,10 @@ |
||||
--TEST-- |
||||
Bug #29538 (number_format and problem with 0) |
||||
--FILE-- |
||||
<?php |
||||
echo number_format(0.25, 2, '', ''), "\n"; |
||||
echo number_format(1234, 2, '', ','); |
||||
?> |
||||
--EXPECT-- |
||||
025 |
||||
1,23400 |
||||
@ -0,0 +1,14 @@ |
||||
--TEST-- |
||||
Bug #33076 (str_ireplace() incorrectly counts result string length and may cause segfault) |
||||
--FILE-- |
||||
<?php |
||||
|
||||
$value = str_ireplace("t", "bz", "Text"); |
||||
|
||||
var_dump($value); |
||||
|
||||
echo "Done\n"; |
||||
?> |
||||
--EXPECT-- |
||||
string(6) "bzexbz" |
||||
Done |
||||
@ -0,0 +1,13 @@ |
||||
--TEST-- |
||||
Bug #33605 (substr_compare crashes) |
||||
--FILE-- |
||||
<?php |
||||
try { |
||||
substr_compare("aa", "a", -99999999, -1, 0); |
||||
} catch (\ValueError $e) { |
||||
echo $e->getMessage(); |
||||
} |
||||
|
||||
?> |
||||
--EXPECT-- |
||||
substr_compare(): Argument #4 ($length) must be greater than or equal to 0 |
||||
@ -0,0 +1,10 @@ |
||||
--TEST-- |
||||
Bug #34214 (base64_decode() does not properly ignore whitespace) |
||||
--FILE-- |
||||
<?php |
||||
$txt = 'Zm9vYmFyIG |
||||
Zvb2Jhcg=='; |
||||
echo base64_decode($txt), "\n"; |
||||
?> |
||||
--EXPECT-- |
||||
foobar foobar |
||||
@ -0,0 +1,29 @@ |
||||
--TEST-- |
||||
Bug #35817 (unpack() does not decode odd number of hexadecimal values) |
||||
--FILE-- |
||||
<?php |
||||
$a = pack("H3","181"); |
||||
$b = unpack("H3", $a); |
||||
var_dump($b); |
||||
|
||||
$a = pack("H2","18"); |
||||
$b = unpack("H2", $a); |
||||
var_dump($b); |
||||
|
||||
$a = pack("H","1"); |
||||
$b = unpack("H", $a); |
||||
var_dump($b); |
||||
?> |
||||
--EXPECT-- |
||||
array(1) { |
||||
[1]=> |
||||
string(3) "181" |
||||
} |
||||
array(1) { |
||||
[1]=> |
||||
string(2) "18" |
||||
} |
||||
array(1) { |
||||
[1]=> |
||||
string(1) "1" |
||||
} |
||||
@ -0,0 +1,29 @@ |
||||
--TEST-- |
||||
Bug #36148 (unpack("H*hex", $data) is adding an extra character to the end of the string) |
||||
--FILE-- |
||||
<?php |
||||
$values = array("a", "aa", "aaa", "aaaa"); |
||||
foreach ($values as $value) { |
||||
$a = pack("H*", $value); |
||||
$b = unpack("H*", $a); |
||||
echo $value.": "; |
||||
var_dump($b); |
||||
} |
||||
?> |
||||
--EXPECT-- |
||||
a: array(1) { |
||||
[1]=> |
||||
string(2) "a0" |
||||
} |
||||
aa: array(1) { |
||||
[1]=> |
||||
string(2) "aa" |
||||
} |
||||
aaa: array(1) { |
||||
[1]=> |
||||
string(4) "aaa0" |
||||
} |
||||
aaaa: array(1) { |
||||
[1]=> |
||||
string(4) "aaaa" |
||||
} |
||||
@ -0,0 +1,15 @@ |
||||
--TEST-- |
||||
Bug #36306 (crc32() 64bit) |
||||
--FILE-- |
||||
<?php |
||||
|
||||
/* as an example how to write crc32 tests |
||||
PHP does not have uint values, you cannot |
||||
display crc32 like a signed integer. |
||||
Have to find some small strings to truly reproduce |
||||
the problem, this example being not a problem |
||||
*/ |
||||
echo dechex(crc32("platform independent")) . "\n"; |
||||
?> |
||||
--EXPECT-- |
||||
cbd056ba |
||||
@ -0,0 +1,16 @@ |
||||
--TEST-- |
||||
Bug #36392 (wrong number of decimal digits with %e specifier in sprintf) |
||||
--FILE-- |
||||
<?php |
||||
echo sprintf("%e\n", 1.123456789); |
||||
echo sprintf("%.10e\n", 1.123456789); |
||||
echo sprintf("%.0e\n", 1.123456789); |
||||
echo sprintf("%.1e\n", 1.123456789); |
||||
echo sprintf("%5.1e\n", 1.123456789); |
||||
?> |
||||
--EXPECT-- |
||||
1.123457e+0 |
||||
1.1234567890e+0 |
||||
1e+0 |
||||
1.1e+0 |
||||
1.1e+0 |
||||
@ -0,0 +1,29 @@ |
||||
--TEST-- |
||||
Bug #36944 (strncmp & strncasecmp do not return false on negative string length) |
||||
--FILE-- |
||||
<?php |
||||
|
||||
try { |
||||
var_dump(strncmp("test ", "e", -1)); |
||||
} catch (\ValueError $e) { |
||||
echo $e->getMessage() . \PHP_EOL; |
||||
} |
||||
var_dump(strncmp("test ", "e", 10)); |
||||
var_dump(strncmp("test ", "e", 0)); |
||||
|
||||
try { |
||||
var_dump(strncasecmp("test ", "E", -1)); |
||||
} catch (\ValueError $e) { |
||||
echo $e->getMessage() . \PHP_EOL; |
||||
} |
||||
var_dump(strncasecmp("test ", "E", 10)); |
||||
var_dump(strncasecmp("test ", "E", 0)); |
||||
|
||||
?> |
||||
--EXPECTF-- |
||||
strncmp(): Argument #3 ($length) must be greater than or equal to 0 |
||||
int(%d) |
||||
int(0) |
||||
strncasecmp(): Argument #3 ($length) must be greater than or equal to 0 |
||||
int(%d) |
||||
int(0) |
||||
@ -0,0 +1,8 @@ |
||||
--TEST-- |
||||
Bug #37262 (var_export() does not escape \0 character) |
||||
--FILE-- |
||||
<?php |
||||
var_export("foo\0bar"); |
||||
?> |
||||
--EXPECT-- |
||||
'foo' . "\0" . 'bar' |
||||
@ -0,0 +1,13 @@ |
||||
--TEST-- |
||||
Bug #38322 (reading past array in sscanf() leads to segfault/arbitrary code execution) |
||||
--FILE-- |
||||
<?php |
||||
|
||||
$str = "a b c d e"; |
||||
var_dump(sscanf("a ",'%1$s',$str)); |
||||
|
||||
echo "Done\n"; |
||||
?> |
||||
--EXPECT-- |
||||
int(1) |
||||
Done |
||||
@ -0,0 +1,25 @@ |
||||
--TEST-- |
||||
Bug #38770 (unpack() broken with longs on 64 bit machines) |
||||
--SKIPIF-- |
||||
<?php |
||||
if (PHP_INT_SIZE != 8) die("skip this test is for 64bit platform only"); |
||||
?> |
||||
--FILE-- |
||||
<?php |
||||
|
||||
foreach (array('N','l') as $v) { |
||||
print_r(unpack($v, pack($v, -30000))); |
||||
} |
||||
|
||||
echo "Done\n"; |
||||
?> |
||||
--EXPECT-- |
||||
Array |
||||
( |
||||
[1] => 4294937296 |
||||
) |
||||
Array |
||||
( |
||||
[1] => -30000 |
||||
) |
||||
Done |
||||
@ -0,0 +1,22 @@ |
||||
--TEST-- |
||||
Bug #39032 (strcspn() stops on null character) |
||||
--SKIPIF-- |
||||
<?php |
||||
echo 'skip Test output differs under AOT compilation'; |
||||
?> |
||||
--FILE-- |
||||
<?php |
||||
|
||||
var_dump(strcspn(chr(0),"x")); |
||||
var_dump(strcspn(chr(0),"")); |
||||
var_dump(strcspn(chr(0),"qweqwe")); |
||||
var_dump(strcspn(chr(1),"qweqwe")); |
||||
|
||||
echo "Done\n"; |
||||
?> |
||||
--EXPECT-- |
||||
int(1) |
||||
int(1) |
||||
int(1) |
||||
int(1) |
||||
Done |
||||
@ -0,0 +1,13 @@ |
||||
--TEST-- |
||||
Bug #39350 (implode/join() crash on empty input strings) |
||||
--FILE-- |
||||
<?php |
||||
|
||||
implode('', array(null)); |
||||
implode('', array(false)); |
||||
implode('', array("")); |
||||
|
||||
echo "Done\n"; |
||||
?> |
||||
--EXPECT-- |
||||
Done |
||||
@ -0,0 +1,45 @@ |
||||
--TEST-- |
||||
Bug #39621 (str_replace() is not binary safe on strings with equal length) |
||||
--FILE-- |
||||
<?php |
||||
|
||||
$search = "qxxx\0qqqqqqqq"; |
||||
$subject = "qxxx\0xxxxxxxx"; |
||||
$replace = "any text"; |
||||
|
||||
$result = str_replace ( $search, $replace, $subject ); |
||||
|
||||
var_dump($result); |
||||
|
||||
$search = "QXXX\0qqqqqqqq"; |
||||
$subject = "qxxx\0xxxxxxxx"; |
||||
$replace = "any text"; |
||||
|
||||
$result = str_ireplace ( $search, $replace, $subject ); |
||||
|
||||
var_dump($result); |
||||
|
||||
$search = "qxxx\0xxxxxxxx"; |
||||
$subject = "qxxx\0xxxxxxxx"; |
||||
$replace = "any text"; |
||||
|
||||
$result = str_replace ( $search, $replace, $subject ); |
||||
|
||||
var_dump($result); |
||||
|
||||
$search = "qXxx\0xXxXxXxx"; |
||||
$subject = "qxXx\0xxxxxxxx"; |
||||
$replace = "any text"; |
||||
|
||||
$result = str_ireplace ( $search, $replace, $subject ); |
||||
|
||||
var_dump($result); |
||||
|
||||
echo "Done\n"; |
||||
?> |
||||
--EXPECTF-- |
||||
string(13) "qxxx%0xxxxxxxx" |
||||
string(13) "qxxx%0xxxxxxxx" |
||||
string(8) "any text" |
||||
string(8) "any text" |
||||
Done |
||||
@ -0,0 +1,17 @@ |
||||
--TEST-- |
||||
Bug #39873 (number_format() breaks with locale & decimal points) |
||||
--SKIPIF-- |
||||
<?php |
||||
if (!setlocale(LC_ALL, "ita","it","Italian","it_IT","it_IT.ISO8859-1","it_IT.ISO_8859-1")) { |
||||
die("skip locale needed for this test is not supported on this platform"); |
||||
} |
||||
?> |
||||
--FILE-- |
||||
<?php |
||||
setlocale(LC_ALL, "ita","it","Italian","it_IT","it_IT.ISO8859-1","it_IT.ISO_8859-1"); |
||||
$num = 0+"1234.56"; |
||||
echo number_format($num,2); |
||||
echo "\n"; |
||||
?> |
||||
--EXPECT-- |
||||
1,234.56 |
||||
@ -0,0 +1,8 @@ |
||||
--TEST-- |
||||
Bug #40432 (strip_tags() fails with greater than in attribute) |
||||
--FILE-- |
||||
<?php |
||||
echo strip_tags('<span title="test > all">this</span>') . "\n"; |
||||
?> |
||||
--EXPECT-- |
||||
this |
||||
@ -0,0 +1,13 @@ |
||||
--TEST-- |
||||
Bug #40637 (strip_tags() does not handle single quotes correctly) |
||||
--FILE-- |
||||
<?php |
||||
|
||||
$html = '<span title="Bug \' Trigger">Text</span>'; |
||||
var_dump(strip_tags($html)); |
||||
|
||||
echo "Done\n"; |
||||
?> |
||||
--EXPECT-- |
||||
string(4) "Text" |
||||
Done |
||||
@ -0,0 +1,13 @@ |
||||
--TEST-- |
||||
Bug #40704 (strip_tags() does not handle single quotes correctly) |
||||
--FILE-- |
||||
<?php |
||||
|
||||
$html = "<div>Bug ' Trigger</div> Missing Text"; |
||||
var_dump(strip_tags($html)); |
||||
|
||||
echo "Done\n"; |
||||
?> |
||||
--EXPECT-- |
||||
string(26) "Bug ' Trigger Missing Text" |
||||
Done |
||||
@ -0,0 +1,95 @@ |
||||
--TEST-- |
||||
Bug #40754 (Overflow checks inside string functions) |
||||
--FILE-- |
||||
<?php |
||||
|
||||
$v = 2147483647; |
||||
|
||||
var_dump(substr("abcde", 1, $v)); |
||||
var_dump(substr_replace("abcde", "x", $v, $v)); |
||||
var_dump(strspn("abcde", "abc", $v, $v)); |
||||
var_dump(strcspn("abcde", "abc", $v, $v)); |
||||
|
||||
try { |
||||
var_dump(substr_count("abcde", "abc", $v, $v)); |
||||
} catch (ValueError $exception) { |
||||
echo $exception->getMessage() . "\n"; |
||||
} |
||||
|
||||
try { |
||||
substr_compare("abcde", "abc", $v, $v); |
||||
} catch (ValueError $exception) { |
||||
echo $exception->getMessage() . "\n"; |
||||
} |
||||
|
||||
try { |
||||
stripos("abcde", "abc", $v); |
||||
} catch (ValueError $exception) { |
||||
echo $exception->getMessage() . "\n"; |
||||
} |
||||
|
||||
try { |
||||
substr_count("abcde", "abc", $v, 1); |
||||
} catch (ValueError $exception) { |
||||
echo $exception->getMessage() . "\n"; |
||||
} |
||||
|
||||
try { |
||||
substr_count("abcde", "abc", 1, $v); |
||||
} catch (ValueError $exception) { |
||||
echo $exception->getMessage() . "\n"; |
||||
} |
||||
|
||||
try { |
||||
strpos("abcde", "abc", $v); |
||||
} catch (ValueError $exception) { |
||||
echo $exception->getMessage() . "\n"; |
||||
} |
||||
|
||||
try { |
||||
stripos("abcde", "abc", $v); |
||||
} catch (ValueError $exception) { |
||||
echo $exception->getMessage() . "\n"; |
||||
} |
||||
|
||||
try { |
||||
strrpos("abcde", "abc", $v); |
||||
} catch (ValueError $exception) { |
||||
echo $exception->getMessage() . "\n"; |
||||
} |
||||
|
||||
try { |
||||
strripos("abcde", "abc", $v); |
||||
} catch (ValueError $exception) { |
||||
echo $exception->getMessage() . "\n"; |
||||
} |
||||
|
||||
try { |
||||
strripos("abcde", "abc", $v); |
||||
} catch (ValueError $exception) { |
||||
echo $exception->getMessage() . "\n"; |
||||
} |
||||
|
||||
var_dump(strncmp("abcde", "abc", $v)); |
||||
var_dump(chunk_split("abcde", $v, "abc")); |
||||
var_dump(substr("abcde", $v, $v)); |
||||
|
||||
?> |
||||
--EXPECT-- |
||||
string(4) "bcde" |
||||
string(6) "abcdex" |
||||
int(0) |
||||
int(0) |
||||
substr_count(): Argument #3 ($offset) must be contained in argument #1 ($haystack) |
||||
substr_compare(): Argument #3 ($offset) must be contained in argument #1 ($haystack) |
||||
stripos(): Argument #3 ($offset) must be contained in argument #1 ($haystack) |
||||
substr_count(): Argument #3 ($offset) must be contained in argument #1 ($haystack) |
||||
substr_count(): Argument #4 ($length) must be contained in argument #1 ($haystack) |
||||
strpos(): Argument #3 ($offset) must be contained in argument #1 ($haystack) |
||||
stripos(): Argument #3 ($offset) must be contained in argument #1 ($haystack) |
||||
strrpos(): Argument #3 ($offset) must be contained in argument #1 ($haystack) |
||||
strripos(): Argument #3 ($offset) must be contained in argument #1 ($haystack) |
||||
strripos(): Argument #3 ($offset) must be contained in argument #1 ($haystack) |
||||
int(1) |
||||
string(8) "abcdeabc" |
||||
string(0) "" |
||||
@ -0,0 +1,20 @@ |
||||
--TEST-- |
||||
Bug #40915 (addcslashes unexpected behavior with binary input) |
||||
--FILE-- |
||||
<?php |
||||
|
||||
$str = "a\000z"; |
||||
|
||||
var_dump(addslashes($str)); |
||||
var_dump(addcslashes($str, "")); |
||||
var_dump(addcslashes($str, "\000z")); |
||||
var_dump(addcslashes($str, "z")); |
||||
|
||||
echo "Done\n"; |
||||
?> |
||||
--EXPECTF-- |
||||
string(4) "a\0z" |
||||
string(3) "a%0z" |
||||
string(7) "a\000\z" |
||||
string(4) "a%0\z" |
||||
Done |
||||
@ -0,0 +1,51 @@ |
||||
--TEST-- |
||||
Bug #42107 (sscanf() broken when using %2$s type format parameters) |
||||
--SKIPIF-- |
||||
<?php |
||||
echo 'skip AOT limitation'; |
||||
?> |
||||
--FILE-- |
||||
<?php |
||||
|
||||
var_dump(sscanf('one two', '%1$s %2$s')); |
||||
var_dump(sscanf('one two', '%2$s %1$s')); |
||||
echo "--\n"; |
||||
sscanf('one two', '%1$s %2$s', $foo, $bar); |
||||
var_dump($foo, $bar); |
||||
sscanf('one two', '%2$s %1$s', $foo, $bar); |
||||
var_dump($foo, $bar); |
||||
echo "--\n"; |
||||
var_dump(sscanf('one two', '%1$d %2$d')); |
||||
var_dump(sscanf('one two', '%1$d')); |
||||
echo "Done\n"; |
||||
?> |
||||
--EXPECT-- |
||||
array(2) { |
||||
[0]=> |
||||
string(3) "one" |
||||
[1]=> |
||||
string(3) "two" |
||||
} |
||||
array(2) { |
||||
[0]=> |
||||
string(3) "two" |
||||
[1]=> |
||||
string(3) "one" |
||||
} |
||||
-- |
||||
string(3) "one" |
||||
string(3) "two" |
||||
string(3) "two" |
||||
string(3) "one" |
||||
-- |
||||
array(2) { |
||||
[0]=> |
||||
NULL |
||||
[1]=> |
||||
NULL |
||||
} |
||||
array(1) { |
||||
[0]=> |
||||
NULL |
||||
} |
||||
Done |
||||
@ -0,0 +1,15 @@ |
||||
--TEST-- |
||||
Bug #42208 (substr_replace() crashes when the same array is passed more than once) |
||||
--FILE-- |
||||
<?php |
||||
$a = array(1, 2); |
||||
$c = $a; |
||||
var_dump(substr_replace($a, 1, 1, $c)); |
||||
?> |
||||
--EXPECT-- |
||||
array(2) { |
||||
[0]=> |
||||
string(2) "11" |
||||
[1]=> |
||||
string(2) "21" |
||||
} |
||||
@ -0,0 +1,12 @@ |
||||
--TEST-- |
||||
Bug #43927 (koi8r is missing from html_entity_decode()) |
||||
--FILE-- |
||||
<?php |
||||
var_dump(html_entity_decode("&lt;", ENT_COMPAT, 'koi8-r')); |
||||
var_dump(html_entity_decode("&#38;", ENT_COMPAT, 'koi8-r')); |
||||
var_dump(html_entity_decode("&#38;lt;", ENT_COMPAT, 'koi8-r')); |
||||
?> |
||||
--EXPECT-- |
||||
string(4) "<" |
||||
string(5) "&" |
||||
string(8) "&lt;" |
||||
@ -0,0 +1,13 @@ |
||||
--TEST-- |
||||
Bug #43957 (utf8_decode() bogus conversion on multibyte indicator near end of string) |
||||
--SKIPIF-- |
||||
<?php |
||||
echo 'skip Test output differs under AOT compilation'; |
||||
?> |
||||
--FILE-- |
||||
<?php |
||||
echo utf8_decode('abc'.chr(0xe0)); |
||||
?> |
||||
--EXPECTF-- |
||||
Deprecated: Function utf8_decode() is deprecated since 8.2, visit the php.net documentation for various alternatives in %s on line %d |
||||
abc? |
||||
@ -0,0 +1,14 @@ |
||||
--TEST-- |
||||
Bug #44242 (metaphone('CMXFXM') crashes PHP) |
||||
--FILE-- |
||||
<?php |
||||
|
||||
echo metaphone('CMXFXZ'), "\n"; |
||||
echo metaphone('CMXFXV'), "\n"; |
||||
echo metaphone('CMXFXZXZ'), "\n"; |
||||
|
||||
?> |
||||
--EXPECT-- |
||||
KMKSFKSS |
||||
KMKSFKSF |
||||
KMKSFKSSKSS |
||||
@ -0,0 +1,50 @@ |
||||
--TEST-- |
||||
Bug #44703 (htmlspecialchars() does not detect bad character set argument) |
||||
--SKIPIF-- |
||||
<?php |
||||
echo 'skip Test output differs under AOT compilation'; |
||||
?> |
||||
--FILE-- |
||||
<?php |
||||
|
||||
var_dump(htmlspecialchars("<a href='test'>Test</a>", ENT_COMPAT, 1)); |
||||
var_dump(htmlspecialchars("<a href='test'>Test</a>", ENT_COMPAT, 12)); |
||||
var_dump(htmlspecialchars("<a href='test'>Test</a>", ENT_COMPAT, 125)); |
||||
var_dump(htmlspecialchars("<a href='test'>Test</a>", ENT_COMPAT, 1252)); |
||||
var_dump(htmlspecialchars("<a href='test'>Test</a>", ENT_COMPAT, 12526)); |
||||
|
||||
var_dump(htmlspecialchars("<>", ENT_COMPAT, 866)); |
||||
var_dump(htmlspecialchars("<>", ENT_COMPAT, 8666)); |
||||
|
||||
var_dump(htmlspecialchars("<>", ENT_COMPAT, NULL)); |
||||
|
||||
|
||||
var_dump(htmlspecialchars("<>", ENT_COMPAT, 'SJIS')); |
||||
var_dump(htmlspecialchars("<>", ENT_COMPAT, 'SjiS')); |
||||
|
||||
var_dump(htmlspecialchars("<>", ENT_COMPAT, str_repeat('a', 100))); |
||||
|
||||
?> |
||||
--EXPECTF-- |
||||
Warning: htmlspecialchars(): Charset "1" is not supported, assuming UTF-8 in %s on line %d |
||||
string(35) "<a href='test'>Test</a>" |
||||
|
||||
Warning: htmlspecialchars(): Charset "12" is not supported, assuming UTF-8 in %s on line %d |
||||
string(35) "<a href='test'>Test</a>" |
||||
|
||||
Warning: htmlspecialchars(): Charset "125" is not supported, assuming UTF-8 in %s on line %d |
||||
string(35) "<a href='test'>Test</a>" |
||||
string(35) "<a href='test'>Test</a>" |
||||
|
||||
Warning: htmlspecialchars(): Charset "12526" is not supported, assuming UTF-8 in %s on line %d |
||||
string(35) "<a href='test'>Test</a>" |
||||
string(8) "<>" |
||||
|
||||
Warning: htmlspecialchars(): Charset "8666" is not supported, assuming UTF-8 in %s on line %d |
||||
string(8) "<>" |
||||
string(8) "<>" |
||||
string(8) "<>" |
||||
string(8) "<>" |
||||
|
||||
Warning: htmlspecialchars(): Charset "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" is not supported, assuming UTF-8 in %s on line %d |
||||
string(8) "<>" |
||||
@ -0,0 +1,8 @@ |
||||
--TEST-- |
||||
Bug #45166 (substr() ) |
||||
--FILE-- |
||||
<?php |
||||
echo substr('cd', -3) . "\n"; |
||||
?> |
||||
--EXPECT-- |
||||
cd |
||||
@ -0,0 +1,23 @@ |
||||
--TEST-- |
||||
Bug #45485 (strip_tags and <?XML tag) |
||||
--FILE-- |
||||
<?php |
||||
|
||||
$s =<<< EOD |
||||
This text is shown <?XML:NAMESPACE PREFIX = ST1 /><b>This Text disappears</b> |
||||
EOD; |
||||
|
||||
$s = strip_tags($s); |
||||
echo htmlspecialchars($s),"\n"; |
||||
|
||||
$s =<<< EOD |
||||
This text is shown <?xml:NAMESPACE PREFIX = ST1 /><b>This Text disappears</b> |
||||
EOD; |
||||
|
||||
$s = strip_tags($s); |
||||
echo htmlspecialchars($s),"\n"; |
||||
|
||||
?> |
||||
--EXPECT-- |
||||
This text is shown This Text disappears |
||||
This text is shown This Text disappears |
||||
@ -0,0 +1,25 @@ |
||||
--TEST-- |
||||
Bug #46578 (strip_tags() does not honor end-of-comment when it encounters a single quote) |
||||
--FILE-- |
||||
<?php |
||||
|
||||
var_dump(strip_tags('<!-- testing I\'ve been to mars -->foobar')); |
||||
|
||||
var_dump(strip_tags('<a alt="foobar">foo<!-- foo! --></a>bar')); |
||||
|
||||
var_dump(strip_tags('<a alt="foobar"/>foo<?= foo! /* <!-- "cool" --> */ ?>bar')); |
||||
|
||||
var_dump(strip_tags('< ax')); |
||||
|
||||
var_dump(strip_tags('<! a>')); |
||||
|
||||
var_dump(strip_tags('<? ax')); |
||||
|
||||
?> |
||||
--EXPECT-- |
||||
string(6) "foobar" |
||||
string(6) "foobar" |
||||
string(6) "foobar" |
||||
string(4) "< ax" |
||||
string(0) "" |
||||
string(0) "" |
||||
@ -0,0 +1,16 @@ |
||||
--TEST-- |
||||
Bug #47168 (printf of floating point variable prints maximum of 40 decimal places) |
||||
--SKIPIF-- |
||||
<?php |
||||
echo 'skip Test output differs under AOT compilation'; |
||||
?> |
||||
--FILE-- |
||||
<?php |
||||
|
||||
$dyadic = 0.00000000000045474735088646411895751953125; |
||||
var_dump(printf ("%1.41f\n",unserialize(serialize($dyadic)))); |
||||
|
||||
?> |
||||
--EXPECT-- |
||||
0.00000000000045474735088646411895751953125 |
||||
int(44) |
||||
@ -0,0 +1,23 @@ |
||||
--TEST-- |
||||
Bug #47322 (sscanf %d doesn't work) |
||||
--SKIPIF-- |
||||
<?php |
||||
echo 'skip AOT limitation'; |
||||
?> |
||||
--FILE-- |
||||
<?php |
||||
|
||||
sscanf(":59:58","%s:%d:%f", $a, $b, $c); |
||||
echo "[$a][$b][$c]\n"; |
||||
|
||||
sscanf("15:01:58.2","%d:%f:%f", $a, $b, $c); |
||||
echo "[$a][$b][$c]\n"; |
||||
|
||||
sscanf("15.1111::foo","%f:%d:%s", $a, $b, $c); |
||||
echo "[$a][$b][$c]\n"; |
||||
|
||||
?> |
||||
--EXPECT-- |
||||
[:59:58][][] |
||||
[15][1][58.2] |
||||
[15.1111][1][58.2] |
||||
@ -0,0 +1,14 @@ |
||||
--TEST-- |
||||
Bug #47443 (metaphone('scratch') returns wrong result) |
||||
--FILE-- |
||||
<?php |
||||
|
||||
var_dump(metaphone("scratch")); |
||||
var_dump(metaphone("scrath")); |
||||
var_dump(metaphone("scratc")); |
||||
|
||||
?> |
||||
--EXPECT-- |
||||
string(4) "SKRX" |
||||
string(4) "SKR0" |
||||
string(5) "SKRTK" |
||||
@ -0,0 +1,52 @@ |
||||
--TEST-- |
||||
Bug #47481 (natcasesort() does not sort extended ASCII characters correctly) |
||||
--FILE-- |
||||
<?php |
||||
/* |
||||
* Test natcasesort() with extended ASCII characters |
||||
*/ |
||||
|
||||
$array = array ('Süden', 'spielen','Sonne','Wind','Regen','Meer'); |
||||
echo "\n-- Before sorting: --\n"; |
||||
var_dump($array); |
||||
|
||||
echo "\n-- After Sorting: --\n"; |
||||
var_dump(natcasesort($array)); |
||||
var_dump($array); |
||||
|
||||
echo "Done"; |
||||
?> |
||||
--EXPECT-- |
||||
-- Before sorting: -- |
||||
array(6) { |
||||
[0]=> |
||||
string(6) "Süden" |
||||
[1]=> |
||||
string(7) "spielen" |
||||
[2]=> |
||||
string(5) "Sonne" |
||||
[3]=> |
||||
string(4) "Wind" |
||||
[4]=> |
||||
string(5) "Regen" |
||||
[5]=> |
||||
string(4) "Meer" |
||||
} |
||||
|
||||
-- After Sorting: -- |
||||
bool(true) |
||||
array(6) { |
||||
[5]=> |
||||
string(4) "Meer" |
||||
[4]=> |
||||
string(5) "Regen" |
||||
[2]=> |
||||
string(5) "Sonne" |
||||
[1]=> |
||||
string(7) "spielen" |
||||
[0]=> |
||||
string(6) "Süden" |
||||
[3]=> |
||||
string(4) "Wind" |
||||
} |
||||
Done |
||||
@ -0,0 +1,36 @@ |
||||
--TEST-- |
||||
Bug #47842 sscanf() does not support 64-bit values |
||||
--SKIPIF-- |
||||
<?php |
||||
echo 'skip AOT compilation or behavior differs'; |
||||
?> |
||||
--FILE-- |
||||
<?php |
||||
echo "-Test\n"; |
||||
|
||||
sscanf("2147483647", '%d', $int); |
||||
echo "sscanf 32-bit signed int '2147483647' (2^31)-1 = ",$int,"\n"; |
||||
sscanf("4294967295", '%u', $int); |
||||
echo "sscanf 32-bit unsign int '4294967295' (2^32)-1 = ",$int,"\n"; |
||||
|
||||
sscanf("9223372036854775807", '%d', $int); |
||||
echo "sscanf 64-bit signed int '9223372036854775807' (2^63)-1 = ",$int,"\n"; |
||||
sscanf("18446744073709551615", '%u', $int); |
||||
echo "sscanf 64-bit unsign int '18446744073709551615' (2^64)-1 = ",$int,"\n"; |
||||
|
||||
printf("printf 64-bit signed int '9223372036854775807' (2^63)-1 = %d\n", 9223372036854775807); |
||||
printf("printf 64-bit signed int '18446744073709551615' (2^64)-1 = %u\n", 18446744073709551615); |
||||
|
||||
echo "Done\n"; |
||||
?> |
||||
--EXPECTF-- |
||||
-Test |
||||
sscanf 32-bit signed int '2147483647' (2^31)-1 = 2147483647 |
||||
sscanf 32-bit unsign int '4294967295' (2^32)-1 = 4294967295 |
||||
sscanf 64-bit signed int '9223372036854775807' (2^63)-1 = 9223372036854775807 |
||||
sscanf 64-bit unsign int '18446744073709551615' (2^64)-1 = 18446744073709551615 |
||||
printf 64-bit signed int '9223372036854775807' (2^63)-1 = 9223372036854775807 |
||||
|
||||
Warning: The float 1.8446744073709552E+19 is not representable as an int, cast occurred in %s on line %d |
||||
printf 64-bit signed int '18446744073709551615' (2^64)-1 = 0 |
||||
Done |
||||
@ -0,0 +1,31 @@ |
||||
--TEST-- |
||||
Bug #48709 (metaphone and 'wh') |
||||
--FILE-- |
||||
<?php |
||||
|
||||
/* Initial letter exceptions */ |
||||
$exceptions = array( |
||||
'kn', // Drop first letter |
||||
'gn', // ditto |
||||
'pn', // ditto |
||||
'ae', // ditto |
||||
'wr', // ditto |
||||
'x', // s |
||||
'wh', // w |
||||
'wa' // w |
||||
); |
||||
|
||||
foreach ($exceptions as $letter) { |
||||
printf("%s => %s\n", $letter, metaphone($letter)); |
||||
} |
||||
|
||||
?> |
||||
--EXPECT-- |
||||
kn => N |
||||
gn => N |
||||
pn => N |
||||
ae => E |
||||
wr => R |
||||
x => S |
||||
wh => W |
||||
wa => W |
||||
@ -0,0 +1,29 @@ |
||||
--TEST-- |
||||
Bug #49687 Several utf8_decode deficiencies and vulnerabilities |
||||
--SKIPIF-- |
||||
<?php |
||||
echo 'skip Test output differs under AOT compilation'; |
||||
?> |
||||
--FILE-- |
||||
<?php |
||||
|
||||
$tests = array( |
||||
"\x41\xC2\x3E\x42", |
||||
"\xE3\x80\x22", |
||||
"\x41\x98\xBA\x42\xE2\x98\x43\xE2\x98\xBA\xE2\x98", |
||||
); |
||||
foreach ($tests as $t) { |
||||
echo bin2hex(utf8_decode($t)), "\n"; |
||||
} |
||||
echo "Done.\n"; |
||||
?> |
||||
--EXPECTF-- |
||||
Deprecated: Function utf8_decode() is deprecated since 8.2, visit the php.net documentation for various alternatives in %s on line %d |
||||
413f3e42 |
||||
|
||||
Deprecated: Function utf8_decode() is deprecated since 8.2, visit the php.net documentation for various alternatives in %s on line %d |
||||
3f22 |
||||
|
||||
Deprecated: Function utf8_decode() is deprecated since 8.2, visit the php.net documentation for various alternatives in %s on line %d |
||||
413f3f423f433f3f |
||||
Done. |
||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,12 @@ |
||||
--TEST-- |
||||
Bug #50052 (Different Hashes on Windows and Linux on wrong Salt size) |
||||
--FILE-- |
||||
<?php |
||||
$salt = '$1$f+uslYF01$'; |
||||
$password = 'test'; |
||||
echo $salt . "\n"; |
||||
echo crypt($password,$salt) . "\n"; |
||||
?> |
||||
--EXPECT-- |
||||
$1$f+uslYF01$ |
||||
$1$f+uslYF0$orVloNmKSLvOeswusE0bY. |
||||
@ -0,0 +1,10 @@ |
||||
--TEST-- |
||||
Bug #50847 (strip_tags() removes all tags greater than 1023 bytes long) |
||||
--FILE-- |
||||
<?php |
||||
$var = '<param value="' . str_repeat("a", 2048) . '" />'; |
||||
var_dump(strip_tags($var, "<param>"), strip_tags($var)); |
||||
?> |
||||
--EXPECT-- |
||||
string(2066) "<param value="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" />" |
||||
string(0) "" |
||||
@ -0,0 +1,11 @@ |
||||
--TEST-- |
||||
Bug #51059 crypt() segfaults on certain salts |
||||
--FILE-- |
||||
<?php |
||||
$res = crypt('a', '_'); |
||||
if ($res === '*0' || $res === '*1') echo 'OK'; |
||||
else echo 'Not OK'; |
||||
|
||||
?> |
||||
--EXPECT-- |
||||
OK |
||||
@ -0,0 +1,34 @@ |
||||
--TEST-- |
||||
Bug #51899 (Parse error in parse_ini_file() function when empy value followed by no newline) |
||||
--FILE-- |
||||
<?php |
||||
|
||||
var_dump(parse_ini_string('a=')); |
||||
var_dump(parse_ini_string('a= ')); |
||||
var_dump(parse_ini_string('a='.PHP_EOL)); |
||||
var_dump(parse_ini_string('a=b ')); |
||||
var_dump(parse_ini_string('')); |
||||
var_dump(parse_ini_string("\0")); |
||||
|
||||
?> |
||||
--EXPECT-- |
||||
array(1) { |
||||
["a"]=> |
||||
string(0) "" |
||||
} |
||||
array(1) { |
||||
["a"]=> |
||||
string(0) "" |
||||
} |
||||
array(1) { |
||||
["a"]=> |
||||
string(0) "" |
||||
} |
||||
array(1) { |
||||
["a"]=> |
||||
string(2) "b " |
||||
} |
||||
array(0) { |
||||
} |
||||
array(0) { |
||||
} |
||||
@ -0,0 +1,41 @@ |
||||
--TEST-- |
||||
Bug #53021 (Failure to convert numeric entities with ENT_NOQUOTES and ISO-8859-1) |
||||
--FILE-- |
||||
<?php |
||||
var_dump(unpack("H*",html_entity_decode("é", ENT_QUOTES, "ISO-8859-1"))); |
||||
echo "double quotes variations:", "\n"; |
||||
echo html_entity_decode(""", ENT_NOQUOTES, 'UTF-8'), "\n"; |
||||
echo html_entity_decode(""", ENT_NOQUOTES, 'UTF-8'), "\n"; |
||||
echo html_entity_decode(""", ENT_QUOTES, 'UTF-8'), "\n"; |
||||
echo html_entity_decode(""", ENT_QUOTES, 'UTF-8'), "\n"; |
||||
echo html_entity_decode(""", ENT_COMPAT, 'UTF-8'), "\n"; |
||||
echo html_entity_decode(""", ENT_COMPAT, 'UTF-8'), "\n"; |
||||
echo html_entity_decode("""), "\n"; |
||||
echo html_entity_decode("""), "\n"; |
||||
|
||||
echo "\nsingle quotes variations:", "\n"; |
||||
echo html_entity_decode("'", ENT_NOQUOTES, 'UTF-8'), "\n"; |
||||
echo html_entity_decode("'", ENT_QUOTES, 'UTF-8'), "\n"; |
||||
echo html_entity_decode("'", ENT_COMPAT, 'UTF-8'), "\n"; |
||||
echo html_entity_decode("'"), "\n"; |
||||
?> |
||||
--EXPECT-- |
||||
array(1) { |
||||
[1]=> |
||||
string(2) "e9" |
||||
} |
||||
double quotes variations: |
||||
" |
||||
" |
||||
" |
||||
" |
||||
" |
||||
" |
||||
" |
||||
" |
||||
|
||||
single quotes variations: |
||||
' |
||||
' |
||||
' |
||||
' |
||||
@ -0,0 +1,17 @@ |
||||
--TEST-- |
||||
Bug #53319 (Strip_tags() may strip '<br />' incorrectly) |
||||
--FILE-- |
||||
<?php |
||||
|
||||
$str = '<br /><br />USD<input type="text"/><br/>CDN<br><input type="text" />'; |
||||
var_dump(strip_tags($str, '<input>')); |
||||
var_dump(strip_tags($str, '<br><input>') === $str); |
||||
var_dump(strip_tags($str)); |
||||
var_dump(strip_tags('<a/b>', '<a>')); |
||||
|
||||
?> |
||||
--EXPECT-- |
||||
string(47) "USD<input type="text"/>CDN<input type="text" />" |
||||
bool(true) |
||||
string(6) "USDCDN" |
||||
string(0) "" |
||||
@ -0,0 +1,590 @@ |
||||
--TEST-- |
||||
Bug #54055: PHP crashes when executing strval when precision setting is very high |
||||
--FILE-- |
||||
<?php |
||||
for($i = 495; $i <= 1074; $i++) { |
||||
ini_set('precision', $i); |
||||
echo "$i: len=", strlen(strval(-1 * pow(2, -1074))), "\n"; |
||||
} |
||||
?> |
||||
--EXPECT-- |
||||
495: len=502 |
||||
496: len=503 |
||||
497: len=504 |
||||
498: len=505 |
||||
499: len=506 |
||||
500: len=507 |
||||
501: len=508 |
||||
502: len=509 |
||||
503: len=510 |
||||
504: len=511 |
||||
505: len=512 |
||||
506: len=513 |
||||
507: len=514 |
||||
508: len=515 |
||||
509: len=516 |
||||
510: len=517 |
||||
511: len=517 |
||||
512: len=519 |
||||
513: len=520 |
||||
514: len=521 |
||||
515: len=521 |
||||
516: len=523 |
||||
517: len=524 |
||||
518: len=525 |
||||
519: len=526 |
||||
520: len=527 |
||||
521: len=528 |
||||
522: len=529 |
||||
523: len=529 |
||||
524: len=531 |
||||
525: len=532 |
||||
526: len=532 |
||||
527: len=534 |
||||
528: len=535 |
||||
529: len=536 |
||||
530: len=537 |
||||
531: len=538 |
||||
532: len=539 |
||||
533: len=540 |
||||
534: len=541 |
||||
535: len=542 |
||||
536: len=543 |
||||
537: len=544 |
||||
538: len=545 |
||||
539: len=546 |
||||
540: len=547 |
||||
541: len=548 |
||||
542: len=549 |
||||
543: len=550 |
||||
544: len=551 |
||||
545: len=552 |
||||
546: len=553 |
||||
547: len=554 |
||||
548: len=555 |
||||
549: len=555 |
||||
550: len=557 |
||||
551: len=557 |
||||
552: len=559 |
||||
553: len=560 |
||||
554: len=561 |
||||
555: len=562 |
||||
556: len=563 |
||||
557: len=564 |
||||
558: len=565 |
||||
559: len=566 |
||||
560: len=567 |
||||
561: len=568 |
||||
562: len=569 |
||||
563: len=570 |
||||
564: len=571 |
||||
565: len=572 |
||||
566: len=573 |
||||
567: len=574 |
||||
568: len=575 |
||||
569: len=576 |
||||
570: len=577 |
||||
571: len=578 |
||||
572: len=579 |
||||
573: len=580 |
||||
574: len=581 |
||||
575: len=582 |
||||
576: len=583 |
||||
577: len=584 |
||||
578: len=585 |
||||
579: len=586 |
||||
580: len=587 |
||||
581: len=588 |
||||
582: len=589 |
||||
583: len=590 |
||||
584: len=591 |
||||
585: len=591 |
||||
586: len=593 |
||||
587: len=594 |
||||
588: len=595 |
||||
589: len=596 |
||||
590: len=597 |
||||
591: len=598 |
||||
592: len=598 |
||||
593: len=600 |
||||
594: len=600 |
||||
595: len=600 |
||||
596: len=603 |
||||
597: len=604 |
||||
598: len=605 |
||||
599: len=606 |
||||
600: len=607 |
||||
601: len=608 |
||||
602: len=608 |
||||
603: len=610 |
||||
604: len=611 |
||||
605: len=611 |
||||
606: len=613 |
||||
607: len=614 |
||||
608: len=615 |
||||
609: len=616 |
||||
610: len=617 |
||||
611: len=618 |
||||
612: len=619 |
||||
613: len=620 |
||||
614: len=621 |
||||
615: len=622 |
||||
616: len=623 |
||||
617: len=624 |
||||
618: len=625 |
||||
619: len=626 |
||||
620: len=627 |
||||
621: len=628 |
||||
622: len=629 |
||||
623: len=630 |
||||
624: len=631 |
||||
625: len=632 |
||||
626: len=633 |
||||
627: len=633 |
||||
628: len=635 |
||||
629: len=636 |
||||
630: len=637 |
||||
631: len=638 |
||||
632: len=639 |
||||
633: len=639 |
||||
634: len=641 |
||||
635: len=642 |
||||
636: len=643 |
||||
637: len=644 |
||||
638: len=645 |
||||
639: len=645 |
||||
640: len=647 |
||||
641: len=648 |
||||
642: len=649 |
||||
643: len=650 |
||||
644: len=650 |
||||
645: len=652 |
||||
646: len=653 |
||||
647: len=654 |
||||
648: len=655 |
||||
649: len=656 |
||||
650: len=657 |
||||
651: len=658 |
||||
652: len=659 |
||||
653: len=660 |
||||
654: len=661 |
||||
655: len=662 |
||||
656: len=663 |
||||
657: len=664 |
||||
658: len=665 |
||||
659: len=665 |
||||
660: len=667 |
||||
661: len=668 |
||||
662: len=669 |
||||
663: len=670 |
||||
664: len=671 |
||||
665: len=672 |
||||
666: len=673 |
||||
667: len=673 |
||||
668: len=675 |
||||
669: len=676 |
||||
670: len=677 |
||||
671: len=678 |
||||
672: len=678 |
||||
673: len=680 |
||||
674: len=680 |
||||
675: len=682 |
||||
676: len=683 |
||||
677: len=684 |
||||
678: len=685 |
||||
679: len=686 |
||||
680: len=687 |
||||
681: len=688 |
||||
682: len=688 |
||||
683: len=690 |
||||
684: len=691 |
||||
685: len=692 |
||||
686: len=693 |
||||
687: len=694 |
||||
688: len=695 |
||||
689: len=696 |
||||
690: len=697 |
||||
691: len=698 |
||||
692: len=699 |
||||
693: len=699 |
||||
694: len=701 |
||||
695: len=702 |
||||
696: len=703 |
||||
697: len=704 |
||||
698: len=705 |
||||
699: len=706 |
||||
700: len=706 |
||||
701: len=708 |
||||
702: len=709 |
||||
703: len=710 |
||||
704: len=711 |
||||
705: len=712 |
||||
706: len=713 |
||||
707: len=714 |
||||
708: len=715 |
||||
709: len=716 |
||||
710: len=717 |
||||
711: len=718 |
||||
712: len=719 |
||||
713: len=720 |
||||
714: len=721 |
||||
715: len=722 |
||||
716: len=723 |
||||
717: len=724 |
||||
718: len=725 |
||||
719: len=726 |
||||
720: len=727 |
||||
721: len=728 |
||||
722: len=729 |
||||
723: len=730 |
||||
724: len=731 |
||||
725: len=732 |
||||
726: len=733 |
||||
727: len=734 |
||||
728: len=735 |
||||
729: len=736 |
||||
730: len=737 |
||||
731: len=738 |
||||
732: len=739 |
||||
733: len=739 |
||||
734: len=741 |
||||
735: len=742 |
||||
736: len=743 |
||||
737: len=744 |
||||
738: len=745 |
||||
739: len=746 |
||||
740: len=747 |
||||
741: len=748 |
||||
742: len=749 |
||||
743: len=750 |
||||
744: len=751 |
||||
745: len=752 |
||||
746: len=753 |
||||
747: len=754 |
||||
748: len=755 |
||||
749: len=756 |
||||
750: len=757 |
||||
751: len=758 |
||||
752: len=758 |
||||
753: len=758 |
||||
754: len=758 |
||||
755: len=758 |
||||
756: len=758 |
||||
757: len=758 |
||||
758: len=758 |
||||
759: len=758 |
||||
760: len=758 |
||||
761: len=758 |
||||
762: len=758 |
||||
763: len=758 |
||||
764: len=758 |
||||
765: len=758 |
||||
766: len=758 |
||||
767: len=758 |
||||
768: len=758 |
||||
769: len=758 |
||||
770: len=758 |
||||
771: len=758 |
||||
772: len=758 |
||||
773: len=758 |
||||
774: len=758 |
||||
775: len=758 |
||||
776: len=758 |
||||
777: len=758 |
||||
778: len=758 |
||||
779: len=758 |
||||
780: len=758 |
||||
781: len=758 |
||||
782: len=758 |
||||
783: len=758 |
||||
784: len=758 |
||||
785: len=758 |
||||
786: len=758 |
||||
787: len=758 |
||||
788: len=758 |
||||
789: len=758 |
||||
790: len=758 |
||||
791: len=758 |
||||
792: len=758 |
||||
793: len=758 |
||||
794: len=758 |
||||
795: len=758 |
||||
796: len=758 |
||||
797: len=758 |
||||
798: len=758 |
||||
799: len=758 |
||||
800: len=758 |
||||
801: len=758 |
||||
802: len=758 |
||||
803: len=758 |
||||
804: len=758 |
||||
805: len=758 |
||||
806: len=758 |
||||
807: len=758 |
||||
808: len=758 |
||||
809: len=758 |
||||
810: len=758 |
||||
811: len=758 |
||||
812: len=758 |
||||
813: len=758 |
||||
814: len=758 |
||||
815: len=758 |
||||
816: len=758 |
||||
817: len=758 |
||||
818: len=758 |
||||
819: len=758 |
||||
820: len=758 |
||||
821: len=758 |
||||
822: len=758 |
||||
823: len=758 |
||||
824: len=758 |
||||
825: len=758 |
||||
826: len=758 |
||||
827: len=758 |
||||
828: len=758 |
||||
829: len=758 |
||||
830: len=758 |
||||
831: len=758 |
||||
832: len=758 |
||||
833: len=758 |
||||
834: len=758 |
||||
835: len=758 |
||||
836: len=758 |
||||
837: len=758 |
||||
838: len=758 |
||||
839: len=758 |
||||
840: len=758 |
||||
841: len=758 |
||||
842: len=758 |
||||
843: len=758 |
||||
844: len=758 |
||||
845: len=758 |
||||
846: len=758 |
||||
847: len=758 |
||||
848: len=758 |
||||
849: len=758 |
||||
850: len=758 |
||||
851: len=758 |
||||
852: len=758 |
||||
853: len=758 |
||||
854: len=758 |
||||
855: len=758 |
||||
856: len=758 |
||||
857: len=758 |
||||
858: len=758 |
||||
859: len=758 |
||||
860: len=758 |
||||
861: len=758 |
||||
862: len=758 |
||||
863: len=758 |
||||
864: len=758 |
||||
865: len=758 |
||||
866: len=758 |
||||
867: len=758 |
||||
868: len=758 |
||||
869: len=758 |
||||
870: len=758 |
||||
871: len=758 |
||||
872: len=758 |
||||
873: len=758 |
||||
874: len=758 |
||||
875: len=758 |
||||
876: len=758 |
||||
877: len=758 |
||||
878: len=758 |
||||
879: len=758 |
||||
880: len=758 |
||||
881: len=758 |
||||
882: len=758 |
||||
883: len=758 |
||||
884: len=758 |
||||
885: len=758 |
||||
886: len=758 |
||||
887: len=758 |
||||
888: len=758 |
||||
889: len=758 |
||||
890: len=758 |
||||
891: len=758 |
||||
892: len=758 |
||||
893: len=758 |
||||
894: len=758 |
||||
895: len=758 |
||||
896: len=758 |
||||
897: len=758 |
||||
898: len=758 |
||||
899: len=758 |
||||
900: len=758 |
||||
901: len=758 |
||||
902: len=758 |
||||
903: len=758 |
||||
904: len=758 |
||||
905: len=758 |
||||
906: len=758 |
||||
907: len=758 |
||||
908: len=758 |
||||
909: len=758 |
||||
910: len=758 |
||||
911: len=758 |
||||
912: len=758 |
||||
913: len=758 |
||||
914: len=758 |
||||
915: len=758 |
||||
916: len=758 |
||||
917: len=758 |
||||
918: len=758 |
||||
919: len=758 |
||||
920: len=758 |
||||
921: len=758 |
||||
922: len=758 |
||||
923: len=758 |
||||
924: len=758 |
||||
925: len=758 |
||||
926: len=758 |
||||
927: len=758 |
||||
928: len=758 |
||||
929: len=758 |
||||
930: len=758 |
||||
931: len=758 |
||||
932: len=758 |
||||
933: len=758 |
||||
934: len=758 |
||||
935: len=758 |
||||
936: len=758 |
||||
937: len=758 |
||||
938: len=758 |
||||
939: len=758 |
||||
940: len=758 |
||||
941: len=758 |
||||
942: len=758 |
||||
943: len=758 |
||||
944: len=758 |
||||
945: len=758 |
||||
946: len=758 |
||||
947: len=758 |
||||
948: len=758 |
||||
949: len=758 |
||||
950: len=758 |
||||
951: len=758 |
||||
952: len=758 |
||||
953: len=758 |
||||
954: len=758 |
||||
955: len=758 |
||||
956: len=758 |
||||
957: len=758 |
||||
958: len=758 |
||||
959: len=758 |
||||
960: len=758 |
||||
961: len=758 |
||||
962: len=758 |
||||
963: len=758 |
||||
964: len=758 |
||||
965: len=758 |
||||
966: len=758 |
||||
967: len=758 |
||||
968: len=758 |
||||
969: len=758 |
||||
970: len=758 |
||||
971: len=758 |
||||
972: len=758 |
||||
973: len=758 |
||||
974: len=758 |
||||
975: len=758 |
||||
976: len=758 |
||||
977: len=758 |
||||
978: len=758 |
||||
979: len=758 |
||||
980: len=758 |
||||
981: len=758 |
||||
982: len=758 |
||||
983: len=758 |
||||
984: len=758 |
||||
985: len=758 |
||||
986: len=758 |
||||
987: len=758 |
||||
988: len=758 |
||||
989: len=758 |
||||
990: len=758 |
||||
991: len=758 |
||||
992: len=758 |
||||
993: len=758 |
||||
994: len=758 |
||||
995: len=758 |
||||
996: len=758 |
||||
997: len=758 |
||||
998: len=758 |
||||
999: len=758 |
||||
1000: len=758 |
||||
1001: len=758 |
||||
1002: len=758 |
||||
1003: len=758 |
||||
1004: len=758 |
||||
1005: len=758 |
||||
1006: len=758 |
||||
1007: len=758 |
||||
1008: len=758 |
||||
1009: len=758 |
||||
1010: len=758 |
||||
1011: len=758 |
||||
1012: len=758 |
||||
1013: len=758 |
||||
1014: len=758 |
||||
1015: len=758 |
||||
1016: len=758 |
||||
1017: len=758 |
||||
1018: len=758 |
||||
1019: len=758 |
||||
1020: len=758 |
||||
1021: len=758 |
||||
1022: len=758 |
||||
1023: len=758 |
||||
1024: len=758 |
||||
1025: len=758 |
||||
1026: len=758 |
||||
1027: len=758 |
||||
1028: len=758 |
||||
1029: len=758 |
||||
1030: len=758 |
||||
1031: len=758 |
||||
1032: len=758 |
||||
1033: len=758 |
||||
1034: len=758 |
||||
1035: len=758 |
||||
1036: len=758 |
||||
1037: len=758 |
||||
1038: len=758 |
||||
1039: len=758 |
||||
1040: len=758 |
||||
1041: len=758 |
||||
1042: len=758 |
||||
1043: len=758 |
||||
1044: len=758 |
||||
1045: len=758 |
||||
1046: len=758 |
||||
1047: len=758 |
||||
1048: len=758 |
||||
1049: len=758 |
||||
1050: len=758 |
||||
1051: len=758 |
||||
1052: len=758 |
||||
1053: len=758 |
||||
1054: len=758 |
||||
1055: len=758 |
||||
1056: len=758 |
||||
1057: len=758 |
||||
1058: len=758 |
||||
1059: len=758 |
||||
1060: len=758 |
||||
1061: len=758 |
||||
1062: len=758 |
||||
1063: len=758 |
||||
1064: len=758 |
||||
1065: len=758 |
||||
1066: len=758 |
||||
1067: len=758 |
||||
1068: len=758 |
||||
1069: len=758 |
||||
1070: len=758 |
||||
1071: len=758 |
||||
1072: len=758 |
||||
1073: len=758 |
||||
1074: len=758 |
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue