kraghuba Fri Sep 7 14:22:56 2007 UTC Modified files: /php-src/ext/standard/tests/strings strncmp_basic.phpt strncmp_variation1.phpt strncmp_variation2.phpt strncmp_variation3.phpt strncmp_variation4.phpt strncmp_variation5.phpt strncmp_error.phpt strncmp_variation6.phpt strncmp_variation7.phpt strncmp_variation8.phpt strncmp_variation9.phpt Log: New testcases for strncmp() function
http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/strings/strncmp_basic.phpt?r1=1.1&r2=1.2&diff_format=u Index: php-src/ext/standard/tests/strings/strncmp_basic.phpt diff -u /dev/null php-src/ext/standard/tests/strings/strncmp_basic.phpt:1.2 --- /dev/null Fri Sep 7 14:22:56 2007 +++ php-src/ext/standard/tests/strings/strncmp_basic.phpt Fri Sep 7 14:22:56 2007 @@ -0,0 +1,29 @@ +--TEST-- +Test strncmp() function : basic functionality +--FILE-- +<?php +/* Prototype : int strncmp ( string $str1, string $str2, int $len ); + * Description: Binary safe case-sensitive string comparison of the first n characters + * Source code: Zend/zend_builtin_functions.c +*/ + +/* Test strncmp() function with all three arguments */ + +echo "*** Test strncmp() function: basic functionality ***\n"; +var_dump( strncmp("Hello", "Hello", 5) ); //expected: int(0) +var_dump( strncmp("Hello", "Hi", 5) ); //expected: int(-1) +var_dump( strncmp("Hi", "Hello", 5) ); //expected: int(1) +echo "*** Done ***"; +?> +--EXPECTF-- +*** Test strncmp() function: basic functionality *** +int(0) +int(-1) +int(1) +*** Done *** +--UEXPECTF-- +*** Test strncmp() function: basic functionality *** +int(0) +int(-1) +int(1) +*** Done *** http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/strings/strncmp_variation1.phpt?r1=1.1&r2=1.2&diff_format=u Index: php-src/ext/standard/tests/strings/strncmp_variation1.phpt diff -u /dev/null php-src/ext/standard/tests/strings/strncmp_variation1.phpt:1.2 --- /dev/null Fri Sep 7 14:22:56 2007 +++ php-src/ext/standard/tests/strings/strncmp_variation1.phpt Fri Sep 7 14:22:56 2007 @@ -0,0 +1,245 @@ +--TEST-- +Test strncmp() function: usage variations - different inputs(alphabet characters) +--FILE-- +<?php +/* Prototype : int strncmp ( string $str1, string $str2, int $len ); + * Description: Binary safe case-sensitive string comparison of the first n characters + * Source code: Zend/zend_builtin_functions.c +*/ + +/* Test strncmp() function with upper-case and lower-case alphabets as inputs for 'str1' and 'str2' */ + +echo "*** Test strncmp() function: with chars ***\n"; +echo "-- Passing upper-case letters for 'str1' --\n"; +for($ASCII = 65; $ASCII <= 90; $ASCII++) { + var_dump( strncmp( chr($ASCII), chr($ASCII), 1 ) ); //comparing uppercase letters with uppercase letters; exp: int(0) + var_dump( strncmp( chr($ASCII), chr($ASCII + 32), 1 ) ); //comparing uppercase letters with lowercase letters; exp: int(-1) +} + +echo "\n-- Passing lower-case letters for 'str1' --\n"; +for($ASCII = 97; $ASCII <= 122; $ASCII++) { + var_dump( strncmp( chr($ASCII), chr($ASCII), 1 ) ); //comparing lowercase letters with lowercase letters; exp: int(0) + var_dump( strncmp( chr($ASCII), chr($ASCII - 32), 1 ) ); //comparing lowercase letters with uppercase letters; exp: int(1) +} +echo "*** Done ***\n"; +?> +--EXPECTF-- +*** Test strncmp() function: with chars *** +-- Passing upper-case letters for 'str1' -- +int(0) +int(-1) +int(0) +int(-1) +int(0) +int(-1) +int(0) +int(-1) +int(0) +int(-1) +int(0) +int(-1) +int(0) +int(-1) +int(0) +int(-1) +int(0) +int(-1) +int(0) +int(-1) +int(0) +int(-1) +int(0) +int(-1) +int(0) +int(-1) +int(0) +int(-1) +int(0) +int(-1) +int(0) +int(-1) +int(0) +int(-1) +int(0) +int(-1) +int(0) +int(-1) +int(0) +int(-1) +int(0) +int(-1) +int(0) +int(-1) +int(0) +int(-1) +int(0) +int(-1) +int(0) +int(-1) +int(0) +int(-1) + +-- Passing lower-case letters for 'str1' -- +int(0) +int(1) +int(0) +int(1) +int(0) +int(1) +int(0) +int(1) +int(0) +int(1) +int(0) +int(1) +int(0) +int(1) +int(0) +int(1) +int(0) +int(1) +int(0) +int(1) +int(0) +int(1) +int(0) +int(1) +int(0) +int(1) +int(0) +int(1) +int(0) +int(1) +int(0) +int(1) +int(0) +int(1) +int(0) +int(1) +int(0) +int(1) +int(0) +int(1) +int(0) +int(1) +int(0) +int(1) +int(0) +int(1) +int(0) +int(1) +int(0) +int(1) +int(0) +int(1) +*** Done *** +--UEXPECTF-- +*** Test strncmp() function: with chars *** +-- Passing upper-case letters for 'str1' -- +int(0) +int(-1) +int(0) +int(-1) +int(0) +int(-1) +int(0) +int(-1) +int(0) +int(-1) +int(0) +int(-1) +int(0) +int(-1) +int(0) +int(-1) +int(0) +int(-1) +int(0) +int(-1) +int(0) +int(-1) +int(0) +int(-1) +int(0) +int(-1) +int(0) +int(-1) +int(0) +int(-1) +int(0) +int(-1) +int(0) +int(-1) +int(0) +int(-1) +int(0) +int(-1) +int(0) +int(-1) +int(0) +int(-1) +int(0) +int(-1) +int(0) +int(-1) +int(0) +int(-1) +int(0) +int(-1) +int(0) +int(-1) + +-- Passing lower-case letters for 'str1' -- +int(0) +int(1) +int(0) +int(1) +int(0) +int(1) +int(0) +int(1) +int(0) +int(1) +int(0) +int(1) +int(0) +int(1) +int(0) +int(1) +int(0) +int(1) +int(0) +int(1) +int(0) +int(1) +int(0) +int(1) +int(0) +int(1) +int(0) +int(1) +int(0) +int(1) +int(0) +int(1) +int(0) +int(1) +int(0) +int(1) +int(0) +int(1) +int(0) +int(1) +int(0) +int(1) +int(0) +int(1) +int(0) +int(1) +int(0) +int(1) +int(0) +int(1) +int(0) +int(1) +*** Done *** http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/strings/strncmp_variation2.phpt?r1=1.1&r2=1.2&diff_format=u Index: php-src/ext/standard/tests/strings/strncmp_variation2.phpt diff -u /dev/null php-src/ext/standard/tests/strings/strncmp_variation2.phpt:1.2 --- /dev/null Fri Sep 7 14:22:56 2007 +++ php-src/ext/standard/tests/strings/strncmp_variation2.phpt Fri Sep 7 14:22:56 2007 @@ -0,0 +1,96 @@ +--TEST-- +Test strncmp() function: usage variations - different inputs(double quoted strings) +--FILE-- +<?php +/* Prototype : int strncmp ( string $str1, string $str2, int $len ); + * Description: Binary safe case-sensitive string comparison of the first n characters + * Source code: Zend/zend_builtin_functions.c +*/ + +/* Test strncmp() function with different strings for 'str1', 'str2' and considering case sensitive */ + +echo "*** Test strncmp() function: with different input strings ***\n"; +$strings = array( + "Hello, World", + b"hello, world", + "HELLO, WORLD", + "Hello, World\n", + "Hello".chr(0)."World" +); +/* loop through to compare each string with the other string */ +$count = 1; +for($index1 = 0; $index1 < count($strings); $index1++) { + echo "-- Iteration $count --\n"; + for($index2 = 0; $index2 < count($strings); $index2++) { + var_dump( strncmp( $strings[$index1], $strings[$index2], (strlen($strings[$index1]) + 1) ) ); + } + $count ++; +} +echo "*** Done ***\n"; +?> +--EXPECTF-- +*** Test strncmp() function: with different input strings *** +-- Iteration 1 -- +int(0) +int(-1) +int(1) +int(-1) +int(1) +-- Iteration 2 -- +int(1) +int(0) +int(1) +int(1) +int(1) +-- Iteration 3 -- +int(-1) +int(-1) +int(0) +int(-1) +int(-1) +-- Iteration 4 -- +int(1) +int(-1) +int(1) +int(0) +int(1) +-- Iteration 5 -- +int(-1) +int(-1) +int(1) +int(-1) +int(0) +*** Done *** +--UEXPECTF-- +*** Test strncmp() function: with different input strings *** +-- Iteration 1 -- +int(0) +int(-1) +int(1) +int(-1) +int(1) +-- Iteration 2 -- +int(1) +int(0) +int(1) +int(1) +int(1) +-- Iteration 3 -- +int(-1) +int(-1) +int(0) +int(-1) +int(-1) +-- Iteration 4 -- +int(1) +int(-1) +int(1) +int(0) +int(1) +-- Iteration 5 -- +int(-1) +int(-1) +int(1) +int(-1) +int(0) +*** Done *** http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/strings/strncmp_variation3.phpt?r1=1.1&r2=1.2&diff_format=u Index: php-src/ext/standard/tests/strings/strncmp_variation3.phpt diff -u /dev/null php-src/ext/standard/tests/strings/strncmp_variation3.phpt:1.2 --- /dev/null Fri Sep 7 14:22:56 2007 +++ php-src/ext/standard/tests/strings/strncmp_variation3.phpt Fri Sep 7 14:22:56 2007 @@ -0,0 +1,56 @@ +--TEST-- +Test strncmp() function: usage variations - different lengths +--FILE-- +<?php +/* Prototype : int strncmp ( string $str1, string $str2, int $len ); + * Description: Binary safe case-sensitive string comparison of the first n characters + * Source code: Zend/zend_builtin_functions.c +*/ + +/* Test strncmp() with various nteger length values including zero and considering case sensitive */ + +echo "*** Test strncmp() function: with different lengths ***\n"; +/* definitions of required variables */ +$str1 = "Hello, World\n"; +$str2 = "Hello, world\n"; + +/* loop through to compare the strings, for various length values */ +for($len = strlen($str1); $len >= 0; $len--) { + var_dump( strncmp($str1, $str2, $len) ); +} +echo "*** Done ***\n"; +?> +--EXPECTF-- +*** Test strncmp() function: with different lengths *** +int(-1) +int(-1) +int(-1) +int(-1) +int(-1) +int(-1) +int(0) +int(0) +int(0) +int(0) +int(0) +int(0) +int(0) +int(0) +*** Done *** +--UEXPECTF-- +*** Test strncmp() function: with different lengths *** +int(-1) +int(-1) +int(-1) +int(-1) +int(-1) +int(-1) +int(0) +int(0) +int(0) +int(0) +int(0) +int(0) +int(0) +int(0) +*** Done *** http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/strings/strncmp_variation4.phpt?r1=1.1&r2=1.2&diff_format=u Index: php-src/ext/standard/tests/strings/strncmp_variation4.phpt diff -u /dev/null php-src/ext/standard/tests/strings/strncmp_variation4.phpt:1.2 --- /dev/null Fri Sep 7 14:22:56 2007 +++ php-src/ext/standard/tests/strings/strncmp_variation4.phpt Fri Sep 7 14:22:56 2007 @@ -0,0 +1,281 @@ +--TEST-- +Test strncmp() function : usage variations - different inputs(all types) +--FILE-- +<?php +/* Prototype : int strncmp ( string $str1, string $str2, int $len ); + * Description: Binary safe case-sensitive string comparison of the first n characters + * Source code: Zend/zend_builtin_functions.c +*/ + +/* Test strncmp() function with the input strings are of all types */ + +echo "*** Testing strncmp() function: by supplying all types for 'str1' and 'str2' ***\n"; +/* get an unset variable */ +$unset_var = 'string_val'; +unset($unset_var); + +/* get resource handle */ +$file_handle = fopen(__FILE__, "r"); + +/* declaring a class */ +class sample { + public function __toString() { + return "object"; + } +} + + +/* array with different values */ +$values = array ( + /* integer values */ + 0, + 1, + 12345, + -2345, + + /* float values */ + 10.5, + -10.5, + 10.5e10, + 10.6E-10, + .5, + + /* hexadecimal values */ + 0x12, + -0x12, + + /* octal values */ + 012, + -012, + 01.2, + + /* array values */ + array(), + array(0), + array(1), + array(1, 2), + array('color' => 'red', 'item' => 'pen'), + + /* boolean values */ + true, + false, + TRUE, + FALSE, + + /* nulls */ + NULL, + null, + + /* empty string */ + "", + '', + + /* undefined variable */ + $undefined_var, + + /* unset variable */ + $unset_var, + + /* resource */ + $file_handle, + + /* object */ + new sample() +); + +/* loop through each element of the array and check the working of strncmp() */ +$counter = 1; +for($index = 0; $index < count($values); $index ++) { + echo "-- Iteration $counter --\n"; + $str1 = $values[$index]; + $str2 = $values[$index]; + $len = strlen($values[$index]) + 1; + var_dump( strncmp($str1, $str2, $len) ); + $counter ++; +} +fclose($file_handle); + +echo "*** Done ***\n"; +?> +--EXPECTF-- +*** Testing strncmp() function: by supplying all types for 'str1' and 'str2' *** + +Notice: Undefined variable: undefined_var in %s on line %d + +Notice: Undefined variable: unset_var in %s on line %d +-- Iteration 1 -- +int(0) +-- Iteration 2 -- +int(0) +-- Iteration 3 -- +int(0) +-- Iteration 4 -- +int(0) +-- Iteration 5 -- +int(0) +-- Iteration 6 -- +int(0) +-- Iteration 7 -- +int(0) +-- Iteration 8 -- +int(0) +-- Iteration 9 -- +int(0) +-- Iteration 10 -- +int(0) +-- Iteration 11 -- +int(0) +-- Iteration 12 -- +int(0) +-- Iteration 13 -- +int(0) +-- Iteration 14 -- +int(0) +-- Iteration 15 -- + +Notice: Array to string conversion in %s on line %d + +Warning: strncmp() expects parameter 1 to be string (Unicode or binary), array given in %s on line %d +NULL +-- Iteration 16 -- + +Notice: Array to string conversion in %s on line %d + +Warning: strncmp() expects parameter 1 to be string (Unicode or binary), array given in %s on line %d +NULL +-- Iteration 17 -- + +Notice: Array to string conversion in %s on line %d + +Warning: strncmp() expects parameter 1 to be string (Unicode or binary), array given in %s on line %d +NULL +-- Iteration 18 -- + +Notice: Array to string conversion in %s on line %d + +Warning: strncmp() expects parameter 1 to be string (Unicode or binary), array given in %s on line %d +NULL +-- Iteration 19 -- + +Notice: Array to string conversion in %s on line %d + +Warning: strncmp() expects parameter 1 to be string (Unicode or binary), array given in %s on line %d +NULL +-- Iteration 20 -- +int(0) +-- Iteration 21 -- +int(0) +-- Iteration 22 -- +int(0) +-- Iteration 23 -- +int(0) +-- Iteration 24 -- +int(0) +-- Iteration 25 -- +int(0) +-- Iteration 26 -- +int(0) +-- Iteration 27 -- +int(0) +-- Iteration 28 -- +int(0) +-- Iteration 29 -- +int(0) +-- Iteration 30 -- + +Warning: strncmp() expects parameter 1 to be string (Unicode or binary), resource given in %s on line %d +NULL +-- Iteration 31 -- +int(0) +*** Done *** +--UEXPECTF-- +*** Testing strncmp() function: by supplying all types for 'str1' and 'str2' *** + +Notice: Undefined variable: undefined_var in %s on line %d + +Notice: Undefined variable: unset_var in %s on line %d +-- Iteration 1 -- +int(0) +-- Iteration 2 -- +int(0) +-- Iteration 3 -- +int(0) +-- Iteration 4 -- +int(0) +-- Iteration 5 -- +int(0) +-- Iteration 6 -- +int(0) +-- Iteration 7 -- +int(0) +-- Iteration 8 -- +int(0) +-- Iteration 9 -- +int(0) +-- Iteration 10 -- +int(0) +-- Iteration 11 -- +int(0) +-- Iteration 12 -- +int(0) +-- Iteration 13 -- +int(0) +-- Iteration 14 -- +int(0) +-- Iteration 15 -- + +Notice: Array to string conversion in %s on line %d + +Warning: strncmp() expects parameter 1 to be string (Unicode or binary), array given in %s on line %d +NULL +-- Iteration 16 -- + +Notice: Array to string conversion in %s on line %d + +Warning: strncmp() expects parameter 1 to be string (Unicode or binary), array given in %s on line %d +NULL +-- Iteration 17 -- + +Notice: Array to string conversion in %s on line %d + +Warning: strncmp() expects parameter 1 to be string (Unicode or binary), array given in %s on line %d +NULL +-- Iteration 18 -- + +Notice: Array to string conversion in %s on line %d + +Warning: strncmp() expects parameter 1 to be string (Unicode or binary), array given in %s on line %d +NULL +-- Iteration 19 -- + +Notice: Array to string conversion in %s on line %d + +Warning: strncmp() expects parameter 1 to be string (Unicode or binary), array given in %s on line %d +NULL +-- Iteration 20 -- +int(0) +-- Iteration 21 -- +int(0) +-- Iteration 22 -- +int(0) +-- Iteration 23 -- +int(0) +-- Iteration 24 -- +int(0) +-- Iteration 25 -- +int(0) +-- Iteration 26 -- +int(0) +-- Iteration 27 -- +int(0) +-- Iteration 28 -- +int(0) +-- Iteration 29 -- +int(0) +-- Iteration 30 -- + +Warning: strncmp() expects parameter 1 to be string (Unicode or binary), resource given in %s on line %d +NULL +-- Iteration 31 -- +int(0) +*** Done *** http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/strings/strncmp_variation5.phpt?r1=1.1&r2=1.2&diff_format=u Index: php-src/ext/standard/tests/strings/strncmp_variation5.phpt diff -u /dev/null php-src/ext/standard/tests/strings/strncmp_variation5.phpt:1.2 --- /dev/null Fri Sep 7 14:22:56 2007 +++ php-src/ext/standard/tests/strings/strncmp_variation5.phpt Fri Sep 7 14:22:56 2007 @@ -0,0 +1,256 @@ +--TEST-- +Test strncmp() function : usage variations - different lengths(all types) +--FILE-- +<?php +/* Prototype : int strncmp ( string $str1, string $str2, int $len ); + * Description: Binary safe case-sensitive string comparison of the first n characters + * Source code: Zend/zend_builtin_functions.c +*/ + +/* Test strncmp() function with the length as all types, and giving the same strings for 'str1' and 'str2' */ + +echo "*** Test strncmp() function: by supplying all types for 'len' ***\n"; + +/* definition of required variables */ +$str1 = "Hello, World\n"; +$str2 = "Hello, World\n"; + +/* get an unset variable */ +$unset_var = 'string_val'; +unset($unset_var); + +/* get resource handle */ +$file_handle = fopen(__FILE__, "r"); + +/* declaring a class */ +class sample { + public function __toString() { + return "object"; + } +} + + +/* array with different values */ +$lengths = array ( + /* integer values */ + 0, + 1, + 12345, + + /* float values */ + 10.5, + 10.5e10, + 10.6E-10, + .5, + + /* hexadecimal values */ + 0x12, + + /* octal values */ + 012, + 01.2, + + /* array values */ + array(), + array(0), + array(1), + array(1, 2), + array('color' => 'red', 'item' => 'pen'), + + /* boolean values */ + true, + false, + TRUE, + FALSE, + + /* nulls */ + NULL, + null, + + /* empty string */ + "", + '', + + /* undefined variable */ + $undefined_var, + + /* unset variable */ + $unset_var, + + /* resource */ + $file_handle, + + /* object */ + new sample() +); + +/* loop through each element of the array and check the working of strncmp() */ +$counter = 1; +for($index = 0; $index < count($lengths); $index ++) { + $len = $lengths[$index]; + echo "-- Iteration $counter --\n"; + var_dump( strncmp($str1, $str2, $len) ); + $counter ++; +} +fclose($file_handle); + +echo "*** Done ***\n"; +?> +--EXPECTF-- +*** Test strncmp() function: by supplying all types for 'len' *** + +Notice: Undefined variable: undefined_var in %s on line %d + +Notice: Undefined variable: unset_var in %s on line %d +-- Iteration 1 -- +int(0) +-- Iteration 2 -- +int(0) +-- Iteration 3 -- +int(0) +-- Iteration 4 -- +int(0) +-- Iteration 5 -- +int(0) +-- Iteration 6 -- +int(0) +-- Iteration 7 -- +int(0) +-- Iteration 8 -- +int(0) +-- Iteration 9 -- +int(0) +-- Iteration 10 -- +int(0) +-- Iteration 11 -- + +Warning: strncmp() expects parameter 3 to be long, array given in %s on line %d +NULL +-- Iteration 12 -- + +Warning: strncmp() expects parameter 3 to be long, array given in %s on line %d +NULL +-- Iteration 13 -- + +Warning: strncmp() expects parameter 3 to be long, array given in %s on line %d +NULL +-- Iteration 14 -- + +Warning: strncmp() expects parameter 3 to be long, array given in %s on line %d +NULL +-- Iteration 15 -- + +Warning: strncmp() expects parameter 3 to be long, array given in %s on line %d +NULL +-- Iteration 16 -- +int(0) +-- Iteration 17 -- +int(0) +-- Iteration 18 -- +int(0) +-- Iteration 19 -- +int(0) +-- Iteration 20 -- +int(0) +-- Iteration 21 -- +int(0) +-- Iteration 22 -- + +Warning: strncmp() expects parameter 3 to be long, string given in %s on line %d +NULL +-- Iteration 23 -- + +Warning: strncmp() expects parameter 3 to be long, string given in %s on line %d +NULL +-- Iteration 24 -- +int(0) +-- Iteration 25 -- +int(0) +-- Iteration 26 -- + +Warning: strncmp() expects parameter 3 to be long, resource given in %s on line %d +NULL +-- Iteration 27 -- + +Warning: strncmp() expects parameter 3 to be long, object given in %s on line %d +NULL +*** Done *** +--UEXPECTF-- +*** Test strncmp() function: by supplying all types for 'len' *** + +Notice: Undefined variable: undefined_var in %s on line %d + +Notice: Undefined variable: unset_var in %s on line %d +-- Iteration 1 -- +int(0) +-- Iteration 2 -- +int(0) +-- Iteration 3 -- +int(0) +-- Iteration 4 -- +int(0) +-- Iteration 5 -- +int(0) +-- Iteration 6 -- +int(0) +-- Iteration 7 -- +int(0) +-- Iteration 8 -- +int(0) +-- Iteration 9 -- +int(0) +-- Iteration 10 -- +int(0) +-- Iteration 11 -- + +Warning: strncmp() expects parameter 3 to be long, array given in %s on line %d +NULL +-- Iteration 12 -- + +Warning: strncmp() expects parameter 3 to be long, array given in %s on line %d +NULL +-- Iteration 13 -- + +Warning: strncmp() expects parameter 3 to be long, array given in %s on line %d +NULL +-- Iteration 14 -- + +Warning: strncmp() expects parameter 3 to be long, array given in %s on line %d +NULL +-- Iteration 15 -- + +Warning: strncmp() expects parameter 3 to be long, array given in %s on line %d +NULL +-- Iteration 16 -- +int(0) +-- Iteration 17 -- +int(0) +-- Iteration 18 -- +int(0) +-- Iteration 19 -- +int(0) +-- Iteration 20 -- +int(0) +-- Iteration 21 -- +int(0) +-- Iteration 22 -- + +Warning: strncmp() expects parameter 3 to be long, Unicode string given in %s on line %d +NULL +-- Iteration 23 -- + +Warning: strncmp() expects parameter 3 to be long, Unicode string given in %s on line %d +NULL +-- Iteration 24 -- +int(0) +-- Iteration 25 -- +int(0) +-- Iteration 26 -- + +Warning: strncmp() expects parameter 3 to be long, resource given in %s on line %d +NULL +-- Iteration 27 -- + +Warning: strncmp() expects parameter 3 to be long, object given in %s on line %d +NULL +*** Done *** http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/strings/strncmp_error.phpt?r1=1.1&r2=1.2&diff_format=u Index: php-src/ext/standard/tests/strings/strncmp_error.phpt diff -u /dev/null php-src/ext/standard/tests/strings/strncmp_error.phpt:1.2 --- /dev/null Fri Sep 7 14:22:56 2007 +++ php-src/ext/standard/tests/strings/strncmp_error.phpt Fri Sep 7 14:22:56 2007 @@ -0,0 +1,63 @@ +--TEST-- +Test strncmp() function : error conditions +--FILE-- +<?php +/* Prototype : int strncmp ( string $str1, string $str2, int $len ); + * Description: Binary safe case-sensitive string comparison of the first n characters + * Source code: Zend/zend_builtin_functions.c +*/ + +/* Test strncmp() function with more/less number of args and invalid args */ + +echo "*** Testing strncmp() function: error conditions ***\n"; +$str1 = 'string_val'; +$str2 = 'string_val'; +$len = 10; +$extra_arg = 10; + +var_dump( strncmp() ); //Zero argument +var_dump( strncmp($str1) ); //One argument, less than expected no. of args +var_dump( strncmp($str1, $str2) ); //Two arguments, less than expected no. of args +var_dump( strncmp($str1, $str2, $len, $extra_arg) ); //Four arguments, greater than expected no. of args + +/* Invalid argument for $len */ +$len = -10; +var_dump( strncmp($str1, $str2, $len) ); +echo "*** Done ***\n"; +?> +--EXPECTF-- +*** Testing strncmp() function: error conditions *** + +Warning: strncmp() expects exactly 3 parameters, 0 given in %s on line %d +NULL + +Warning: strncmp() expects exactly 3 parameters, 1 given in %s on line %d +NULL + +Warning: strncmp() expects exactly 3 parameters, 2 given in %s on line %d +NULL + +Warning: strncmp() expects exactly 3 parameters, 4 given in %s on line %d +NULL + +Warning: Length must be greater than or equal to 0 in %s on line %d +bool(false) +*** Done *** +--UEXPECTF-- +*** Testing strncmp() function: error conditions *** + +Warning: strncmp() expects exactly 3 parameters, 0 given in %s on line %d +NULL + +Warning: strncmp() expects exactly 3 parameters, 1 given in %s on line %d +NULL + +Warning: strncmp() expects exactly 3 parameters, 2 given in %s on line %d +NULL + +Warning: strncmp() expects exactly 3 parameters, 4 given in %s on line %d +NULL + +Warning: Length must be greater than or equal to 0 in %s on line %d +bool(false) +*** Done *** http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/strings/strncmp_variation6.phpt?r1=1.1&r2=1.2&diff_format=u Index: php-src/ext/standard/tests/strings/strncmp_variation6.phpt diff -u /dev/null php-src/ext/standard/tests/strings/strncmp_variation6.phpt:1.2 --- /dev/null Fri Sep 7 14:22:56 2007 +++ php-src/ext/standard/tests/strings/strncmp_variation6.phpt Fri Sep 7 14:22:56 2007 @@ -0,0 +1,1588 @@ +--TEST-- +Test strncmp() function : usage variations - binary safe(binary values) (fails on Unicode, Bug #42528) +--FILE-- +<?php +/* Prototype : int strncmp ( string $str1, string $str2, int $len ); + * Description: Binary safe case-sensitive string comparison of the first n characters + * Source code: Zend/zend_builtin_functions.c +*/ + +/* Test strncmp() function with binary values passed to 'str1' & 'str2' and with the null terminated strings */ + +echo "*** Test strncmp() function: with binary inputs ***\n"; + +echo "\n-- Checking with all 256 characters given, in binary format --\n"; +/* A binary function should work with all 256 characters that a character(8-bit) can take */ +/* loop through to get all 256 character's equivelent binary value, and check working of strncmp() */ +$count = 1; +for($ASCII = 0; $ASCII <= 255; $ASCII++) { + $str1 = decbin($ASCII); //ASCII value in binary form + $str2 = decbin( ord( chr($ASCII) ) ); //Getting equivelent ASCII value for the character in binary form + echo "-- Iteration $count --\n"; + var_dump( strncmp($str1, $str2, 8) ); //comparing all the 8-bits; expected: int(0) + var_dump( strncmp($str1, $str2, 4) ); //comparing only 4-bits; expected: int(0) + $count++; +} + +echo "\n-- Checking with out of character's range, given in binary format --\n"; +/* Checking with the out of range ASCII value(given in binary format) */ +$str1 = decbin(256); +$str2 = decbin( ord( chr(256) )); +var_dump( strncmp($str1, $str2, 8) ); //comparing all the 8-bits; expected: int(1) + +echo "\n*** Done ***\n"; +?> +--EXPECTF-- +*** Test strncmp() function: with binary inputs *** + +-- Checking with all 256 characters given, in binary format -- +-- Iteration 1 -- +int(0) +int(0) +-- Iteration 2 -- +int(0) +int(0) +-- Iteration 3 -- +int(0) +int(0) +-- Iteration 4 -- +int(0) +int(0) +-- Iteration 5 -- +int(0) +int(0) +-- Iteration 6 -- +int(0) +int(0) +-- Iteration 7 -- +int(0) +int(0) +-- Iteration 8 -- +int(0) +int(0) +-- Iteration 9 -- +int(0) +int(0) +-- Iteration 10 -- +int(0) +int(0) +-- Iteration 11 -- +int(0) +int(0) +-- Iteration 12 -- +int(0) +int(0) +-- Iteration 13 -- +int(0) +int(0) +-- Iteration 14 -- +int(0) +int(0) +-- Iteration 15 -- +int(0) +int(0) +-- Iteration 16 -- +int(0) +int(0) +-- Iteration 17 -- +int(0) +int(0) +-- Iteration 18 -- +int(0) +int(0) +-- Iteration 19 -- +int(0) +int(0) +-- Iteration 20 -- +int(0) +int(0) +-- Iteration 21 -- +int(0) +int(0) +-- Iteration 22 -- +int(0) +int(0) +-- Iteration 23 -- +int(0) +int(0) +-- Iteration 24 -- +int(0) +int(0) +-- Iteration 25 -- +int(0) +int(0) +-- Iteration 26 -- +int(0) +int(0) +-- Iteration 27 -- +int(0) +int(0) +-- Iteration 28 -- +int(0) +int(0) +-- Iteration 29 -- +int(0) +int(0) +-- Iteration 30 -- +int(0) +int(0) +-- Iteration 31 -- +int(0) +int(0) +-- Iteration 32 -- +int(0) +int(0) +-- Iteration 33 -- +int(0) +int(0) +-- Iteration 34 -- +int(0) +int(0) +-- Iteration 35 -- +int(0) +int(0) +-- Iteration 36 -- +int(0) +int(0) +-- Iteration 37 -- +int(0) +int(0) +-- Iteration 38 -- +int(0) +int(0) +-- Iteration 39 -- +int(0) +int(0) +-- Iteration 40 -- +int(0) +int(0) +-- Iteration 41 -- +int(0) +int(0) +-- Iteration 42 -- +int(0) +int(0) +-- Iteration 43 -- +int(0) +int(0) +-- Iteration 44 -- +int(0) +int(0) +-- Iteration 45 -- +int(0) +int(0) +-- Iteration 46 -- +int(0) +int(0) +-- Iteration 47 -- +int(0) +int(0) +-- Iteration 48 -- +int(0) +int(0) +-- Iteration 49 -- +int(0) +int(0) +-- Iteration 50 -- +int(0) +int(0) +-- Iteration 51 -- +int(0) +int(0) +-- Iteration 52 -- +int(0) +int(0) +-- Iteration 53 -- +int(0) +int(0) +-- Iteration 54 -- +int(0) +int(0) +-- Iteration 55 -- +int(0) +int(0) +-- Iteration 56 -- +int(0) +int(0) +-- Iteration 57 -- +int(0) +int(0) +-- Iteration 58 -- +int(0) +int(0) +-- Iteration 59 -- +int(0) +int(0) +-- Iteration 60 -- +int(0) +int(0) +-- Iteration 61 -- +int(0) +int(0) +-- Iteration 62 -- +int(0) +int(0) +-- Iteration 63 -- +int(0) +int(0) +-- Iteration 64 -- +int(0) +int(0) +-- Iteration 65 -- +int(0) +int(0) +-- Iteration 66 -- +int(0) +int(0) +-- Iteration 67 -- +int(0) +int(0) +-- Iteration 68 -- +int(0) +int(0) +-- Iteration 69 -- +int(0) +int(0) +-- Iteration 70 -- +int(0) +int(0) +-- Iteration 71 -- +int(0) +int(0) +-- Iteration 72 -- +int(0) +int(0) +-- Iteration 73 -- +int(0) +int(0) +-- Iteration 74 -- +int(0) +int(0) +-- Iteration 75 -- +int(0) +int(0) +-- Iteration 76 -- +int(0) +int(0) +-- Iteration 77 -- +int(0) +int(0) +-- Iteration 78 -- +int(0) +int(0) +-- Iteration 79 -- +int(0) +int(0) +-- Iteration 80 -- +int(0) +int(0) +-- Iteration 81 -- +int(0) +int(0) +-- Iteration 82 -- +int(0) +int(0) +-- Iteration 83 -- +int(0) +int(0) +-- Iteration 84 -- +int(0) +int(0) +-- Iteration 85 -- +int(0) +int(0) +-- Iteration 86 -- +int(0) +int(0) +-- Iteration 87 -- +int(0) +int(0) +-- Iteration 88 -- +int(0) +int(0) +-- Iteration 89 -- +int(0) +int(0) +-- Iteration 90 -- +int(0) +int(0) +-- Iteration 91 -- +int(0) +int(0) +-- Iteration 92 -- +int(0) +int(0) +-- Iteration 93 -- +int(0) +int(0) +-- Iteration 94 -- +int(0) +int(0) +-- Iteration 95 -- +int(0) +int(0) +-- Iteration 96 -- +int(0) +int(0) +-- Iteration 97 -- +int(0) +int(0) +-- Iteration 98 -- +int(0) +int(0) +-- Iteration 99 -- +int(0) +int(0) +-- Iteration 100 -- +int(0) +int(0) +-- Iteration 101 -- +int(0) +int(0) +-- Iteration 102 -- +int(0) +int(0) +-- Iteration 103 -- +int(0) +int(0) +-- Iteration 104 -- +int(0) +int(0) +-- Iteration 105 -- +int(0) +int(0) +-- Iteration 106 -- +int(0) +int(0) +-- Iteration 107 -- +int(0) +int(0) +-- Iteration 108 -- +int(0) +int(0) +-- Iteration 109 -- +int(0) +int(0) +-- Iteration 110 -- +int(0) +int(0) +-- Iteration 111 -- +int(0) +int(0) +-- Iteration 112 -- +int(0) +int(0) +-- Iteration 113 -- +int(0) +int(0) +-- Iteration 114 -- +int(0) +int(0) +-- Iteration 115 -- +int(0) +int(0) +-- Iteration 116 -- +int(0) +int(0) +-- Iteration 117 -- +int(0) +int(0) +-- Iteration 118 -- +int(0) +int(0) +-- Iteration 119 -- +int(0) +int(0) +-- Iteration 120 -- +int(0) +int(0) +-- Iteration 121 -- +int(0) +int(0) +-- Iteration 122 -- +int(0) +int(0) +-- Iteration 123 -- +int(0) +int(0) +-- Iteration 124 -- +int(0) +int(0) +-- Iteration 125 -- +int(0) +int(0) +-- Iteration 126 -- +int(0) +int(0) +-- Iteration 127 -- +int(0) +int(0) +-- Iteration 128 -- +int(0) +int(0) +-- Iteration 129 -- +int(0) +int(0) +-- Iteration 130 -- +int(0) +int(0) +-- Iteration 131 -- +int(0) +int(0) +-- Iteration 132 -- +int(0) +int(0) +-- Iteration 133 -- +int(0) +int(0) +-- Iteration 134 -- +int(0) +int(0) +-- Iteration 135 -- +int(0) +int(0) +-- Iteration 136 -- +int(0) +int(0) +-- Iteration 137 -- +int(0) +int(0) +-- Iteration 138 -- +int(0) +int(0) +-- Iteration 139 -- +int(0) +int(0) +-- Iteration 140 -- +int(0) +int(0) +-- Iteration 141 -- +int(0) +int(0) +-- Iteration 142 -- +int(0) +int(0) +-- Iteration 143 -- +int(0) +int(0) +-- Iteration 144 -- +int(0) +int(0) +-- Iteration 145 -- +int(0) +int(0) +-- Iteration 146 -- +int(0) +int(0) +-- Iteration 147 -- +int(0) +int(0) +-- Iteration 148 -- +int(0) +int(0) +-- Iteration 149 -- +int(0) +int(0) +-- Iteration 150 -- +int(0) +int(0) +-- Iteration 151 -- +int(0) +int(0) +-- Iteration 152 -- +int(0) +int(0) +-- Iteration 153 -- +int(0) +int(0) +-- Iteration 154 -- +int(0) +int(0) +-- Iteration 155 -- +int(0) +int(0) +-- Iteration 156 -- +int(0) +int(0) +-- Iteration 157 -- +int(0) +int(0) +-- Iteration 158 -- +int(0) +int(0) +-- Iteration 159 -- +int(0) +int(0) +-- Iteration 160 -- +int(0) +int(0) +-- Iteration 161 -- +int(0) +int(0) +-- Iteration 162 -- +int(0) +int(0) +-- Iteration 163 -- +int(0) +int(0) +-- Iteration 164 -- +int(0) +int(0) +-- Iteration 165 -- +int(0) +int(0) +-- Iteration 166 -- +int(0) +int(0) +-- Iteration 167 -- +int(0) +int(0) +-- Iteration 168 -- +int(0) +int(0) +-- Iteration 169 -- +int(0) +int(0) +-- Iteration 170 -- +int(0) +int(0) +-- Iteration 171 -- +int(0) +int(0) +-- Iteration 172 -- +int(0) +int(0) +-- Iteration 173 -- +int(0) +int(0) +-- Iteration 174 -- +int(0) +int(0) +-- Iteration 175 -- +int(0) +int(0) +-- Iteration 176 -- +int(0) +int(0) +-- Iteration 177 -- +int(0) +int(0) +-- Iteration 178 -- +int(0) +int(0) +-- Iteration 179 -- +int(0) +int(0) +-- Iteration 180 -- +int(0) +int(0) +-- Iteration 181 -- +int(0) +int(0) +-- Iteration 182 -- +int(0) +int(0) +-- Iteration 183 -- +int(0) +int(0) +-- Iteration 184 -- +int(0) +int(0) +-- Iteration 185 -- +int(0) +int(0) +-- Iteration 186 -- +int(0) +int(0) +-- Iteration 187 -- +int(0) +int(0) +-- Iteration 188 -- +int(0) +int(0) +-- Iteration 189 -- +int(0) +int(0) +-- Iteration 190 -- +int(0) +int(0) +-- Iteration 191 -- +int(0) +int(0) +-- Iteration 192 -- +int(0) +int(0) +-- Iteration 193 -- +int(0) +int(0) +-- Iteration 194 -- +int(0) +int(0) +-- Iteration 195 -- +int(0) +int(0) +-- Iteration 196 -- +int(0) +int(0) +-- Iteration 197 -- +int(0) +int(0) +-- Iteration 198 -- +int(0) +int(0) +-- Iteration 199 -- +int(0) +int(0) +-- Iteration 200 -- +int(0) +int(0) +-- Iteration 201 -- +int(0) +int(0) +-- Iteration 202 -- +int(0) +int(0) +-- Iteration 203 -- +int(0) +int(0) +-- Iteration 204 -- +int(0) +int(0) +-- Iteration 205 -- +int(0) +int(0) +-- Iteration 206 -- +int(0) +int(0) +-- Iteration 207 -- +int(0) +int(0) +-- Iteration 208 -- +int(0) +int(0) +-- Iteration 209 -- +int(0) +int(0) +-- Iteration 210 -- +int(0) +int(0) +-- Iteration 211 -- +int(0) +int(0) +-- Iteration 212 -- +int(0) +int(0) +-- Iteration 213 -- +int(0) +int(0) +-- Iteration 214 -- +int(0) +int(0) +-- Iteration 215 -- +int(0) +int(0) +-- Iteration 216 -- +int(0) +int(0) +-- Iteration 217 -- +int(0) +int(0) +-- Iteration 218 -- +int(0) +int(0) +-- Iteration 219 -- +int(0) +int(0) +-- Iteration 220 -- +int(0) +int(0) +-- Iteration 221 -- +int(0) +int(0) +-- Iteration 222 -- +int(0) +int(0) +-- Iteration 223 -- +int(0) +int(0) +-- Iteration 224 -- +int(0) +int(0) +-- Iteration 225 -- +int(0) +int(0) +-- Iteration 226 -- +int(0) +int(0) +-- Iteration 227 -- +int(0) +int(0) +-- Iteration 228 -- +int(0) +int(0) +-- Iteration 229 -- +int(0) +int(0) +-- Iteration 230 -- +int(0) +int(0) +-- Iteration 231 -- +int(0) +int(0) +-- Iteration 232 -- +int(0) +int(0) +-- Iteration 233 -- +int(0) +int(0) +-- Iteration 234 -- +int(0) +int(0) +-- Iteration 235 -- +int(0) +int(0) +-- Iteration 236 -- +int(0) +int(0) +-- Iteration 237 -- +int(0) +int(0) +-- Iteration 238 -- +int(0) +int(0) +-- Iteration 239 -- +int(0) +int(0) +-- Iteration 240 -- +int(0) +int(0) +-- Iteration 241 -- +int(0) +int(0) +-- Iteration 242 -- +int(0) +int(0) +-- Iteration 243 -- +int(0) +int(0) +-- Iteration 244 -- +int(0) +int(0) +-- Iteration 245 -- +int(0) +int(0) +-- Iteration 246 -- +int(0) +int(0) +-- Iteration 247 -- +int(0) +int(0) +-- Iteration 248 -- +int(0) +int(0) +-- Iteration 249 -- +int(0) +int(0) +-- Iteration 250 -- +int(0) +int(0) +-- Iteration 251 -- +int(0) +int(0) +-- Iteration 252 -- +int(0) +int(0) +-- Iteration 253 -- +int(0) +int(0) +-- Iteration 254 -- +int(0) +int(0) +-- Iteration 255 -- +int(0) +int(0) +-- Iteration 256 -- +int(0) +int(0) + +-- Checking with out of character's range, given in binary format -- +int(1) + +*** Done *** +--UEXPECTF-- +*** Test strncmp() function: with binary inputs *** + +-- Checking with all 256 characters given, in binary format -- +-- Iteration 1 -- +int(0) +int(0) +-- Iteration 2 -- +int(0) +int(0) +-- Iteration 3 -- +int(0) +int(0) +-- Iteration 4 -- +int(0) +int(0) +-- Iteration 5 -- +int(0) +int(0) +-- Iteration 6 -- +int(0) +int(0) +-- Iteration 7 -- +int(0) +int(0) +-- Iteration 8 -- +int(0) +int(0) +-- Iteration 9 -- +int(0) +int(0) +-- Iteration 10 -- +int(0) +int(0) +-- Iteration 11 -- +int(0) +int(0) +-- Iteration 12 -- +int(0) +int(0) +-- Iteration 13 -- +int(0) +int(0) +-- Iteration 14 -- +int(0) +int(0) +-- Iteration 15 -- +int(0) +int(0) +-- Iteration 16 -- +int(0) +int(0) +-- Iteration 17 -- +int(0) +int(0) +-- Iteration 18 -- +int(0) +int(0) +-- Iteration 19 -- +int(0) +int(0) +-- Iteration 20 -- +int(0) +int(0) +-- Iteration 21 -- +int(0) +int(0) +-- Iteration 22 -- +int(0) +int(0) +-- Iteration 23 -- +int(0) +int(0) +-- Iteration 24 -- +int(0) +int(0) +-- Iteration 25 -- +int(0) +int(0) +-- Iteration 26 -- +int(0) +int(0) +-- Iteration 27 -- +int(0) +int(0) +-- Iteration 28 -- +int(0) +int(0) +-- Iteration 29 -- +int(0) +int(0) +-- Iteration 30 -- +int(0) +int(0) +-- Iteration 31 -- +int(0) +int(0) +-- Iteration 32 -- +int(0) +int(0) +-- Iteration 33 -- +int(0) +int(0) +-- Iteration 34 -- +int(0) +int(0) +-- Iteration 35 -- +int(0) +int(0) +-- Iteration 36 -- +int(0) +int(0) +-- Iteration 37 -- +int(0) +int(0) +-- Iteration 38 -- +int(0) +int(0) +-- Iteration 39 -- +int(0) +int(0) +-- Iteration 40 -- +int(0) +int(0) +-- Iteration 41 -- +int(0) +int(0) +-- Iteration 42 -- +int(0) +int(0) +-- Iteration 43 -- +int(0) +int(0) +-- Iteration 44 -- +int(0) +int(0) +-- Iteration 45 -- +int(0) +int(0) +-- Iteration 46 -- +int(0) +int(0) +-- Iteration 47 -- +int(0) +int(0) +-- Iteration 48 -- +int(0) +int(0) +-- Iteration 49 -- +int(0) +int(0) +-- Iteration 50 -- +int(0) +int(0) +-- Iteration 51 -- +int(0) +int(0) +-- Iteration 52 -- +int(0) +int(0) +-- Iteration 53 -- +int(0) +int(0) +-- Iteration 54 -- +int(0) +int(0) +-- Iteration 55 -- +int(0) +int(0) +-- Iteration 56 -- +int(0) +int(0) +-- Iteration 57 -- +int(0) +int(0) +-- Iteration 58 -- +int(0) +int(0) +-- Iteration 59 -- +int(0) +int(0) +-- Iteration 60 -- +int(0) +int(0) +-- Iteration 61 -- +int(0) +int(0) +-- Iteration 62 -- +int(0) +int(0) +-- Iteration 63 -- +int(0) +int(0) +-- Iteration 64 -- +int(0) +int(0) +-- Iteration 65 -- +int(0) +int(0) +-- Iteration 66 -- +int(0) +int(0) +-- Iteration 67 -- +int(0) +int(0) +-- Iteration 68 -- +int(0) +int(0) +-- Iteration 69 -- +int(0) +int(0) +-- Iteration 70 -- +int(0) +int(0) +-- Iteration 71 -- +int(0) +int(0) +-- Iteration 72 -- +int(0) +int(0) +-- Iteration 73 -- +int(0) +int(0) +-- Iteration 74 -- +int(0) +int(0) +-- Iteration 75 -- +int(0) +int(0) +-- Iteration 76 -- +int(0) +int(0) +-- Iteration 77 -- +int(0) +int(0) +-- Iteration 78 -- +int(0) +int(0) +-- Iteration 79 -- +int(0) +int(0) +-- Iteration 80 -- +int(0) +int(0) +-- Iteration 81 -- +int(0) +int(0) +-- Iteration 82 -- +int(0) +int(0) +-- Iteration 83 -- +int(0) +int(0) +-- Iteration 84 -- +int(0) +int(0) +-- Iteration 85 -- +int(0) +int(0) +-- Iteration 86 -- +int(0) +int(0) +-- Iteration 87 -- +int(0) +int(0) +-- Iteration 88 -- +int(0) +int(0) +-- Iteration 89 -- +int(0) +int(0) +-- Iteration 90 -- +int(0) +int(0) +-- Iteration 91 -- +int(0) +int(0) +-- Iteration 92 -- +int(0) +int(0) +-- Iteration 93 -- +int(0) +int(0) +-- Iteration 94 -- +int(0) +int(0) +-- Iteration 95 -- +int(0) +int(0) +-- Iteration 96 -- +int(0) +int(0) +-- Iteration 97 -- +int(0) +int(0) +-- Iteration 98 -- +int(0) +int(0) +-- Iteration 99 -- +int(0) +int(0) +-- Iteration 100 -- +int(0) +int(0) +-- Iteration 101 -- +int(0) +int(0) +-- Iteration 102 -- +int(0) +int(0) +-- Iteration 103 -- +int(0) +int(0) +-- Iteration 104 -- +int(0) +int(0) +-- Iteration 105 -- +int(0) +int(0) +-- Iteration 106 -- +int(0) +int(0) +-- Iteration 107 -- +int(0) +int(0) +-- Iteration 108 -- +int(0) +int(0) +-- Iteration 109 -- +int(0) +int(0) +-- Iteration 110 -- +int(0) +int(0) +-- Iteration 111 -- +int(0) +int(0) +-- Iteration 112 -- +int(0) +int(0) +-- Iteration 113 -- +int(0) +int(0) +-- Iteration 114 -- +int(0) +int(0) +-- Iteration 115 -- +int(0) +int(0) +-- Iteration 116 -- +int(0) +int(0) +-- Iteration 117 -- +int(0) +int(0) +-- Iteration 118 -- +int(0) +int(0) +-- Iteration 119 -- +int(0) +int(0) +-- Iteration 120 -- +int(0) +int(0) +-- Iteration 121 -- +int(0) +int(0) +-- Iteration 122 -- +int(0) +int(0) +-- Iteration 123 -- +int(0) +int(0) +-- Iteration 124 -- +int(0) +int(0) +-- Iteration 125 -- +int(0) +int(0) +-- Iteration 126 -- +int(0) +int(0) +-- Iteration 127 -- +int(0) +int(0) +-- Iteration 128 -- +int(0) +int(0) +-- Iteration 129 -- +int(0) +int(0) +-- Iteration 130 -- +int(0) +int(0) +-- Iteration 131 -- +int(0) +int(0) +-- Iteration 132 -- +int(0) +int(0) +-- Iteration 133 -- +int(0) +int(0) +-- Iteration 134 -- +int(0) +int(0) +-- Iteration 135 -- +int(0) +int(0) +-- Iteration 136 -- +int(0) +int(0) +-- Iteration 137 -- +int(0) +int(0) +-- Iteration 138 -- +int(0) +int(0) +-- Iteration 139 -- +int(0) +int(0) +-- Iteration 140 -- +int(0) +int(0) +-- Iteration 141 -- +int(0) +int(0) +-- Iteration 142 -- +int(0) +int(0) +-- Iteration 143 -- +int(0) +int(0) +-- Iteration 144 -- +int(0) +int(0) +-- Iteration 145 -- +int(0) +int(0) +-- Iteration 146 -- +int(0) +int(0) +-- Iteration 147 -- +int(0) +int(0) +-- Iteration 148 -- +int(0) +int(0) +-- Iteration 149 -- +int(0) +int(0) +-- Iteration 150 -- +int(0) +int(0) +-- Iteration 151 -- +int(0) +int(0) +-- Iteration 152 -- +int(0) +int(0) +-- Iteration 153 -- +int(0) +int(0) +-- Iteration 154 -- +int(0) +int(0) +-- Iteration 155 -- +int(0) +int(0) +-- Iteration 156 -- +int(0) +int(0) +-- Iteration 157 -- +int(0) +int(0) +-- Iteration 158 -- +int(0) +int(0) +-- Iteration 159 -- +int(0) +int(0) +-- Iteration 160 -- +int(0) +int(0) +-- Iteration 161 -- +int(0) +int(0) +-- Iteration 162 -- +int(0) +int(0) +-- Iteration 163 -- +int(0) +int(0) +-- Iteration 164 -- +int(0) +int(0) +-- Iteration 165 -- +int(0) +int(0) +-- Iteration 166 -- +int(0) +int(0) +-- Iteration 167 -- +int(0) +int(0) +-- Iteration 168 -- +int(0) +int(0) +-- Iteration 169 -- +int(0) +int(0) +-- Iteration 170 -- +int(0) +int(0) +-- Iteration 171 -- +int(0) +int(0) +-- Iteration 172 -- +int(0) +int(0) +-- Iteration 173 -- +int(0) +int(0) +-- Iteration 174 -- +int(0) +int(0) +-- Iteration 175 -- +int(0) +int(0) +-- Iteration 176 -- +int(0) +int(0) +-- Iteration 177 -- +int(0) +int(0) +-- Iteration 178 -- +int(0) +int(0) +-- Iteration 179 -- +int(0) +int(0) +-- Iteration 180 -- +int(0) +int(0) +-- Iteration 181 -- +int(0) +int(0) +-- Iteration 182 -- +int(0) +int(0) +-- Iteration 183 -- +int(0) +int(0) +-- Iteration 184 -- +int(0) +int(0) +-- Iteration 185 -- +int(0) +int(0) +-- Iteration 186 -- +int(0) +int(0) +-- Iteration 187 -- +int(0) +int(0) +-- Iteration 188 -- +int(0) +int(0) +-- Iteration 189 -- +int(0) +int(0) +-- Iteration 190 -- +int(0) +int(0) +-- Iteration 191 -- +int(0) +int(0) +-- Iteration 192 -- +int(0) +int(0) +-- Iteration 193 -- +int(0) +int(0) +-- Iteration 194 -- +int(0) +int(0) +-- Iteration 195 -- +int(0) +int(0) +-- Iteration 196 -- +int(0) +int(0) +-- Iteration 197 -- +int(0) +int(0) +-- Iteration 198 -- +int(0) +int(0) +-- Iteration 199 -- +int(0) +int(0) +-- Iteration 200 -- +int(0) +int(0) +-- Iteration 201 -- +int(0) +int(0) +-- Iteration 202 -- +int(0) +int(0) +-- Iteration 203 -- +int(0) +int(0) +-- Iteration 204 -- +int(0) +int(0) +-- Iteration 205 -- +int(0) +int(0) +-- Iteration 206 -- +int(0) +int(0) +-- Iteration 207 -- +int(0) +int(0) +-- Iteration 208 -- +int(0) +int(0) +-- Iteration 209 -- +int(0) +int(0) +-- Iteration 210 -- +int(0) +int(0) +-- Iteration 211 -- +int(0) +int(0) +-- Iteration 212 -- +int(0) +int(0) +-- Iteration 213 -- +int(0) +int(0) +-- Iteration 214 -- +int(0) +int(0) +-- Iteration 215 -- +int(0) +int(0) +-- Iteration 216 -- +int(0) +int(0) +-- Iteration 217 -- +int(0) +int(0) +-- Iteration 218 -- +int(0) +int(0) +-- Iteration 219 -- +int(0) +int(0) +-- Iteration 220 -- +int(0) +int(0) +-- Iteration 221 -- +int(0) +int(0) +-- Iteration 222 -- +int(0) +int(0) +-- Iteration 223 -- +int(0) +int(0) +-- Iteration 224 -- +int(0) +int(0) +-- Iteration 225 -- +int(0) +int(0) +-- Iteration 226 -- +int(0) +int(0) +-- Iteration 227 -- +int(0) +int(0) +-- Iteration 228 -- +int(0) +int(0) +-- Iteration 229 -- +int(0) +int(0) +-- Iteration 230 -- +int(0) +int(0) +-- Iteration 231 -- +int(0) +int(0) +-- Iteration 232 -- +int(0) +int(0) +-- Iteration 233 -- +int(0) +int(0) +-- Iteration 234 -- +int(0) +int(0) +-- Iteration 235 -- +int(0) +int(0) +-- Iteration 236 -- +int(0) +int(0) +-- Iteration 237 -- +int(0) +int(0) +-- Iteration 238 -- +int(0) +int(0) +-- Iteration 239 -- +int(0) +int(0) +-- Iteration 240 -- +int(0) +int(0) +-- Iteration 241 -- +int(0) +int(0) +-- Iteration 242 -- +int(0) +int(0) +-- Iteration 243 -- +int(0) +int(0) +-- Iteration 244 -- +int(0) +int(0) +-- Iteration 245 -- +int(0) +int(0) +-- Iteration 246 -- +int(0) +int(0) +-- Iteration 247 -- +int(0) +int(0) +-- Iteration 248 -- +int(0) +int(0) +-- Iteration 249 -- +int(0) +int(0) +-- Iteration 250 -- +int(0) +int(0) +-- Iteration 251 -- +int(0) +int(0) +-- Iteration 252 -- +int(0) +int(0) +-- Iteration 253 -- +int(0) +int(0) +-- Iteration 254 -- +int(0) +int(0) +-- Iteration 255 -- +int(0) +int(0) +-- Iteration 256 -- +int(0) +int(0) + +-- Checking with out of character's range, given in binary format -- +int(1) + +*** Done *** http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/strings/strncmp_variation7.phpt?r1=1.1&r2=1.2&diff_format=u Index: php-src/ext/standard/tests/strings/strncmp_variation7.phpt diff -u /dev/null php-src/ext/standard/tests/strings/strncmp_variation7.phpt:1.2 --- /dev/null Fri Sep 7 14:22:56 2007 +++ php-src/ext/standard/tests/strings/strncmp_variation7.phpt Fri Sep 7 14:22:56 2007 @@ -0,0 +1,28 @@ +--TEST-- +Test strncmp() function : usage variations - binary safe(null terminated strings) +--FILE-- +<?php +/* Prototype : int strncmp ( string $str1, string $str2, int $len ); + * Description: Binary safe case-sensitive string comparison of the first n characters + * Source code: Zend/zend_builtin_functions.c +*/ + +/* Test strncmp() function with binary values passed to 'str1' & 'str2' and with the null terminated strings */ + +echo "*** Test strncmp() function: Checking with the null terminated strings ***\n"; + +/* A binary function should not expect a null terminated string, and it should treat input as a raw stream of data */ +$str1 = "Hello\0world"; +$str2 = "Hello\0"; +var_dump( strncmp($str1, $str2, 12) ); //expected: int(5); + +echo "*** Done ***\n"; +?> +--EXPECTF-- +*** Test strncmp() function: Checking with the null terminated strings *** +int(5) +*** Done *** +--UEXPECTF-- +*** Test strncmp() function: Checking with the null terminated strings *** +int(1) +*** Done *** http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/strings/strncmp_variation8.phpt?r1=1.1&r2=1.2&diff_format=u Index: php-src/ext/standard/tests/strings/strncmp_variation8.phpt diff -u /dev/null php-src/ext/standard/tests/strings/strncmp_variation8.phpt:1.2 --- /dev/null Fri Sep 7 14:22:56 2007 +++ php-src/ext/standard/tests/strings/strncmp_variation8.phpt Fri Sep 7 14:22:56 2007 @@ -0,0 +1,75 @@ +--TEST-- +Test strncmp() function: usage variations - different inputs(single quoted strings) +--FILE-- +<?php +/* Prototype : int strncmp ( string $str1, string $str2, int $len ); + * Description: Binary safe case-sensitive string comparison of the first n characters + * Source code: Zend/zend_builtin_functions.c +*/ + +/* Test strncmp() function with different strings for 'str1', 'str2' and considering case sensitive */ + +echo "*** Test strncmp() function: with different input strings ***\n"; +$strings = array( + 'Hello, World', + 'hello, world', + 'HELLO, WORLD', + 'Hello, World\n' +); +/* loop through to compare each string with the other string */ +$count = 1; +for($index1 = 0; $index1 < count($strings); $index1++) { + echo "-- Iteration $count --\n"; + for($index2 = 0; $index2 < count($strings); $index2++) { + var_dump( strncmp( $strings[$index1], $strings[$index2], (strlen($strings[$index1]) + 1) ) ); + } + $count ++; +} +echo "*** Done ***\n"; +?> +--EXPECTF-- +*** Test strncmp() function: with different input strings *** +-- Iteration 1 -- +int(0) +int(-1) +int(1) +int(-1) +-- Iteration 2 -- +int(1) +int(0) +int(1) +int(1) +-- Iteration 3 -- +int(-1) +int(-1) +int(0) +int(-1) +-- Iteration 4 -- +int(2) +int(-1) +int(1) +int(0) +*** Done *** +--UEXPECTF-- +*** Test strncmp() function: with different input strings *** +-- Iteration 1 -- +int(0) +int(-1) +int(1) +int(-1) +-- Iteration 2 -- +int(1) +int(0) +int(1) +int(1) +-- Iteration 3 -- +int(-1) +int(-1) +int(0) +int(-1) +-- Iteration 4 -- +int(1) +int(-1) +int(1) +int(0) +*** Done *** http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/strings/strncmp_variation9.phpt?r1=1.1&r2=1.2&diff_format=u Index: php-src/ext/standard/tests/strings/strncmp_variation9.phpt diff -u /dev/null php-src/ext/standard/tests/strings/strncmp_variation9.phpt:1.2 --- /dev/null Fri Sep 7 14:22:56 2007 +++ php-src/ext/standard/tests/strings/strncmp_variation9.phpt Fri Sep 7 14:22:56 2007 @@ -0,0 +1,68 @@ +--TEST-- +Test strncmp() function: usage variations - different inputs(heredoc strings) +--FILE-- +<?php +/* Prototype : int strncmp ( string $str1, string $str2, int $len ); + * Description: Binary safe case-sensitive string comparison of the first n characters + * Source code: Zend/zend_builtin_functions.c +*/ + +/* Test strncmp() function with different strings for 'str1', 'str2' and considering case sensitive */ + +echo "*** Test strncmp() function: with different input strings ***\n"; + +/* heredoc string */ +$str1 = <<<EOD +Example of string +spanning multiple lines +using heredoc syntax. +EOD; + +/* identifier name contains underscore */ +$str2 = <<<identifier_str2 +Example of heredoc +string, whose identifier +having underscore("_") +& numeric value. +identifier_str2; + +/* identifier name starts with underscore */ +$str3 = <<<_identifier_str3 +Hello, World +hello, world +_identifier_str3; + +/* string containing control characters */ +$str4 = <<<identifier_str4 +Hello, World\n +Hello\0World +identifier_str4; + +$strings = array( + $str1, + $str2, + $str3, + $str4 +); +/* loop through to compare each string with the other string */ +$count = 1; +for($index1 = 0; $index1 < count($strings); $index1++) { + var_dump( strncmp( $strings[$index1], $strings[$index1], strlen($strings[$index1]) ) ); + $count ++; +} +echo "*** Done ***\n"; +?> +--EXPECTF-- +*** Test strncmp() function: with different input strings *** +int(0) +int(0) +int(0) +int(0) +*** Done *** +--UEXPECTF-- +*** Test strncmp() function: with different input strings *** +int(0) +int(0) +int(0) +int(0) +*** Done ***
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php