]> granicus.if.org Git - php/commitdiff
From documentation, only the sign of returned value is relevant
authorRemi Collet <remi@php.net>
Thu, 24 Aug 2017 08:27:38 +0000 (10:27 +0200)
committerRemi Collet <remi@php.net>
Thu, 24 Aug 2017 08:27:38 +0000 (10:27 +0200)
With recent glibc, memcmp sometime return a negative value instead of -1

ext/standard/tests/strings/substr_compare.phpt

index c78dfca43e04203fea0cfe67dae7546c7a0a1ed3..4f69ee57c5bee57d1867550e8ef5c14be544a08a 100644 (file)
@@ -7,15 +7,15 @@ var_dump(substr_compare("abcde", "df", -2) < 0);
 var_dump(substr_compare("abcde", "bc", 1, 2));
 var_dump(substr_compare("abcde", "bcg", 1, 2));
 var_dump(substr_compare("abcde", "BC", 1, 2, true));
-var_dump(substr_compare("abcde", "bc", 1, 3));
-var_dump(substr_compare("abcde", "cd", 1, 2));
+var_dump(substr_compare("abcde", "bc", 1, 3) > 0);
+var_dump(substr_compare("abcde", "cd", 1, 2) < 0);
 var_dump(substr_compare("abcde", "abc", 5, 1));
-var_dump(substr_compare("abcde", "abcdef", -10, 10));
+var_dump(substr_compare("abcde", "abcdef", -10, 10) < 0);
 var_dump(substr_compare("abcde", "abc", 0, 0));
 var_dump(substr_compare("abcde", -1, 0, NULL, new stdClass));
 echo "Test\n";
 var_dump(substr_compare("abcde", "abc", 0, -1));
-var_dump(substr_compare("abcde", "abc", -1, NULL, -5));
+var_dump(substr_compare("abcde", "abc", -1, NULL, -5) > 0);
 var_dump(substr_compare("abcde", -1, 0, "str", new stdClass));
 
 echo "Done\n";
@@ -25,12 +25,12 @@ bool(true)
 int(0)
 int(0)
 int(0)
-int(1)
-int(-1)
+bool(true)
+bool(true)
 
 Warning: substr_compare(): The start position cannot exceed initial string length in %s on line %d
 bool(false)
-int(-1)
+bool(true)
 int(0)
 
 Warning: substr_compare() expects parameter 5 to be boolean, object given in %s on line %d
@@ -39,7 +39,7 @@ Test
 
 Warning: substr_compare(): The length must be greater than or equal to zero in %s on line %d
 bool(false)
-int(4)
+bool(true)
 
 Warning: substr_compare() expects parameter 4 to be integer, string given in %s on line %d
 bool(false)