summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnt Phillips <ant@php.net>2008-12-10 10:34:15 +0000
committerAnt Phillips <ant@php.net>2008-12-10 10:34:15 +0000
commitbd266a5bbf1e667bfa030137ef25df51b6c3b6f0 (patch)
treefa68d43185808421e295bc3d1f6dabf05e68c1ec
parentc61d5627ba15b635aefc9a0faa93676732f937e2 (diff)
downloadphp-git-bd266a5bbf1e667bfa030137ef25df51b6c3b6f0.tar.gz
Test for bug #43841
-rw-r--r--ext/mbstring/tests/bug43841.phpt86
1 files changed, 86 insertions, 0 deletions
diff --git a/ext/mbstring/tests/bug43841.phpt b/ext/mbstring/tests/bug43841.phpt
new file mode 100644
index 0000000000..098d267bf2
--- /dev/null
+++ b/ext/mbstring/tests/bug43841.phpt
@@ -0,0 +1,86 @@
+--TEST--
+Test mb_strrpos() function : mb_strrpos offset is byte count for negative values
+--XFAIL--
+--SKIPIF--
+<?php
+extension_loaded('mbstring') or die('skip');
+function_exists('mb_strrpos') or die("skip mb_strrpos() is not available in this build");
+?>
+--FILE--
+<?php
+/* Prototype : int mb_strrpos(string $haystack, string $needle [, int $offset [, string $encoding]])
+ * Description: Find position of last occurrence of a string within another
+ * Source code: ext/mbstring/mbstring.c
+ */
+
+/*
+ * Test that mb_strrpos offset is byte count for negative values (should be character count)
+ */
+
+$offsets = array(-25, -24, -13, -12);
+$string_mb =
+base64_decode('5pel5pys6Kqe44OG44Kt44K544OI44Gn44GZ44CCMDEyMzTvvJXvvJbvv
+JfvvJjvvJnjgII=');
+$needle = base64_decode('44CC');
+
+foreach ($offsets as $i) {
+ echo "\n-- Offset is $i --\n";
+ echo "Multibyte String:\n";
+ var_dump( mb_strrpos($string_mb, $needle, $i, 'UTF-8') );
+ echo "ASCII String:\n";
+ echo "mb_strrpos:\n";
+ var_dump(mb_strrpos(b'This is na English ta', b'a', $i));
+ echo "strrpos:\n";
+ var_dump(strrpos(b'This is na English ta', b'a', $i));
+}
+?>
+
+--EXPECTF--
+
+-- Offset is -25 --
+Multibyte String:
+
+Notice: mb_strrpos(): Offset is greater than the length of haystack string in %s on line %d
+bool(false)
+ASCII String:
+mb_strrpos:
+
+Notice: mb_strrpos(): Offset is greater than the length of haystack string in %s on line %d
+bool(false)
+strrpos:
+
+Notice: strrpos(): Offset is greater than the length of haystack string in %s on line %d
+bool(false)
+
+-- Offset is -24 --
+Multibyte String:
+
+Notice: mb_strrpos(): Offset is greater than the length of haystack string in %s on line %d
+bool(false)
+ASCII String:
+mb_strrpos:
+
+Notice: mb_strrpos(): Offset is greater than the length of haystack string in %s on line %d
+bool(false)
+strrpos:
+
+Notice: strrpos(): Offset is greater than the length of haystack string in %s on line %d
+bool(false)
+
+-- Offset is -13 --
+Multibyte String:
+bool(false)
+ASCII String:
+mb_strrpos:
+bool(false)
+strrpos:
+bool(false)
+
+-- Offset is -12 --
+Multibyte String:
+int(9)
+ASCII String:
+mb_strrpos:
+int(9)
+strrpos:
+int(9)