split one more huge test into several smaller ones

This commit is contained in:
Antony Dovgal 2007-07-13 16:39:55 +00:00
parent 2c0bd79e91
commit 38283545ee
9 changed files with 777 additions and 1298 deletions

View File

@ -1,826 +0,0 @@
--TEST--
Test array_keys() function
--SKIPIF--
<?php
if (PHP_INT_SIZE != 4) die("skip this test is for 32bit platform only");
?>
--FILE--
<?php
/*
Prototype: array array_keys( array $input [, mixed $search_value [,
bool $strict]]);
Description: Return all the keys of an array
*/
echo "*** Testing array_keys() on basic array operation ***\n";
$basic_arr = array("a" => 1, "b" => 2, 2.0 => 2.0, -23.45 => "asdasd",
array(1,2,3));
var_dump(array_keys($basic_arr));
echo "\n*** Testing array_keys() on various arrays ***";
$arrays = array(
array(),
array(0),
array( array() ),
array("Hello" => "World"),
array("" => ""),
array(1,2,3, "d" => array(4,6, "d")),
array("a" => 1, "b" => 2, "c" =>3, "d" => array()),
array(0 => 0, 1 => 1, 2 => 2, 3 => 3),
array(0.001=>3.000, 1.002=>2, 1.999=>3, "a"=>3, 3=>5, "5"=>3.000),
array(TRUE => TRUE, FALSE => FALSE, NULL => NULL, "\x000", "\000"),
array("a" => "abcd", "a" => "", "ab" => -6, "cd" => -0.5 ),
array(0 => array(), 1=> array(0), 2 => array(1), ""=> array(),""=>"" )
);
$i = 0;
/* loop through to test array_keys() with different arrays */
foreach ($arrays as $array) {
echo "\n-- Iteration $i --\n";
var_dump(array_keys($array));
$i++;
}
echo "\n*** Testing array_keys() on all the types other than arrays ***";
$types_arr = array(
TRUE => TRUE,
FALSE => FALSE,
1 => 1,
0 => 0,
-1 => -1,
"1" => "1",
"0" => "0",
"-1" => "-1",
NULL,
array(),
"php" => "php",
"" => ""
);
$values = array(TRUE, FALSE, 1, 0, -1, "1", "0", "-1", NULL, array(), "php", "");
foreach ($values as $value){
echo "\n-- Loose type checking --\n";
var_dump(array_keys($types_arr, $value));
echo "\n-- strict type checking --\n";
var_dump(array_keys($types_arr, $value, TRUE));
}
echo "\n*** Testing array_keys() with resource type ***\n";
$resource1 = fopen( __FILE__, "r");
$resource2 = opendir( "." );
/* creating an array with resource types as elements */
$arr_resource = array($resource1, $resource2);
var_dump(array_keys($arr_resource, $resource1)); // loose type checking
var_dump(array_keys($arr_resource, $resource1, TRUE)); // strict type checking
var_dump(array_keys($arr_resource, $resource2)); // loose type checking
var_dump(array_keys($arr_resource, $resource2, TRUE)); // strict type checking
echo "\n*** Testing array_keys() on range of values ***\n";
$arr_range = array(
2147483647 => 1,
2147483648 => 2,
-2147483647 => 3,
-2147483648 => 4,
-2147483649 => 5,
-0 => 6,
0 => 7
);
var_dump(array_keys($arr_range));
echo "\n*** Testing array_keys() on an array created on the fly ***\n";
var_dump(array_keys(array("a" => 1, "b" => 2, "c" => 3)));
var_dump(array_keys(array())); // null array
echo "\n*** Testing error conditions ***";
var_dump(array_keys(100));
var_dump(array_keys("string"));
var_dump(array_keys(new stdclass)); // object
var_dump(array_keys()); // Zero arguments
var_dump(array_keys(array(), "", TRUE, 100)); // args > expected
var_dump(array_keys(array(1,2,3, array() => array()))); // (W)illegal offset
/* Closing the resource handles */
fclose( $resource1 );
closedir( $resource2 );
echo "Done\n";
?>
--EXPECTF--
*** Testing array_keys() on basic array operation ***
array(5) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[2]=>
int(2)
[3]=>
int(-23)
[4]=>
int(3)
}
*** Testing array_keys() on various arrays ***
-- Iteration 0 --
array(0) {
}
-- Iteration 1 --
array(1) {
[0]=>
int(0)
}
-- Iteration 2 --
array(1) {
[0]=>
int(0)
}
-- Iteration 3 --
array(1) {
[0]=>
string(5) "Hello"
}
-- Iteration 4 --
array(1) {
[0]=>
string(0) ""
}
-- Iteration 5 --
array(4) {
[0]=>
int(0)
[1]=>
int(1)
[2]=>
int(2)
[3]=>
string(1) "d"
}
-- Iteration 6 --
array(4) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[2]=>
string(1) "c"
[3]=>
string(1) "d"
}
-- Iteration 7 --
array(4) {
[0]=>
int(0)
[1]=>
int(1)
[2]=>
int(2)
[3]=>
int(3)
}
-- Iteration 8 --
array(5) {
[0]=>
int(0)
[1]=>
int(1)
[2]=>
string(1) "a"
[3]=>
int(3)
[4]=>
int(5)
}
-- Iteration 9 --
array(5) {
[0]=>
int(1)
[1]=>
int(0)
[2]=>
string(0) ""
[3]=>
int(2)
[4]=>
int(3)
}
-- Iteration 10 --
array(3) {
[0]=>
string(1) "a"
[1]=>
string(2) "ab"
[2]=>
string(2) "cd"
}
-- Iteration 11 --
array(4) {
[0]=>
int(0)
[1]=>
int(1)
[2]=>
int(2)
[3]=>
string(0) ""
}
*** Testing array_keys() on all the types other than arrays ***
-- Loose type checking --
array(3) {
[0]=>
int(1)
[1]=>
int(-1)
[2]=>
string(3) "php"
}
-- strict type checking --
array(0) {
}
-- Loose type checking --
array(4) {
[0]=>
int(0)
[1]=>
int(2)
[2]=>
int(3)
[3]=>
string(0) ""
}
-- strict type checking --
array(0) {
}
-- Loose type checking --
array(1) {
[0]=>
int(1)
}
-- strict type checking --
array(0) {
}
-- Loose type checking --
array(4) {
[0]=>
int(0)
[1]=>
int(2)
[2]=>
string(3) "php"
[3]=>
string(0) ""
}
-- strict type checking --
array(0) {
}
-- Loose type checking --
array(1) {
[0]=>
int(-1)
}
-- strict type checking --
array(0) {
}
-- Loose type checking --
array(1) {
[0]=>
int(1)
}
-- strict type checking --
array(1) {
[0]=>
int(1)
}
-- Loose type checking --
array(1) {
[0]=>
int(0)
}
-- strict type checking --
array(1) {
[0]=>
int(0)
}
-- Loose type checking --
array(1) {
[0]=>
int(-1)
}
-- strict type checking --
array(1) {
[0]=>
int(-1)
}
-- Loose type checking --
array(3) {
[0]=>
int(2)
[1]=>
int(3)
[2]=>
string(0) ""
}
-- strict type checking --
array(1) {
[0]=>
int(2)
}
-- Loose type checking --
array(2) {
[0]=>
int(2)
[1]=>
int(3)
}
-- strict type checking --
array(1) {
[0]=>
int(3)
}
-- Loose type checking --
array(1) {
[0]=>
string(3) "php"
}
-- strict type checking --
array(1) {
[0]=>
string(3) "php"
}
-- Loose type checking --
array(2) {
[0]=>
int(2)
[1]=>
string(0) ""
}
-- strict type checking --
array(1) {
[0]=>
string(0) ""
}
*** Testing array_keys() with resource type ***
array(1) {
[0]=>
int(0)
}
array(1) {
[0]=>
int(0)
}
array(1) {
[0]=>
int(1)
}
array(1) {
[0]=>
int(1)
}
*** Testing array_keys() on range of values ***
array(4) {
[0]=>
int(2147483647)
[1]=>
int(-2147483648)
[2]=>
int(-2147483647)
[3]=>
int(0)
}
*** Testing array_keys() on an array created on the fly ***
array(3) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[2]=>
string(1) "c"
}
array(0) {
}
*** Testing error conditions ***
Warning: array_keys() expects parameter 1 to be array, integer given in %s on line %d
NULL
Warning: array_keys() expects parameter 1 to be array, string given in %s on line %d
NULL
Warning: array_keys() expects parameter 1 to be array, object given in %s on line %d
NULL
Warning: array_keys() expects at least 1 parameter, 0 given in %s on line %d
NULL
Warning: array_keys() expects at most 3 parameters, 4 given in %s on line %d
NULL
Warning: Illegal offset type in %s on line %d
array(3) {
[0]=>
int(0)
[1]=>
int(1)
[2]=>
int(2)
}
Done
--UEXPECTF--
*** Testing array_keys() on basic array operation ***
array(5) {
[0]=>
unicode(1) "a"
[1]=>
unicode(1) "b"
[2]=>
int(2)
[3]=>
int(-23)
[4]=>
int(3)
}
*** Testing array_keys() on various arrays ***
-- Iteration 0 --
array(0) {
}
-- Iteration 1 --
array(1) {
[0]=>
int(0)
}
-- Iteration 2 --
array(1) {
[0]=>
int(0)
}
-- Iteration 3 --
array(1) {
[0]=>
unicode(5) "Hello"
}
-- Iteration 4 --
array(1) {
[0]=>
unicode(0) ""
}
-- Iteration 5 --
array(4) {
[0]=>
int(0)
[1]=>
int(1)
[2]=>
int(2)
[3]=>
unicode(1) "d"
}
-- Iteration 6 --
array(4) {
[0]=>
unicode(1) "a"
[1]=>
unicode(1) "b"
[2]=>
unicode(1) "c"
[3]=>
unicode(1) "d"
}
-- Iteration 7 --
array(4) {
[0]=>
int(0)
[1]=>
int(1)
[2]=>
int(2)
[3]=>
int(3)
}
-- Iteration 8 --
array(5) {
[0]=>
int(0)
[1]=>
int(1)
[2]=>
unicode(1) "a"
[3]=>
int(3)
[4]=>
int(5)
}
-- Iteration 9 --
array(5) {
[0]=>
int(1)
[1]=>
int(0)
[2]=>
unicode(0) ""
[3]=>
int(2)
[4]=>
int(3)
}
-- Iteration 10 --
array(3) {
[0]=>
unicode(1) "a"
[1]=>
unicode(2) "ab"
[2]=>
unicode(2) "cd"
}
-- Iteration 11 --
array(4) {
[0]=>
int(0)
[1]=>
int(1)
[2]=>
int(2)
[3]=>
unicode(0) ""
}
*** Testing array_keys() on all the types other than arrays ***
-- Loose type checking --
array(3) {
[0]=>
int(1)
[1]=>
int(-1)
[2]=>
unicode(3) "php"
}
-- strict type checking --
array(0) {
}
-- Loose type checking --
array(4) {
[0]=>
int(0)
[1]=>
int(2)
[2]=>
int(3)
[3]=>
unicode(0) ""
}
-- strict type checking --
array(0) {
}
-- Loose type checking --
array(1) {
[0]=>
int(1)
}
-- strict type checking --
array(0) {
}
-- Loose type checking --
array(4) {
[0]=>
int(0)
[1]=>
int(2)
[2]=>
unicode(3) "php"
[3]=>
unicode(0) ""
}
-- strict type checking --
array(0) {
}
-- Loose type checking --
array(1) {
[0]=>
int(-1)
}
-- strict type checking --
array(0) {
}
-- Loose type checking --
array(1) {
[0]=>
int(1)
}
-- strict type checking --
array(1) {
[0]=>
int(1)
}
-- Loose type checking --
array(2) {
[0]=>
int(0)
[1]=>
int(2)
}
-- strict type checking --
array(1) {
[0]=>
int(0)
}
-- Loose type checking --
array(1) {
[0]=>
int(-1)
}
-- strict type checking --
array(1) {
[0]=>
int(-1)
}
-- Loose type checking --
array(4) {
[0]=>
int(0)
[1]=>
int(2)
[2]=>
int(3)
[3]=>
unicode(0) ""
}
-- strict type checking --
array(1) {
[0]=>
int(2)
}
-- Loose type checking --
array(2) {
[0]=>
int(2)
[1]=>
int(3)
}
-- strict type checking --
array(1) {
[0]=>
int(3)
}
-- Loose type checking --
array(1) {
[0]=>
unicode(3) "php"
}
-- strict type checking --
array(1) {
[0]=>
unicode(3) "php"
}
-- Loose type checking --
array(2) {
[0]=>
int(2)
[1]=>
unicode(0) ""
}
-- strict type checking --
array(1) {
[0]=>
unicode(0) ""
}
*** Testing array_keys() with resource type ***
array(1) {
[0]=>
int(0)
}
array(1) {
[0]=>
int(0)
}
array(1) {
[0]=>
int(1)
}
array(1) {
[0]=>
int(1)
}
*** Testing array_keys() on range of values ***
array(4) {
[0]=>
int(2147483647)
[1]=>
int(-2147483648)
[2]=>
int(-2147483647)
[3]=>
int(0)
}
*** Testing array_keys() on an array created on the fly ***
array(3) {
[0]=>
unicode(1) "a"
[1]=>
unicode(1) "b"
[2]=>
unicode(1) "c"
}
array(0) {
}
*** Testing error conditions ***
Warning: array_keys() expects parameter 1 to be array, integer given in %s on line %d
NULL
Warning: array_keys() expects parameter 1 to be array, Unicode string given in %s on line %d
NULL
Warning: array_keys() expects parameter 1 to be array, object given in %s on line %d
NULL
Warning: array_keys() expects at least 1 parameter, 0 given in %s on line %d
NULL
Warning: array_keys() expects at most 3 parameters, 4 given in %s on line %d
NULL
Warning: Illegal offset type in %s on line %d
array(3) {
[0]=>
int(0)
[1]=>
int(1)
[2]=>
int(2)
}
Done

