mirror of
https://github.com/php/php-src.git
synced 2025-01-08 20:17:28 +08:00
New strval() tests. Tested on Windows, Linux and Linux 64 bit.
This commit is contained in:
parent
68b5346285
commit
0a34f4ad2c
77
ext/standard/tests/strings/strval_basic.phpt
Normal file
77
ext/standard/tests/strings/strval_basic.phpt
Normal file
@ -0,0 +1,77 @@
|
||||
--TEST--
|
||||
Test strval() function : basic functionality
|
||||
--FILE--
|
||||
<?php
|
||||
/* Prototype : string strval ( mixed $var )
|
||||
* Description: Get the string value of a variable.
|
||||
* Source code: ext/standard/string.c
|
||||
*/
|
||||
|
||||
echo "*** Testing strval() : basic variations ***\n";
|
||||
|
||||
error_reporting(E_ALL ^ E_NOTICE);
|
||||
|
||||
$simple_heredoc =<<<EOT
|
||||
Simple HEREDOC string
|
||||
EOT;
|
||||
|
||||
|
||||
//array of values to iterate over
|
||||
$values = array(
|
||||
// Simple strings
|
||||
/*1*/ "Hello World",
|
||||
'Hello World',
|
||||
|
||||
// String with control chars
|
||||
/*3*/ "String\nwith\ncontrol\ncharacters\r\n",
|
||||
|
||||
// String with quotes
|
||||
/*4*/ "String with \"quotes\"",
|
||||
|
||||
//Numeric String
|
||||
/*5*/ "123456",
|
||||
|
||||
// Hexadecimal string
|
||||
/*6*/ "0xABC",
|
||||
|
||||
//Heredoc String
|
||||
/*7*/ $simple_heredoc
|
||||
);
|
||||
|
||||
// loop through each element of the array for strval
|
||||
$iterator = 1;
|
||||
foreach($values as $value) {
|
||||
echo "\n-- Iteration $iterator --\n";
|
||||
var_dump( strval($value) );
|
||||
$iterator++;
|
||||
};
|
||||
?>
|
||||
===DONE===
|
||||
--EXPECTF--
|
||||
*** Testing strval() : basic variations ***
|
||||
|
||||
-- Iteration 1 --
|
||||
string(11) "Hello World"
|
||||
|
||||
-- Iteration 2 --
|
||||
string(11) "Hello World"
|
||||
|
||||
-- Iteration 3 --
|
||||
string(32) "String
|
||||
with
|
||||
control
|
||||
characters
|
||||
"
|
||||
|
||||
-- Iteration 4 --
|
||||
string(20) "String with "quotes""
|
||||
|
||||
-- Iteration 5 --
|
||||
string(6) "123456"
|
||||
|
||||
-- Iteration 6 --
|
||||
string(5) "0xABC"
|
||||
|
||||
-- Iteration 7 --
|
||||
string(21) "Simple HEREDOC string"
|
||||
===DONE===
|
51
ext/standard/tests/strings/strval_error.phpt
Normal file
51
ext/standard/tests/strings/strval_error.phpt
Normal file
@ -0,0 +1,51 @@
|
||||
--TEST--
|
||||
Test strval() function : usage variations - error conditions
|
||||
--FILE--
|
||||
<?php
|
||||
/* Prototype : string strval ( mixed $var )
|
||||
* Description: Get the string value of a variable.
|
||||
* Source code: ext/standard/string.c
|
||||
*/
|
||||
|
||||
echo "*** Testing strval() : error conditions ***\n";
|
||||
|
||||
error_reporting(E_ALL ^ E_NOTICE);
|
||||
|
||||
class MyClass
|
||||
{
|
||||
// no toString() method defined
|
||||
}
|
||||
|
||||
$string = "Hello";
|
||||
$extra_arg = 10;
|
||||
|
||||
//Test strval with one more than the expected number of arguments
|
||||
echo "\n-- Testing strval() function with more than expected no. of arguments --\n";
|
||||
var_dump( strval($string, $extra_arg) );
|
||||
|
||||
// Testing strval with one less than the expected number of arguments
|
||||
echo "\n-- Testing strval() function with less than expected no. of arguments --\n";
|
||||
var_dump( strval() );
|
||||
|
||||
// Testing strval with a object which has no toString() method
|
||||
echo "\n-- Testing strval() function with object which has not toString() method --\n";
|
||||
var_dump( strval(new MyClass()) );
|
||||
|
||||
?>
|
||||
===DONE===
|
||||
--EXPECTF--
|
||||
*** Testing strval() : error conditions ***
|
||||
|
||||
-- Testing strval() function with more than expected no. of arguments --
|
||||
|
||||
Warning: strval() expects exactly 1 parameter, 2 given in %s on line %d
|
||||
NULL
|
||||
|
||||
-- Testing strval() function with less than expected no. of arguments --
|
||||
|
||||
Warning: strval() expects exactly 1 parameter, 0 given in %s on line %d
|
||||
NULL
|
||||
|
||||
-- Testing strval() function with object which has not toString() method --
|
||||
|
||||
Catchable fatal error: Object of class MyClass could not be converted to string in %s on line %d
|
190
ext/standard/tests/strings/strval_variation1.phpt
Normal file
190
ext/standard/tests/strings/strval_variation1.phpt
Normal file
@ -0,0 +1,190 @@
|
||||
--TEST--
|
||||
Test strval() function : usage variations - Pass different data types as strval
|
||||
--FILE--
|
||||
<?php
|
||||
/* Prototype : string strval ( mixed $var )
|
||||
* Description: Get the string value of a variable.
|
||||
* Source code: ext/standard/string.c
|
||||
*/
|
||||
|
||||
echo "*** Testing strval() : usage variations ***\n";
|
||||
|
||||
error_reporting(E_ALL ^ E_NOTICE);
|
||||
|
||||
//get an unset variable
|
||||
$unset_var = 10;
|
||||
unset ($unset_var);
|
||||
|
||||
//getting the resource
|
||||
$file_handle = fopen(__FILE__, "r");
|
||||
|
||||
class MyClass
|
||||
{
|
||||
function __toString() {
|
||||
return "MyClass";
|
||||
}
|
||||
}
|
||||
|
||||
//array of values to iterate over
|
||||
$values = array(
|
||||
//Decimal values
|
||||
/*1*/ 0,
|
||||
1,
|
||||
12345,
|
||||
-12345,
|
||||
|
||||
//Octal values
|
||||
/*5*/ 02,
|
||||
010,
|
||||
030071,
|
||||
-030071,
|
||||
|
||||
//Hexadecimal values
|
||||
/*9*/ 0x0,
|
||||
0x1,
|
||||
0xABCD,
|
||||
-0xABCD,
|
||||
|
||||
// float data
|
||||
/*13*/ 100.5,
|
||||
-100.5,
|
||||
100.1234567e10,
|
||||
100.7654321E-10,
|
||||
.5,
|
||||
|
||||
// array data
|
||||
/*18*/ array(),
|
||||
array('color' => 'red', 'item' => 'pen'),
|
||||
|
||||
// null data
|
||||
/*20*/ NULL,
|
||||
null,
|
||||
|
||||
// boolean data
|
||||
/*22*/ true,
|
||||
false,
|
||||
TRUE,
|
||||
FALSE,
|
||||
|
||||
// empty data
|
||||
/*26*/ "",
|
||||
'',
|
||||
|
||||
// object data
|
||||
/*28*/ new MyClass(),
|
||||
|
||||
// resource
|
||||
/*29*/ $file_handle,
|
||||
|
||||
// undefined data
|
||||
/*30*/ @$undefined_var,
|
||||
|
||||
// unset data
|
||||
/*31*/ @$unset_var,
|
||||
);
|
||||
|
||||
// loop through each element of the array for strval
|
||||
$iterator = 1;
|
||||
foreach($values as $value) {
|
||||
echo "\n-- Iteration $iterator --\n";
|
||||
var_dump( strval($value) );
|
||||
$iterator++;
|
||||
};
|
||||
?>
|
||||
===DONE===
|
||||
--EXPECTF--
|
||||
*** Testing strval() : usage variations ***
|
||||
|
||||
-- Iteration 1 --
|
||||
string(1) "0"
|
||||
|
||||
-- Iteration 2 --
|
||||
string(1) "1"
|
||||
|
||||
-- Iteration 3 --
|
||||
string(5) "12345"
|
||||
|
||||
-- Iteration 4 --
|
||||
string(6) "-12345"
|
||||
|
||||
-- Iteration 5 --
|
||||
string(1) "2"
|
||||
|
||||
-- Iteration 6 --
|
||||
string(1) "8"
|
||||
|
||||
-- Iteration 7 --
|
||||
string(5) "12345"
|
||||
|
||||
-- Iteration 8 --
|
||||
string(6) "-12345"
|
||||
|
||||
-- Iteration 9 --
|
||||
string(1) "0"
|
||||
|
||||
-- Iteration 10 --
|
||||
string(1) "1"
|
||||
|
||||
-- Iteration 11 --
|
||||
string(5) "43981"
|
||||
|
||||
-- Iteration 12 --
|
||||
string(6) "-43981"
|
||||
|
||||
-- Iteration 13 --
|
||||
string(5) "100.5"
|
||||
|
||||
-- Iteration 14 --
|
||||
string(6) "-100.5"
|
||||
|
||||
-- Iteration 15 --
|
||||
string(13) "1001234567000"
|
||||
|
||||
-- Iteration 16 --
|
||||
string(14) "1.007654321E-8"
|
||||
|
||||
-- Iteration 17 --
|
||||
string(3) "0.5"
|
||||
|
||||
-- Iteration 18 --
|
||||
string(5) "Array"
|
||||
|
||||
-- Iteration 19 --
|
||||
string(5) "Array"
|
||||
|
||||
-- Iteration 20 --
|
||||
string(0) ""
|
||||
|
||||
-- Iteration 21 --
|
||||
string(0) ""
|
||||
|
||||
-- Iteration 22 --
|
||||
string(1) "1"
|
||||
|
||||
-- Iteration 23 --
|
||||
string(0) ""
|
||||
|
||||
-- Iteration 24 --
|
||||
string(1) "1"
|
||||
|
||||
-- Iteration 25 --
|
||||
string(0) ""
|
||||
|
||||
-- Iteration 26 --
|
||||
string(0) ""
|
||||
|
||||
-- Iteration 27 --
|
||||
string(0) ""
|
||||
|
||||
-- Iteration 28 --
|
||||
string(7) "MyClass"
|
||||
|
||||
-- Iteration 29 --
|
||||
string(%d) "Resource id #%d"
|
||||
|
||||
-- Iteration 30 --
|
||||
string(0) ""
|
||||
|
||||
-- Iteration 31 --
|
||||
string(0) ""
|
||||
===DONE===
|
82
ext/standard/tests/strings/strval_variation2.phpt
Normal file
82
ext/standard/tests/strings/strval_variation2.phpt
Normal file
@ -0,0 +1,82 @@
|
||||
--TEST--
|
||||
Test strval() function : usage variations - Pass all valid char codes
|
||||
--FILE--
|
||||
<?php
|
||||
/* Prototype : string strval ( mixed $var )
|
||||
* Description: Get the string value of a variable.
|
||||
* Source code: ext/standard/string.c
|
||||
*/
|
||||
|
||||
echo "*** Testing strval() : usage variations - Pass all valid char codes ***\n";
|
||||
|
||||
$s0 = "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f";
|
||||
$s1 = "\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f";
|
||||
$s2 = "\x20\x21\x22\x23\x24\x25\x26\x27\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f";
|
||||
$s3 = "\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f";
|
||||
$s4 = "\x40\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f";
|
||||
$s5 = "\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f";
|
||||
$s6 = "\x60\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f";
|
||||
$s7 = "\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f";
|
||||
$s8 = "\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f";
|
||||
$s9 = "\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f";
|
||||
$sa = "\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf";
|
||||
$sb = "\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf";
|
||||
$sc = "\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf";
|
||||
$sd = "\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf";
|
||||
$se = "\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef";
|
||||
$sf = "\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff";
|
||||
|
||||
echo bin2hex(strval($s0));
|
||||
echo "\n";
|
||||
echo bin2hex(strval($s1));
|
||||
echo "\n";
|
||||
echo bin2hex(strval($s2));
|
||||
echo "\n";
|
||||
echo bin2hex(strval($s3));
|
||||
echo "\n";
|
||||
echo bin2hex(strval($s4));
|
||||
echo "\n";
|
||||
echo bin2hex(strval($s5));
|
||||
echo "\n";
|
||||
echo bin2hex(strval($s6));
|
||||
echo "\n";
|
||||
echo bin2hex(strval($s7));
|
||||
echo "\n";
|
||||
echo bin2hex(strval($s8));
|
||||
echo "\n";
|
||||
echo bin2hex(strval($s9));
|
||||
echo "\n";
|
||||
echo bin2hex(strval($sa));
|
||||
echo "\n";
|
||||
echo bin2hex(strval($sb));
|
||||
echo "\n";
|
||||
echo bin2hex(strval($sc));
|
||||
echo "\n";
|
||||
echo bin2hex(strval($sd));
|
||||
echo "\n";
|
||||
echo bin2hex(strval($se));
|
||||
echo "\n";
|
||||
echo bin2hex(strval($sf));
|
||||
echo "\n";
|
||||
|
||||
?>
|
||||
===DONE===
|
||||
--EXPECTF--
|
||||
*** Testing strval() : usage variations - Pass all valid char codes ***
|
||||
000102030405060708090a0b0c0d0e0f
|
||||
101112131415161718191a1b1c1d1e1f
|
||||
202122232425262728292a2b2c2d2e2f
|
||||
303132333435363738393a3b3c3d3e3f
|
||||
404142434445464748494a4b4c4d4e4f
|
||||
505152535455565758595a5b5c5d5e5f
|
||||
606162636465666768696a6b6c6d6e6f
|
||||
707172737475767778797a7b7c7d7e7f
|
||||
808182838485868788898a8b8c8d8e8f
|
||||
909192939495969798999a9b9c9d9e9f
|
||||
a0a1a2a3a4a5a6a7a8a9aaabacadaeaf
|
||||
b0b1b2b3b4b5b6b7b8b9babbbcbdbebf
|
||||
c0c1c2c3c4c5c6c7c8c9cacbcccdcecf
|
||||
d0d1d2d3d4d5d6d7d8d9dadbdcdddedf
|
||||
e0e1e2e3e4e5e6e7e8e9eaebecedeeef
|
||||
f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff
|
||||
===DONE===
|
Loading…
Reference in New Issue
Block a user