Annotation of embedaddon/php/ext/mbstring/tests/bug43841.phpt, revision 1.1

1.1     ! misho       1: --TEST--
        !             2: Test mb_strrpos() function : mb_strrpos offset is byte count for negative values
        !             3: --SKIPIF--
        !             4: <?php
        !             5: extension_loaded('mbstring') or die('skip');
        !             6: function_exists('mb_strrpos') or die("skip mb_strrpos() is not available in this build");
        !             7: ?>
        !             8: --FILE--
        !             9: <?php
        !            10: /* Prototype  : int mb_strrpos(string $haystack, string $needle [, int $offset [, string $encoding]])
        !            11:  * Description: Find position of last occurrence of a string within another 
        !            12:  * Source code: ext/mbstring/mbstring.c
        !            13:  */
        !            14: 
        !            15: /*
        !            16:  * Test that mb_strrpos offset is byte count for negative values (should be character count)
        !            17:  */
        !            18: 
        !            19: $offsets = array(-25, -24, -13, -12);
        !            20: $string_mb =
        !            21: base64_decode('5pel5pys6Kqe44OG44Kt44K544OI44Gn44GZ44CCMDEyMzTvvJXvvJbvv
        !            22: JfvvJjvvJnjgII=');
        !            23: $needle = base64_decode('44CC');
        !            24: 
        !            25: foreach ($offsets as $i) {
        !            26:        echo "\n-- Offset is $i --\n";
        !            27:        echo "Multibyte String:\n";
        !            28:        var_dump( mb_strrpos($string_mb, $needle, $i, 'UTF-8') );
        !            29:        echo "ASCII String:\n";
        !            30:        echo "mb_strrpos:\n";
        !            31:        var_dump(mb_strrpos(b'This is na English ta', b'a', $i));
        !            32:        echo "strrpos:\n";
        !            33:        var_dump(strrpos(b'This is na English ta', b'a', $i));
        !            34: }
        !            35: ?>
        !            36: 
        !            37: --EXPECTF--
        !            38: 
        !            39: -- Offset is -25 --
        !            40: Multibyte String:
        !            41: 
        !            42: Warning: mb_strrpos(): Offset is greater than the length of haystack string in %s on line %d
        !            43: bool(false)
        !            44: ASCII String:
        !            45: mb_strrpos:
        !            46: 
        !            47: Warning: mb_strrpos(): Offset is greater than the length of haystack string in %s on line %d
        !            48: bool(false)
        !            49: strrpos:
        !            50: 
        !            51: Warning: strrpos(): Offset is greater than the length of haystack string in %s on line %d
        !            52: bool(false)
        !            53: 
        !            54: -- Offset is -24 --
        !            55: Multibyte String:
        !            56: 
        !            57: Warning: mb_strrpos(): Offset is greater than the length of haystack string in %s on line %d
        !            58: bool(false)
        !            59: ASCII String:
        !            60: mb_strrpos:
        !            61: 
        !            62: Warning: mb_strrpos(): Offset is greater than the length of haystack string in %s on line %d
        !            63: bool(false)
        !            64: strrpos:
        !            65: 
        !            66: Warning: strrpos(): Offset is greater than the length of haystack string in %s on line %d
        !            67: bool(false)
        !            68: 
        !            69: -- Offset is -13 --
        !            70: Multibyte String:
        !            71: bool(false)
        !            72: ASCII String:
        !            73: mb_strrpos:
        !            74: bool(false)
        !            75: strrpos:
        !            76: bool(false)
        !            77: 
        !            78: -- Offset is -12 --
        !            79: Multibyte String:
        !            80: int(9)
        !            81: ASCII String:
        !            82: mb_strrpos:
        !            83: int(9)
        !            84: strrpos:
        !            85: int(9)

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>