View File

@ -1,472 +0,0 @@
--TEST--
Test array_keys() function
--SKIPIF--
<?php
if (PHP_INT_SIZE != 8) die("skip this test is for 64bit platform only");
?>
--INI--
precision=14
--FILE--
<?php
/*
Prototype: array array_keys( array $input [, mixed $search_value [,
bool $strict]]);
Description: Return all the keys of an array
*/
echo "*** Testing array_keys() on basic array operation ***\n";
$basic_arr = array("a" => 1, "b" => 2, 2.0 => 2.0, -23.45 => "asdasd",
array(1,2,3));
var_dump(array_keys($basic_arr));
echo "\n*** Testing array_keys() on various arrays ***";
$arrays = array(
array(),
array(0),
array( array() ),
array("Hello" => "World"),
array("" => ""),
array(1,2,3, "d" => array(4,6, "d")),
array("a" => 1, "b" => 2, "c" =>3, "d" => array()),
array(0 => 0, 1 => 1, 2 => 2, 3 => 3),
array(0.001=>3.000, 1.002=>2, 1.999=>3, "a"=>3, 3=>5, "5"=>3.000),
array(TRUE => TRUE, FALSE => FALSE, NULL => NULL, "\x000", "\000"),
array("a" => "abcd", "a" => "", "ab" => -6, "cd" => -0.5 ),
array(0 => array(), 1=> array(0), 2 => array(1), ""=> array(),""=>"" )
);
$i = 0;
/* loop through to test array_keys() with different arrays */
foreach ($arrays as $array) {
echo "\n-- Iteration $i --\n";
var_dump(array_keys($array));
$i++;
}
echo "\n*** Testing array_keys() on all the types other than arrays ***";
$types_arr = array(
TRUE => TRUE,
FALSE => FALSE,
1 => 1,
0 => 0,
-1 => -1,
"1" => "1",
"0" => "0",
"-1" => "-1",
NULL,
array(),
"php" => "php",
"" => ""
);
$values = array(TRUE, FALSE, 1, 0, -1, "1", "0", "-1", NULL, array(), "php", "");
foreach ($values as $value){
echo "\n-- Loose type checking --\n";
var_dump(array_keys($types_arr, $value));
echo "\n-- strict type checking --\n";
var_dump(array_keys($types_arr, $value, TRUE));
}
echo "\n*** Testing array_keys() with resource type ***\n";
$resource1 = fopen( __FILE__, "r");
$resource2 = opendir( "." );
/* creating an array with resource types as elements */
$arr_resource = array($resource1, $resource2);
var_dump(array_keys($arr_resource, $resource1)); // loose type checking
var_dump(array_keys($arr_resource, $resource1, TRUE)); // strict type checking
var_dump(array_keys($arr_resource, $resource2)); // loose type checking
var_dump(array_keys($arr_resource, $resource2, TRUE)); // strict type checking
echo "\n*** Testing array_keys() on range of values ***\n";
$arr_range = array(
2147483647 => 1,
2147483648 => 2,
-2147483647 => 3,
-2147483648 => 4,
-2147483649 => 5,
-0 => 6,
0 => 7
);
var_dump(array_keys($arr_range));
echo "\n*** Testing array_keys() on an array created on the fly ***\n";
var_dump(array_keys(array("a" => 1, "b" => 2, "c" => 3)));
var_dump(array_keys(array())); // null array
echo "\n*** Testing error conditions ***";
var_dump(array_keys(100));
var_dump(array_keys("string"));
var_dump(array_keys(new stdclass)); // object
var_dump(array_keys()); // Zero arguments
var_dump(array_keys(array(), "", TRUE, 100)); // args > expected
var_dump(array_keys(array(1,2,3, array() => array()))); // (W)illegal offset
echo "Done\n";
--CLEAN--
/* Closing the resource handles */
fclose( $resource1 );
closedir( $resource2 );
?>
--EXPECTF--
*** Testing array_keys() on basic array operation ***
array(5) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[2]=>
int(2)
[3]=>
int(-23)
[4]=>
int(3)
}
*** Testing array_keys() on various arrays ***
-- Iteration 0 --
array(0) {
}
-- Iteration 1 --
array(1) {
[0]=>
int(0)
}
-- Iteration 2 --
array(1) {
[0]=>
int(0)
}
-- Iteration 3 --
array(1) {
[0]=>
string(5) "Hello"
}
-- Iteration 4 --
array(1) {
[0]=>
string(0) ""
}
-- Iteration 5 --
array(4) {
[0]=>
int(0)
[1]=>
int(1)
[2]=>
int(2)
[3]=>
string(1) "d"
}
-- Iteration 6 --
array(4) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[2]=>
string(1) "c"
[3]=>
string(1) "d"
}
-- Iteration 7 --
array(4) {
[0]=>
int(0)
[1]=>
int(1)
[2]=>
int(2)
[3]=>
int(3)
}
-- Iteration 8 --
array(5) {
[0]=>
int(0)
[1]=>
int(1)
[2]=>
string(1) "a"
[3]=>
int(3)
[4]=>
int(5)
}
-- Iteration 9 --
array(5) {
[0]=>
int(1)
[1]=>
int(0)
[2]=>
string(0) ""
[3]=>
int(2)
[4]=>
int(3)
}
-- Iteration 10 --
array(3) {
[0]=>
string(1) "a"
[1]=>
string(2) "ab"
[2]=>
string(2) "cd"
}
-- Iteration 11 --
array(4) {
[0]=>
int(0)
[1]=>
int(1)
[2]=>
int(2)
[3]=>
string(0) ""
}
*** Testing array_keys() on all the types other than arrays ***
-- Loose type checking --
array(3) {
[0]=>
int(1)
[1]=>
int(-1)
[2]=>
string(3) "php"
}
-- strict type checking --
array(0) {
}
-- Loose type checking --
array(4) {
[0]=>
int(0)
[1]=>
int(2)
[2]=>
int(3)
[3]=>
string(0) ""
}
-- strict type checking --
array(0) {
}
-- Loose type checking --
array(1) {
[0]=>
int(1)
}
-- strict type checking --
array(0) {
}
-- Loose type checking --
array(4) {
[0]=>
int(0)
[1]=>
int(2)
[2]=>
string(3) "php"
[3]=>
string(0) ""
}
-- strict type checking --
array(0) {
}
-- Loose type checking --
array(1) {
[0]=>
int(-1)
}
-- strict type checking --
array(0) {
}
-- Loose type checking --
array(1) {
[0]=>
int(1)
}
-- strict type checking --
array(1) {
[0]=>
int(1)
}
-- Loose type checking --
array(1) {
[0]=>
int(0)
}
-- strict type checking --
array(1) {
[0]=>
int(0)
}
-- Loose type checking --
array(1) {
[0]=>
int(-1)
}
-- strict type checking --
array(1) {
[0]=>
int(-1)
}
-- Loose type checking --
array(3) {
[0]=>
int(2)
[1]=>
int(3)
[2]=>
string(0) ""
}
-- strict type checking --
array(1) {
[0]=>
int(2)
}
-- Loose type checking --
array(2) {
[0]=>
int(2)
[1]=>
int(3)
}
-- strict type checking --
array(1) {
[0]=>
int(3)
}
-- Loose type checking --
array(1) {
[0]=>
string(3) "php"
}
-- strict type checking --
array(1) {
[0]=>
string(3) "php"
}
-- Loose type checking --
array(2) {
[0]=>
int(2)
[1]=>
string(0) ""
}
-- strict type checking --
array(1) {
[0]=>
string(0) ""
}
*** Testing array_keys() with resource type ***
array(1) {
[0]=>
int(0)
}
array(1) {
[0]=>
int(0)
}
array(1) {
[0]=>
int(1)
}
array(1) {
[0]=>
int(1)
}
*** Testing array_keys() on range of values ***
array(6) {
[0]=>
int(2147483647)
[1]=>
int(2147483648)
[2]=>
int(-2147483647)
[3]=>
int(-2147483648)
[4]=>
int(-2147483649)
[5]=>
int(0)
}
*** Testing array_keys() on an array created on the fly ***
array(3) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[2]=>
string(1) "c"
}
array(0) {
}
*** Testing error conditions ***
Warning: array_keys(): The first argument should be an array in %s on line %d
NULL
Warning: array_keys(): The first argument should be an array in %s on line %d
NULL
Warning: array_keys(): The first argument should be an array in %s on line %d
NULL
Warning: Wrong parameter count for array_keys() in %s on line %d
NULL
Warning: Wrong parameter count for array_keys() in %s on line %d
NULL
Warning: Illegal offset type in %s on line %d
array(3) {
[0]=>
int(0)
[1]=>
int(1)
[2]=>
int(2)
}
Done

