summaryrefslogtreecommitdiff
path: root/ext/intl/tests
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2020-10-01 16:41:51 +0200
committerNikita Popov <nikita.ppv@gmail.com>2020-10-01 16:41:51 +0200
commitf82414e935c18c1ff45ef1f006e24220631f5717 (patch)
tree894b319756f97e9cb1fc650e16bc5226eb80a3df /ext/intl/tests
parent7af24eaedd310911940643d7a5f412393b973389 (diff)
downloadphp-git-f82414e935c18c1ff45ef1f006e24220631f5717.tar.gz
Fix out of bounds offset handling with empty needle
For strrpos with positive out of bounds offsets was not detected.
Diffstat (limited to 'ext/intl/tests')
-rw-r--r--ext/intl/tests/grapheme_out_of_bounds.phpt52
1 files changed, 52 insertions, 0 deletions
diff --git a/ext/intl/tests/grapheme_out_of_bounds.phpt b/ext/intl/tests/grapheme_out_of_bounds.phpt
index e563096d7e..831ab87408 100644
--- a/ext/intl/tests/grapheme_out_of_bounds.phpt
+++ b/ext/intl/tests/grapheme_out_of_bounds.phpt
@@ -118,6 +118,49 @@ try {
}
echo "\n";
+// Empty needle + out of bounds
+try {
+ var_dump(grapheme_strpos("äöü", "", 4));
+} catch (ValueError $e) {
+ echo $e->getMessage(), "\n";
+}
+try {
+ var_dump(grapheme_stripos("äöü", "", 4));
+} catch (ValueError $e) {
+ echo $e->getMessage(), "\n";
+}
+try {
+ var_dump(grapheme_strrpos("äöü", "", 4));
+} catch (ValueError $e) {
+ echo $e->getMessage(), "\n";
+}
+try {
+ var_dump(grapheme_strripos("äöü", "", 4));
+} catch (ValueError $e) {
+ echo $e->getMessage(), "\n";
+}
+try {
+ var_dump(grapheme_strpos("äöü", "", -4));
+} catch (ValueError $e) {
+ echo $e->getMessage(), "\n";
+}
+try {
+ var_dump(grapheme_stripos("äöü", "", -4));
+} catch (ValueError $e) {
+ echo $e->getMessage(), "\n";
+}
+try {
+ var_dump(grapheme_strrpos("äöü", "", -4));
+} catch (ValueError $e) {
+ echo $e->getMessage(), "\n";
+}
+try {
+ var_dump(grapheme_strripos("äöü", "", -4));
+} catch (ValueError $e) {
+ echo $e->getMessage(), "\n";
+}
+echo "\n";
+
var_dump(grapheme_substr("foo", 3));
var_dump(grapheme_substr("foo", -3));
var_dump(grapheme_substr("foo", 4));
@@ -181,6 +224,15 @@ grapheme_stripos(): Argument #3 ($offset) must be contained in argument #1 ($hay
grapheme_strrpos(): Argument #3 ($offset) must be contained in argument #1 ($haystack)
grapheme_strripos(): Argument #3 ($offset) must be contained in argument #1 ($haystack)
+grapheme_strpos(): Argument #3 ($offset) must be contained in argument #1 ($haystack)
+grapheme_stripos(): Argument #3 ($offset) must be contained in argument #1 ($haystack)
+grapheme_strrpos(): Argument #3 ($offset) must be contained in argument #1 ($haystack)
+grapheme_strripos(): Argument #3 ($offset) must be contained in argument #1 ($haystack)
+grapheme_strpos(): Argument #3 ($offset) must be contained in argument #1 ($haystack)
+grapheme_stripos(): Argument #3 ($offset) must be contained in argument #1 ($haystack)
+grapheme_strrpos(): Argument #3 ($offset) must be contained in argument #1 ($haystack)
+grapheme_strripos(): Argument #3 ($offset) must be contained in argument #1 ($haystack)
+
string(0) ""
string(3) "foo"
string(0) ""