]> granicus.if.org Git - php/commitdiff
Test for bug #43841
authorAnt Phillips <ant@php.net>
Wed, 10 Dec 2008 10:34:15 +0000 (10:34 +0000)
committerAnt Phillips <ant@php.net>
Wed, 10 Dec 2008 10:34:15 +0000 (10:34 +0000)
ext/mbstring/tests/bug43841.phpt [new file with mode: 0644]

diff --git a/ext/mbstring/tests/bug43841.phpt b/ext/mbstring/tests/bug43841.phpt
new file mode 100644 (file)
index 0000000..098d267
--- /dev/null
@@ -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)