View File

@ -0,0 +1,42 @@
--TEST--
Test array_keys() function (basic)
--FILE--
<?php
echo "*** Testing array_keys() on basic array operation ***\n";
$basic_arr = array("a" => 1, "b" => 2, 2.0 => 2.0, -23.45 => "asdasd",
array(1,2,3));
var_dump(array_keys($basic_arr));
echo "Done\n";
?>
--EXPECTF--
*** Testing array_keys() on basic array operation ***
array(5) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[2]=>
int(2)
[3]=>
int(-23)
[4]=>
int(3)
}
Done
--UEXPECTF--
*** Testing array_keys() on basic array operation ***
array(5) {
[0]=>
unicode(1) "a"
[1]=>
unicode(1) "b"
[2]=>
int(2)
[3]=>
int(-23)
[4]=>
int(3)
}
Done

View File

@ -0,0 +1,69 @@
--TEST--
Test array_keys() function (error conditions)
--FILE--
<?php
echo "\n*** Testing error conditions ***";
var_dump(array_keys(100));
var_dump(array_keys("string"));
var_dump(array_keys(new stdclass)); // object
var_dump(array_keys()); // Zero arguments
var_dump(array_keys(array(), "", TRUE, 100)); // args > expected
var_dump(array_keys(array(1,2,3, array() => array()))); // (W)illegal offset
echo "Done\n";
?>
--EXPECTF--
*** Testing error conditions ***
Warning: array_keys() expects parameter 1 to be array, integer given in %s on line %d
NULL
Warning: array_keys() expects parameter 1 to be array, string given in %s on line %d
NULL
Warning: array_keys() expects parameter 1 to be array, object given in %s on line %d
NULL
Warning: array_keys() expects at least 1 parameter, 0 given in %s on line %d
NULL
Warning: array_keys() expects at most 3 parameters, 4 given in %s on line %d
NULL
Warning: Illegal offset type in %s on line %d
array(3) {
[0]=>
int(0)
[1]=>
int(1)
[2]=>
int(2)
}
Done
--UEXPECTF--
*** Testing error conditions ***
Warning: array_keys() expects parameter 1 to be array, integer given in %s on line %d
NULL
Warning: array_keys() expects parameter 1 to be array, Unicode string given in %s on line %d
NULL
Warning: array_keys() expects parameter 1 to be array, object given in %s on line %d
NULL
Warning: array_keys() expects at least 1 parameter, 0 given in %s on line %d
NULL
Warning: array_keys() expects at most 3 parameters, 4 given in %s on line %d
NULL
Warning: Illegal offset type in %s on line %d
array(3) {
[0]=>
int(0)
[1]=>
int(1)
[2]=>
int(2)
}
Done

