I wrote:
These test results scared me as well, but it looks like this array test itsself is flawed: it relies on the fact that integers automatically wrap around to negative values at INT_MAX (=2147483647 on 32 bit machines).Attaching a patch for the array test: I changed the array in data.inc
to have only "normal" values (1000 and -1000) instead of 2147483647 and
-2147483647, and used the output of the tests on a 32 bit Linux machine to be the expected result. With the patch, all three tests PASSed on the 64 bit Tru64 machine. So array sorting is fortunately not broken again on Tru64.
Regards...
Michael
diff -r -u ../php-cvs/php4/ext/standard/tests/array/001.phpt ext/standard/tests/array/001.phpt --- ../php-cvs/php4/ext/standard/tests/array/001.phpt Sat Nov 9 11:42:49 2002 +++ ext/standard/tests/array/001.phpt Sat Nov 16 16:08:01 2002 @@ -57,7 +57,7 @@ int(27) [3]=> string(4) "test" - ["-2147483647"]=> + ["-1000"]=> array(2) { [0]=> string(6) "banana" @@ -113,7 +113,7 @@ int(27) int(3) string(4) "test" -string(11) "-2147483647" +string(5) "-1000" array(2) { [0]=> string(6) "banana" diff -r -u ../php-cvs/php4/ext/standard/tests/array/002.phpt ext/standard/tests/array/002.phpt --- ../php-cvs/php4/ext/standard/tests/array/002.phpt Sat Nov 9 11:42:49 2002 +++ ext/standard/tests/array/002.phpt Sat Nov 16 16:07:14 2002 @@ -24,16 +24,43 @@ var_dump ($data); } +echo "Unsorted data:\n"; +var_dump ($data); foreach (array ('arsort', 'asort', 'krsort', 'ksort', 'rsort', 'sort') as $test_function) { test_sort ($test_function, $data); } ?> --EXPECT-- --- Testing arsort() -- +Unsorted data: +array(8) { + [0]=> + string(3) "PHP" + [17]=> + string(27) "PHP: Hypertext Preprocessor" + [5]=> + string(4) "Test" + ["test"]=> + int(27) + [1000]=> + string(4) "test" + ["-1000"]=> + array(2) { + [0]=> + string(6) "banana" + [1]=> + string(6) "orange" + } + [1001]=> + string(6) "monkey" + [16777216]=> + float(-0.33333333333333) +} + + -- Testing arsort() -- No second argument: array(8) { - ["-2147483647"]=> + ["-1000"]=> array(2) { [0]=> string(6) "banana" @@ -42,9 +69,9 @@ } ["test"]=> int(27) - [2147483647]=> + [1000]=> string(4) "test" - [-2147483648]=> + [1001]=> string(6) "monkey" [5]=> string(4) "Test" @@ -57,7 +84,7 @@ } Using SORT_REGULAR: array(8) { - ["-2147483647"]=> + ["-1000"]=> array(2) { [0]=> string(6) "banana" @@ -66,9 +93,9 @@ } ["test"]=> int(27) - [2147483647]=> + [1000]=> string(4) "test" - [-2147483648]=> + [1001]=> string(6) "monkey" [5]=> string(4) "Test" @@ -83,7 +110,7 @@ array(8) { ["test"]=> int(27) - ["-2147483647"]=> + ["-1000"]=> array(2) { [0]=> string(6) "banana" @@ -94,20 +121,20 @@ string(3) "PHP" [17]=> string(27) "PHP: Hypertext Preprocessor" - [-2147483648]=> + [1001]=> string(6) "monkey" [5]=> string(4) "Test" - [2147483647]=> + [1000]=> string(4) "test" [16777216]=> float(-0.33333333333333) } Using SORT_STRING array(8) { - [2147483647]=> + [1000]=> string(4) "test" - [-2147483648]=> + [1001]=> string(6) "monkey" [5]=> string(4) "Test" @@ -115,7 +142,7 @@ string(27) "PHP: Hypertext Preprocessor" [0]=> string(3) "PHP" - ["-2147483647"]=> + ["-1000"]=> array(2) { [0]=> string(6) "banana" @@ -139,13 +166,13 @@ string(27) "PHP: Hypertext Preprocessor" [5]=> string(4) "Test" - [-2147483648]=> + [1001]=> string(6) "monkey" - [2147483647]=> + [1000]=> string(4) "test" ["test"]=> int(27) - ["-2147483647"]=> + ["-1000"]=> array(2) { [0]=> string(6) "banana" @@ -163,13 +190,13 @@ string(27) "PHP: Hypertext Preprocessor" [5]=> string(4) "Test" - [-2147483648]=> + [1001]=> string(6) "monkey" - [2147483647]=> + [1000]=> string(4) "test" ["test"]=> int(27) - ["-2147483647"]=> + ["-1000"]=> array(2) { [0]=> string(6) "banana" @@ -181,9 +208,9 @@ array(8) { [16777216]=> float(-0.33333333333333) - [-2147483648]=> + [1001]=> string(6) "monkey" - [2147483647]=> + [1000]=> string(4) "test" [5]=> string(4) "Test" @@ -191,7 +218,7 @@ string(27) "PHP: Hypertext Preprocessor" [0]=> string(3) "PHP" - ["-2147483647"]=> + ["-1000"]=> array(2) { [0]=> string(6) "banana" @@ -207,7 +234,7 @@ float(-0.33333333333333) ["test"]=> int(27) - ["-2147483647"]=> + ["-1000"]=> array(2) { [0]=> string(6) "banana" @@ -220,19 +247,21 @@ string(27) "PHP: Hypertext Preprocessor" [5]=> string(4) "Test" - [-2147483648]=> + [1001]=> string(6) "monkey" - [2147483647]=> + [1000]=> string(4) "test" } -- Testing krsort() -- No second argument: array(8) { - [2147483647]=> - string(4) "test" [16777216]=> float(-0.33333333333333) + [1001]=> + string(6) "monkey" + [1000]=> + string(4) "test" [17]=> string(27) "PHP: Hypertext Preprocessor" [5]=> @@ -241,46 +270,46 @@ int(27) [0]=> string(3) "PHP" - ["-2147483647"]=> + ["-1000"]=> array(2) { [0]=> string(6) "banana" [1]=> string(6) "orange" } - [-2147483648]=> - string(6) "monkey" } Using SORT_REGULAR: array(8) { - [2147483647]=> - string(4) "test" [16777216]=> float(-0.33333333333333) + [1001]=> + string(6) "monkey" + [1000]=> + string(4) "test" [17]=> string(27) "PHP: Hypertext Preprocessor" [5]=> string(4) "Test" - ["test"]=> - int(27) [0]=> string(3) "PHP" - ["-2147483647"]=> + ["test"]=> + int(27) + ["-1000"]=> array(2) { [0]=> string(6) "banana" [1]=> string(6) "orange" } - [-2147483648]=> - string(6) "monkey" } Using SORT_NUMERIC: array(8) { - [2147483647]=> - string(4) "test" [16777216]=> float(-0.33333333333333) + [1001]=> + string(6) "monkey" + [1000]=> + string(4) "test" [17]=> string(27) "PHP: Hypertext Preprocessor" [5]=> @@ -289,15 +318,13 @@ int(27) [0]=> string(3) "PHP" - ["-2147483647"]=> + ["-1000"]=> array(2) { [0]=> string(6) "banana" [1]=> string(6) "orange" } - [-2147483648]=> - string(6) "monkey" } Using SORT_STRING array(8) { @@ -305,17 +332,17 @@ int(27) [5]=> string(4) "Test" - [2147483647]=> - string(4) "test" [17]=> string(27) "PHP: Hypertext Preprocessor" [16777216]=> float(-0.33333333333333) + [1001]=> + string(6) "monkey" + [1000]=> + string(4) "test" [0]=> string(3) "PHP" - [-2147483648]=> - string(6) "monkey" - ["-2147483647"]=> + ["-1000"]=> array(2) { [0]=> string(6) "banana" @@ -327,9 +354,7 @@ -- Testing ksort() -- No second argument: array(8) { - [-2147483648]=> - string(6) "monkey" - ["-2147483647"]=> + ["-1000"]=> array(2) { [0]=> string(6) "banana" @@ -344,16 +369,16 @@ string(4) "Test" [17]=> string(27) "PHP: Hypertext Preprocessor" + [1000]=> + string(4) "test" + [1001]=> + string(6) "monkey" [16777216]=> float(-0.33333333333333) - [2147483647]=> - string(4) "test" } Using SORT_REGULAR: array(8) { - [-2147483648]=> - string(6) "monkey" - ["-2147483647"]=> + ["-1000"]=> array(2) { [0]=> string(6) "banana" @@ -368,16 +393,16 @@ string(4) "Test" [17]=> string(27) "PHP: Hypertext Preprocessor" + [1000]=> + string(4) "test" + [1001]=> + string(6) "monkey" [16777216]=> float(-0.33333333333333) - [2147483647]=> - string(4) "test" } Using SORT_NUMERIC: array(8) { - [-2147483648]=> - string(6) "monkey" - ["-2147483647"]=> + ["-1000"]=> array(2) { [0]=> string(6) "banana" @@ -392,30 +417,32 @@ string(4) "Test" [17]=> string(27) "PHP: Hypertext Preprocessor" + [1000]=> + string(4) "test" + [1001]=> + string(6) "monkey" [16777216]=> float(-0.33333333333333) - [2147483647]=> - string(4) "test" } Using SORT_STRING array(8) { - ["-2147483647"]=> + ["-1000"]=> array(2) { [0]=> string(6) "banana" [1]=> string(6) "orange" } - [-2147483648]=> - string(6) "monkey" [0]=> string(3) "PHP" + [1000]=> + string(4) "test" + [1001]=> + string(6) "monkey" [16777216]=> float(-0.33333333333333) [17]=> string(27) "PHP: Hypertext Preprocessor" - [2147483647]=> - string(4) "test" [5]=> string(4) "Test" ["test"]=> diff -r -u ../php-cvs/php4/ext/standard/tests/array/003.phpt ext/standard/tests/array/003.phpt --- ../php-cvs/php4/ext/standard/tests/array/003.phpt Sat Nov 9 11:42:49 2002 +++ ext/standard/tests/array/003.phpt Sat Nov 16 16:08:59 2002 @@ -34,7 +34,7 @@ array(8) { [16777216]=> float(-0.33333333333333) - ["-2147483647"]=> + ["-1000"]=> array(2) { [0]=> string(6) "banana" @@ -49,31 +49,31 @@ string(27) "PHP: Hypertext Preprocessor" [5]=> string(4) "Test" - [-2147483648]=> + [1001]=> string(6) "monkey" - [2147483647]=> + [1000]=> string(4) "test" } -- Testing uksort() -- array(8) { - ["-2147483647"]=> + ["-1000"]=> array(2) { [0]=> string(6) "banana" [1]=> string(6) "orange" } - [-2147483648]=> - string(6) "monkey" [0]=> string(3) "PHP" + [1000]=> + string(4) "test" + [1001]=> + string(6) "monkey" [16777216]=> float(-0.33333333333333) [17]=> string(27) "PHP: Hypertext Preprocessor" - [2147483647]=> - string(4) "test" [5]=> string(4) "Test" ["test"]=> diff -r -u ../php-cvs/php4/ext/standard/tests/array/data.inc ext/standard/tests/array/data.inc --- ../php-cvs/php4/ext/standard/tests/array/data.inc Sat Nov 9 11:42:49 2002 +++ ext/standard/tests/array/data.inc Sat Nov 16 16:05:49 2002 @@ -5,8 +5,8 @@ 17=>'PHP: Hypertext Preprocessor', 5=>'Test', 'test'=>27, - 2147483647=>'test', - "-2147483647"=>array('banana', 'orange'), + 1000=>'test', + "-1000"=>array('banana', 'orange'), 'monkey', $tmp=>-1/3 );
-- PHP Development Mailing List <http://www.php.net/> To unsubscribe, visit: http://www.php.net/unsub.php