View File

@ -0,0 +1,263 @@
--TEST--
Test array_keys() function (variation - 1)
--FILE--
<?php
echo "\n*** Testing array_keys() on various arrays ***";
$arrays = array(
array(),
array(0),
array( array() ),
array("Hello" => "World"),
array("" => ""),
array(1,2,3, "d" => array(4,6, "d")),
array("a" => 1, "b" => 2, "c" =>3, "d" => array()),
array(0 => 0, 1 => 1, 2 => 2, 3 => 3),
array(0.001=>3.000, 1.002=>2, 1.999=>3, "a"=>3, 3=>5, "5"=>3.000),
array(TRUE => TRUE, FALSE => FALSE, NULL => NULL, "\x000", "\000"),
array("a" => "abcd", "a" => "", "ab" => -6, "cd" => -0.5 ),
array(0 => array(), 1=> array(0), 2 => array(1), ""=> array(),""=>"" )
);
$i = 0;
/* loop through to test array_keys() with different arrays */
foreach ($arrays as $array) {
echo "\n-- Iteration $i --\n";
var_dump(array_keys($array));
$i++;
}
echo "Done\n";
?>
--EXPECTF--
*** Testing array_keys() on various arrays ***
-- Iteration 0 --
array(0) {
}
-- Iteration 1 --
array(1) {
[0]=>
int(0)
}
-- Iteration 2 --
array(1) {
[0]=>
int(0)
}
-- Iteration 3 --
array(1) {
[0]=>
string(5) "Hello"
}
-- Iteration 4 --
array(1) {
[0]=>
string(0) ""
}
-- Iteration 5 --
array(4) {
[0]=>
int(0)
[1]=>
int(1)
[2]=>
int(2)
[3]=>
string(1) "d"
}
-- Iteration 6 --
array(4) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[2]=>
string(1) "c"
[3]=>
string(1) "d"
}
-- Iteration 7 --
array(4) {
[0]=>
int(0)
[1]=>
int(1)
[2]=>
int(2)
[3]=>
int(3)
}
-- Iteration 8 --
array(5) {
[0]=>
int(0)
[1]=>
int(1)
[2]=>
string(1) "a"
[3]=>
int(3)
[4]=>
int(5)
}
-- Iteration 9 --
array(5) {
[0]=>
int(1)
[1]=>
int(0)
[2]=>
string(0) ""
[3]=>
int(2)
[4]=>
int(3)
}
-- Iteration 10 --
array(3) {
[0]=>
string(1) "a"
[1]=>
string(2) "ab"
[2]=>
string(2) "cd"
}
-- Iteration 11 --
array(4) {
[0]=>
int(0)
[1]=>
int(1)
[2]=>
int(2)
[3]=>
string(0) ""
}
Done
--UEXPECTF--
*** Testing array_keys() on various arrays ***
-- Iteration 0 --
array(0) {
}
-- Iteration 1 --
array(1) {
[0]=>
int(0)
}
-- Iteration 2 --
array(1) {
[0]=>
int(0)
}
-- Iteration 3 --
array(1) {
[0]=>
unicode(5) "Hello"
}
-- Iteration 4 --
array(1) {
[0]=>
unicode(0) ""
}
-- Iteration 5 --
array(4) {
[0]=>
int(0)
[1]=>
int(1)
[2]=>
int(2)
[3]=>
unicode(1) "d"
}
-- Iteration 6 --
array(4) {
[0]=>
unicode(1) "a"
[1]=>
unicode(1) "b"
[2]=>
unicode(1) "c"
[3]=>
unicode(1) "d"
}
-- Iteration 7 --
array(4) {
[0]=>
int(0)
[1]=>
int(1)
[2]=>
int(2)
[3]=>
int(3)
}
-- Iteration 8 --
array(5) {
[0]=>
int(0)
[1]=>
int(1)
[2]=>
unicode(1) "a"
[3]=>
int(3)
[4]=>
int(5)
}
-- Iteration 9 --
array(5) {
[0]=>
int(1)
[1]=>
int(0)
[2]=>
unicode(0) ""
[3]=>
int(2)
[4]=>
int(3)
}
-- Iteration 10 --
array(3) {
[0]=>
unicode(1) "a"
[1]=>
unicode(2) "ab"
[2]=>
unicode(2) "cd"
}
-- Iteration 11 --
array(4) {
[0]=>
int(0)
[1]=>
int(1)
[2]=>
int(2)
[3]=>
unicode(0) ""
}
Done

View File

@ -0,0 +1,77 @@
--TEST--
Test array_keys() function (variation - 2)
--SKIPIF--
<?php
if (PHP_INT_SIZE != 4) die("skip this test is for 32bit platform only");
?>
--FILE--
<?php
echo "\n*** Testing array_keys() on range of values ***\n";
$arr_range = array(
2147483647 => 1,
2147483648 => 2,
-2147483647 => 3,
-2147483648 => 4,
-2147483649 => 5,
-0 => 6,
0 => 7
);
var_dump(array_keys($arr_range));
echo "\n*** Testing array_keys() on an array created on the fly ***\n";
var_dump(array_keys(array("a" => 1, "b" => 2, "c" => 3)));
var_dump(array_keys(array())); // null array
echo "Done\n";
?>
--EXPECTF--
*** Testing array_keys() on range of values ***
array(4) {
[0]=>
int(2147483647)
[1]=>
int(-2147483648)
[2]=>
int(-2147483647)
[3]=>
int(0)
}
*** Testing array_keys() on an array created on the fly ***
array(3) {
[0]=>
string(1) "a"
[1]=>
string(1) "b"
[2]=>
string(1) "c"
}
array(0) {
}
Done
--UEXPECTF--
*** Testing array_keys() on range of values ***
array(4) {
[0]=>
int(2147483647)
[1]=>
int(-2147483648)
[2]=>
int(-2147483647)
[3]=>
int(0)
}
*** Testing array_keys() on an array created on the fly ***
array(3) {
[0]=>
unicode(1) "a"
[1]=>
unicode(1) "b"
[2]=>
unicode(1) "c"
}
array(0) {
}
Done

View File

@ -0,0 +1,177 @@
--TEST--
Test array_keys() function (variation - 3)
--FILE--
<?php
echo "*** Testing array_keys() on all the types other than arrays ***\n";
$types_arr = array(
TRUE => TRUE,
FALSE => FALSE,
1 => 1,
0 => 0,
-1 => -1,
"1" => "1",
"0" => "0",
"-1" => "-1",
NULL,
array(),
"php" => "php",
"" => ""
);
$values = array(TRUE, FALSE, 1, 0, -1, "1", "0", "-1", NULL, array(), "php", "");
foreach ($values as $value){
var_dump(array_keys($types_arr, $value));
}
echo "Done\n";
?>
--EXPECTF--
*** Testing array_keys() on all the types other than arrays ***
array(3) {
[0]=>
int(1)
[1]=>
int(-1)
[2]=>
string(3) "php"
}
array(4) {
[0]=>
int(0)
[1]=>
int(2)
[2]=>
int(3)
[3]=>
string(0) ""
}
array(1) {
[0]=>
int(1)
}
array(4) {
[0]=>
int(0)
[1]=>
int(2)
[2]=>
string(3) "php"
[3]=>
string(0) ""
}
array(1) {
[0]=>
int(-1)
}
array(1) {
[0]=>
int(1)
}
array(1) {
[0]=>
int(0)
}
array(1) {
[0]=>
int(-1)
}
array(3) {
[0]=>
int(2)
[1]=>
int(3)
[2]=>
string(0) ""
}
array(2) {
[0]=>
int(2)
[1]=>
int(3)
}
array(1) {
[0]=>
string(3) "php"
}
array(2) {
[0]=>
int(2)
[1]=>
string(0) ""
}
Done
--UEXPECTF--
*** Testing array_keys() on all the types other than arrays ***
array(3) {
[0]=>
int(1)
[1]=>
int(-1)
[2]=>
unicode(3) "php"
}
array(4) {
[0]=>
int(0)
[1]=>
int(2)
[2]=>
int(3)
[3]=>
unicode(0) ""
}
array(1) {
[0]=>
int(1)
}
array(4) {
[0]=>
int(0)
[1]=>
int(2)
[2]=>
unicode(3) "php"
[3]=>
unicode(0) ""
}
array(1) {
[0]=>
int(-1)
}
array(1) {
[0]=>
int(1)
}
array(1) {
[0]=>
int(0)
}
array(1) {
[0]=>
int(-1)
}
array(3) {
[0]=>
int(2)
[1]=>
int(3)
[2]=>
unicode(0) ""
}
array(2) {
[0]=>
int(2)
[1]=>
int(3)
}
array(1) {
[0]=>
unicode(3) "php"
}
array(2) {
[0]=>
int(2)
[1]=>
unicode(0) ""
}
Done

View File

@ -0,0 +1,109 @@
--TEST--
Test array_keys() function (variation - 4)
--FILE--
<?php
echo "*** Testing array_keys() on all the types other than arrays ***\n";
$types_arr = array(
TRUE => TRUE,
FALSE => FALSE,
1 => 1,
0 => 0,
-1 => -1,
"1" => "1",
"0" => "0",
"-1" => "-1",
NULL,
array(),
"php" => "php",
"" => ""
);
$values = array(TRUE, FALSE, 1, 0, -1, "1", "0", "-1", NULL, array(), "php", "");
foreach ($values as $value){
var_dump(array_keys($types_arr, $value, TRUE));
}
echo "Done\n";
?>
--EXPECTF--
*** Testing array_keys() on all the types other than arrays ***
array(0) {
}
array(0) {
}
array(0) {
}
array(0) {
}
array(0) {
}
array(1) {
[0]=>
int(1)
}
array(1) {
[0]=>
int(0)
}
array(1) {
[0]=>
int(-1)
}
array(1) {
[0]=>
int(2)
}
array(1) {
[0]=>
int(3)
}
array(1) {
[0]=>
string(3) "php"
}
array(1) {
[0]=>
string(0) ""
}
Done
--UEXPECTF--
*** Testing array_keys() on all the types other than arrays ***
array(0) {
}
array(0) {
}
array(0) {
}
array(0) {
}
array(0) {
}
array(1) {
[0]=>
int(1)
}
array(1) {
[0]=>
int(0)
}
array(1) {
[0]=>
int(-1)
}
array(1) {
[0]=>
int(2)
}
array(1) {
[0]=>
int(3)
}
array(1) {
[0]=>
unicode(3) "php"
}
array(1) {
[0]=>
unicode(0) ""
}
Done

View File

@ -0,0 +1,40 @@
--TEST--
Test array_keys() function (variation - 5)
--FILE--
<?php
echo "\n*** Testing array_keys() with resource type ***\n";
$resource1 = fopen( __FILE__, "r");
$resource2 = opendir( "." );
/* creating an array with resource types as elements */
$arr_resource = array($resource1, $resource2);
var_dump(array_keys($arr_resource, $resource1)); // loose type checking
var_dump(array_keys($arr_resource, $resource1, TRUE)); // strict type checking
var_dump(array_keys($arr_resource, $resource2)); // loose type checking
var_dump(array_keys($arr_resource, $resource2, TRUE)); // strict type checking
/* Closing the resource handles */
fclose( $resource1 );
closedir( $resource2 );
?>
--EXPECTF--
*** Testing array_keys() with resource type ***
array(1) {
[0]=>
int(0)
}
array(1) {
[0]=>
int(0)
}
array(1) {
[0]=>
int(1)
}
array(1) {
[0]=>
int(1)
}