diff options
Diffstat (limited to 'ext/mbstring/tests')
| -rw-r--r-- | ext/mbstring/tests/bug45923.phpt | 234 | ||||
| -rw-r--r-- | ext/mbstring/tests/bug72399.phpt | 10 | ||||
| -rw-r--r-- | ext/mbstring/tests/mb_ereg_search_setpos.phpt | 70 | ||||
| -rw-r--r-- | ext/mbstring/tests/mb_strimwidth.phpt | 36 | ||||
| -rw-r--r-- | ext/mbstring/tests/mb_stripos.phpt | 122 | ||||
| -rw-r--r-- | ext/mbstring/tests/mb_stripos_variation3.phpt | 67 | ||||
| -rw-r--r-- | ext/mbstring/tests/mb_stripos_variation5_Bug45923.phpt | 22 | ||||
| -rw-r--r-- | ext/mbstring/tests/mb_strpos.phpt | 97 | ||||
| -rw-r--r-- | ext/mbstring/tests/mb_strpos_variation3.phpt | 62 | ||||
| -rw-r--r-- | ext/mbstring/tests/mb_strpos_variation5.phpt | 16 |
10 files changed, 495 insertions, 241 deletions
diff --git a/ext/mbstring/tests/bug45923.phpt b/ext/mbstring/tests/bug45923.phpt index 2d184ab019..41ffd70924 100644 --- a/ext/mbstring/tests/bug45923.phpt +++ b/ext/mbstring/tests/bug45923.phpt @@ -6,197 +6,241 @@ Bug #45923 (mb_st[r]ripos() offset not handled correctly) mbstring.internal_encoding=UTF-8 --FILE-- <?php -var_dump(strpos("abc abc abc", "abc", 0)); -var_dump(strpos("abc abc abc", "abc", 3)); -var_dump(strpos("abc abc abc", "abc", 6)); -var_dump(strpos("abc abc abc", "abc", 9)); -var_dump(strpos("abc abc abc", "abc", 11)); -var_dump(strpos("abc abc abc", "abc", 12)); -var_dump(strpos("abc abc abc", "abc", -1)); -var_dump(strpos("abc abc abc", "abc", -3)); -var_dump(strpos("abc abc abc", "abc", -6)); - -var_dump(mb_strpos("●○◆ ●○◆ ●○◆", "●○◆", 0)); -var_dump(mb_strpos("●○◆ ●○◆ ●○◆", "●○◆", 3)); -var_dump(mb_strpos("●○◆ ●○◆ ●○◆", "●○◆", 6)); -var_dump(mb_strpos("●○◆ ●○◆ ●○◆", "●○◆", 9)); -var_dump(mb_strpos("●○◆ ●○◆ ●○◆", "●○◆", 11)); -var_dump(mb_strpos("●○◆ ●○◆ ●○◆", "●○◆", 12)); -var_dump(mb_strpos("●○◆ ●○◆ ●○◆", "●○◆", -1)); -var_dump(mb_strpos("●○◆ ●○◆ ●○◆", "●○◆", -3)); -var_dump(mb_strpos("●○◆ ●○◆ ●○◆", "●○◆", -6)); - -var_dump(stripos("abc abc abc", "abc", 0)); -var_dump(stripos("abc abc abc", "abc", 3)); -var_dump(stripos("abc abc abc", "abc", 6)); -var_dump(stripos("abc abc abc", "abc", 9)); -var_dump(stripos("abc abc abc", "abc", 11)); -var_dump(stripos("abc abc abc", "abc", 12)); -var_dump(stripos("abc abc abc", "abc", -1)); -var_dump(stripos("abc abc abc", "abc", -3)); -var_dump(stripos("abc abc abc", "abc", -6)); - -var_dump(mb_stripos("●○◆ ●○◆ ●○◆", "●○◆", 0)); -var_dump(mb_stripos("●○◆ ●○◆ ●○◆", "●○◆", 3)); -var_dump(mb_stripos("●○◆ ●○◆ ●○◆", "●○◆", 6)); -var_dump(mb_stripos("●○◆ ●○◆ ●○◆", "●○◆", 9)); -var_dump(mb_stripos("●○◆ ●○◆ ●○◆", "●○◆", 11)); -var_dump(mb_stripos("●○◆ ●○◆ ●○◆", "●○◆", 12)); -var_dump(mb_stripos("●○◆ ●○◆ ●○◆", "●○◆", -1)); -var_dump(mb_stripos("●○◆ ●○◆ ●○◆", "●○◆", -3)); -var_dump(mb_stripos("●○◆ ●○◆ ●○◆", "●○◆", -6)); - -var_dump(strrpos("abc abc abc", "abc", 0)); -var_dump(strrpos("abc abc abc", "abc", 3)); -var_dump(strrpos("abc abc abc", "abc", 6)); -var_dump(strrpos("abc abc abc", "abc", 9)); -var_dump(strrpos("abc abc abc", "abc", 11)); -var_dump(strrpos("abc abc abc", "abc", 12)); -var_dump(strrpos("abc abc abc", "abc", -1)); -var_dump(strrpos("abc abc abc", "abc", -3)); -var_dump(strrpos("abc abc abc", "abc", -6)); - -var_dump(mb_strrpos("●○◆ ●○◆ ●○◆", "●○◆", 0)); -var_dump(mb_strrpos("●○◆ ●○◆ ●○◆", "●○◆", 3)); -var_dump(mb_strrpos("●○◆ ●○◆ ●○◆", "●○◆", 6)); -var_dump(mb_strrpos("●○◆ ●○◆ ●○◆", "●○◆", 9)); -var_dump(mb_strrpos("●○◆ ●○◆ ●○◆", "●○◆", 11)); -var_dump(mb_strrpos("●○◆ ●○◆ ●○◆", "●○◆", 12)); -var_dump(mb_strrpos("●○◆ ●○◆ ●○◆", "●○◆", -1)); -var_dump(mb_strrpos("●○◆ ●○◆ ●○◆", "●○◆", -3)); -var_dump(mb_strrpos("●○◆ ●○◆ ●○◆", "●○◆", -6)); - -var_dump(strripos("abc abc abc", "abc", 0)); -var_dump(strripos("abc abc abc", "abc", 3)); -var_dump(strripos("abc abc abc", "abc", 6)); -var_dump(strripos("abc abc abc", "abc", 9)); -var_dump(strripos("abc abc abc", "abc", 11)); -var_dump(strripos("abc abc abc", "abc", 12)); -var_dump(strripos("abc abc abc", "abc", -1)); -var_dump(strripos("abc abc abc", "abc", -3)); -var_dump(strripos("abc abc abc", "abc", -6)); - -var_dump(mb_strripos("●○◆ ●○◆ ●○◆", "●○◆", 0)); -var_dump(mb_strripos("●○◆ ●○◆ ●○◆", "●○◆", 3)); -var_dump(mb_strripos("●○◆ ●○◆ ●○◆", "●○◆", 6)); -var_dump(mb_strripos("●○◆ ●○◆ ●○◆", "●○◆", 9)); -var_dump(mb_strripos("●○◆ ●○◆ ●○◆", "●○◆", 11)); -var_dump(mb_strripos("●○◆ ●○◆ ●○◆", "●○◆", 12)); -var_dump(mb_strripos("●○◆ ●○◆ ●○◆", "●○◆", -1)); -var_dump(mb_strripos("●○◆ ●○◆ ●○◆", "●○◆", -3)); -var_dump(mb_strripos("●○◆ ●○◆ ●○◆", "●○◆", -6)); +function section($func, $haystack, $needle) +{ + echo "\n------- $func -----------\n\n"; + foreach(array(0, 3, 6, 9, 11, 12, -1, -3, -6, -20) as $offset) { + echo "> Offset: $offset\n"; + var_dump($func($haystack,$needle,$offset)); + } +} + +section('strpos' , "abc abc abc" , "abc"); +section('mb_strpos' , "●○◆ ●○◆ ●○◆", "●○◆"); + +section('stripos' , "abc abc abc" , "abc"); +section('mb_stripos' , "●○◆ ●○◆ ●○◆", "●○◆"); + +section('strrpos' , "abc abc abc" , "abc"); +section('mb_strrpos' , "●○◆ ●○◆ ●○◆", "●○◆"); + +section('strripos' , "abc abc abc" , "abc"); +section('mb_strripos', "●○◆ ●○◆ ●○◆", "●○◆"); ?> --EXPECTF-- +------- strpos ----------- + +> Offset: 0 int(0) +> Offset: 3 int(4) +> Offset: 6 int(8) +> Offset: 9 bool(false) +> Offset: 11 bool(false) +> Offset: 12 Warning: strpos(): Offset not contained in string in %s on line %d bool(false) - -Warning: strpos(): Offset not contained in string in %s on line %d +> Offset: -1 bool(false) +> Offset: -3 +int(8) +> Offset: -6 +int(8) +> Offset: -20 Warning: strpos(): Offset not contained in string in %s on line %d bool(false) -Warning: strpos(): Offset not contained in string in %s on line %d -bool(false) +------- mb_strpos ----------- + +> Offset: 0 int(0) +> Offset: 3 int(4) +> Offset: 6 int(8) +> Offset: 9 bool(false) +> Offset: 11 bool(false) +> Offset: 12 Warning: mb_strpos(): Offset not contained in string in %s on line %d bool(false) - -Warning: mb_strpos(): Offset not contained in string in %s on line %d +> Offset: -1 bool(false) +> Offset: -3 +int(8) +> Offset: -6 +int(8) +> Offset: -20 Warning: mb_strpos(): Offset not contained in string in %s on line %d bool(false) -Warning: mb_strpos(): Offset not contained in string in %s on line %d -bool(false) +------- stripos ----------- + +> Offset: 0 int(0) +> Offset: 3 int(4) +> Offset: 6 int(8) +> Offset: 9 bool(false) +> Offset: 11 bool(false) +> Offset: 12 Warning: stripos(): Offset not contained in string in %s on line %d bool(false) - -Warning: stripos(): Offset not contained in string in %s on line %d +> Offset: -1 bool(false) +> Offset: -3 +int(8) +> Offset: -6 +int(8) +> Offset: -20 Warning: stripos(): Offset not contained in string in %s on line %d bool(false) -Warning: stripos(): Offset not contained in string in %s on line %d -bool(false) +------- mb_stripos ----------- + +> Offset: 0 int(0) +> Offset: 3 int(4) +> Offset: 6 int(8) +> Offset: 9 bool(false) +> Offset: 11 bool(false) +> Offset: 12 Warning: mb_stripos(): Offset not contained in string in %s on line %d bool(false) - -Warning: mb_stripos(): Offset not contained in string in %s on line %d +> Offset: -1 bool(false) +> Offset: -3 +int(8) +> Offset: -6 +int(8) +> Offset: -20 Warning: mb_stripos(): Offset not contained in string in %s on line %d bool(false) -Warning: mb_stripos(): Offset not contained in string in %s on line %d -bool(false) +------- strrpos ----------- + +> Offset: 0 int(8) +> Offset: 3 int(8) +> Offset: 6 int(8) +> Offset: 9 bool(false) +> Offset: 11 bool(false) +> Offset: 12 Warning: strrpos(): Offset is greater than the length of haystack string in %s on line %d bool(false) +> Offset: -1 int(8) +> Offset: -3 int(8) +> Offset: -6 int(4) +> Offset: -20 + +Warning: strrpos(): Offset is greater than the length of haystack string in %s on line %d +bool(false) + +------- mb_strrpos ----------- + +> Offset: 0 int(8) +> Offset: 3 int(8) +> Offset: 6 int(8) +> Offset: 9 bool(false) +> Offset: 11 bool(false) +> Offset: 12 Warning: mb_strrpos(): Offset is greater than the length of haystack string in %s on line %d bool(false) +> Offset: -1 int(8) +> Offset: -3 int(8) +> Offset: -6 int(4) +> Offset: -20 + +Warning: mb_strrpos(): Offset is greater than the length of haystack string in %s on line %d +bool(false) + +------- strripos ----------- + +> Offset: 0 int(8) +> Offset: 3 int(8) +> Offset: 6 int(8) +> Offset: 9 bool(false) +> Offset: 11 bool(false) +> Offset: 12 Warning: strripos(): Offset is greater than the length of haystack string in %s on line %d bool(false) +> Offset: -1 int(8) +> Offset: -3 int(8) +> Offset: -6 int(4) +> Offset: -20 + +Warning: strripos(): Offset is greater than the length of haystack string in %s on line %d +bool(false) + +------- mb_strripos ----------- + +> Offset: 0 int(8) +> Offset: 3 int(8) +> Offset: 6 int(8) +> Offset: 9 bool(false) +> Offset: 11 bool(false) +> Offset: 12 Warning: mb_strripos(): Offset is greater than the length of haystack string in %s on line %d bool(false) +> Offset: -1 int(8) +> Offset: -3 int(8) +> Offset: -6 int(4) +> Offset: -20 + +Warning: mb_strripos(): Offset is greater than the length of haystack string in %s on line %d +bool(false)
\ No newline at end of file diff --git a/ext/mbstring/tests/bug72399.phpt b/ext/mbstring/tests/bug72399.phpt new file mode 100644 index 0000000000..ba6ffb2cb1 --- /dev/null +++ b/ext/mbstring/tests/bug72399.phpt @@ -0,0 +1,10 @@ +--TEST-- +Bug #72399 (Use-After-Free in MBString (search_re)) +--FILE-- +<?php +$var5 = mbereg_search_init("","2"); +$var6 = mb_eregi_replace("2","",""); +$var13 = mbereg_search_pos(); +?> +--EXPECTF-- +Warning: mbereg_search_pos(): No regex given in %sbug72399.php on line %d diff --git a/ext/mbstring/tests/mb_ereg_search_setpos.phpt b/ext/mbstring/tests/mb_ereg_search_setpos.phpt new file mode 100644 index 0000000000..ec354309f3 --- /dev/null +++ b/ext/mbstring/tests/mb_ereg_search_setpos.phpt @@ -0,0 +1,70 @@ +--TEST-- +mb_ereg_search_setpos() function +--SKIPIF-- +<?php +if (!extension_loaded('mbstring')) die('skip mbstring not enabled'); +?> +--FILE-- +<?php +mb_regex_encoding('iso-8859-1'); +$test_str = 'Itrntinliztin'; // Length = 20 + +var_dump(mb_ereg_search_setpos(50)); // OK +var_dump(mb_ereg_search_setpos(-1)); // Error + +mb_ereg_search_init($test_str); + +$positions = array( 5, 19, 20, 25, 0, -5, -20, -30); +foreach($positions as $pos) { + echo("\n* Position: $pos :\n"); + var_dump(mb_ereg_search_setpos($pos)); + var_dump(mb_ereg_search_getpos()); +} +?> +==DONE== +--EXPECTF-- +bool(true) + +Warning: mb_ereg_search_setpos(): Position is out of range in %s on line %d +bool(false) + +* Position: 5 : +bool(true) +int(5) + +* Position: 19 : +bool(true) +int(19) + +* Position: 20 : + +Warning: mb_ereg_search_setpos(): Position is out of range in %s on line %d +bool(false) +int(0) + +* Position: 25 : + +Warning: mb_ereg_search_setpos(): Position is out of range in %s on line %d +bool(false) +int(0) + +* Position: 0 : +bool(true) +int(0) + +* Position: -5 : +bool(true) +int(15) + +* Position: -20 : +bool(true) +int(0) + +* Position: -30 : + +Warning: mb_ereg_search_setpos(): Position is out of range in %s on line %d +bool(false) +int(0) +==DONE== + + diff --git a/ext/mbstring/tests/mb_strimwidth.phpt b/ext/mbstring/tests/mb_strimwidth.phpt index 82780d6756..f257604c6b 100644 --- a/ext/mbstring/tests/mb_strimwidth.phpt +++ b/ext/mbstring/tests/mb_strimwidth.phpt @@ -14,30 +14,44 @@ include_once('common.inc'); // EUC-JP $euc_jp = '0123ʸܸǤEUC-JPȤäƤޤܸݽ'; +print "String width: ".mb_strwidth($euc_jp,'EUC-JP')."\n"; + print "1: ". mb_strimwidth($euc_jp, 0, 15,'...','EUC-JP') . "\n"; print "2: ". mb_strimwidth($euc_jp, 0, 100,'...','EUC-JP') . "\n"; print "3: ". mb_strimwidth($euc_jp, 15, 100,'...','EUC-JP') . "\n"; -// Note: Did not start form -22 offset. Staring from 0. -$str = mb_strimwidth($euc_jp,-22, 100,'...','EUC-JP'); -($str === FALSE) ? print "4 OK\n" : print "NG: $str\n"; +print "4: ". mb_strimwidth($euc_jp, -30, 5,'...','EUC-JP') . "\n"; +print "5: ". mb_strimwidth($euc_jp, 38, 5,'...','EUC-JP') . "\n"; +print "6: ". mb_strimwidth($euc_jp, 38, -25,'...','EUC-JP') . "\n"; +print "7: ". mb_strimwidth($euc_jp, -30, -25,'...','EUC-JP') . "\n"; + +$str = mb_strimwidth($euc_jp, 0, -100,'...','EUC-JP'); +($str === FALSE) ? print "10 OK\n" : print "NG: $str\n"; -$str = mb_strimwidth($euc_jp, 100, -10,'...','EUC-JP'); -($str === FALSE) ? print "5 OK\n" : print "NG: $str\n"; +$str = mb_strimwidth($euc_jp, 100, 10,'...','EUC-JP'); +($str === FALSE) ? print "11 OK\n" : print "NG: $str\n"; $str = mb_strimwidth($euc_jp, -100, 10,'...','EUC-JP'); -($str === FALSE) ? print "6 OK\n" : print "NG: $str\n"; +($str === FALSE) ? print "12 OK\n" : print "NG: $str\n"; + +$str = mb_strimwidth($euc_jp, -10, -12,'...','EUC-JP'); +($str === FALSE) ? print "13 OK\n" : print "NG: $str\n"; ?> --EXPECT-- +String width: 68 1: 0123ʸ... 2: 0123ʸܸǤEUC-JPȤäƤޤܸݽ 3: EUC-JPȤäƤޤܸݽ +4: +5: +6: +7: ERR: Warning -4 OK +10 OK ERR: Warning -5 OK +11 OK ERR: Warning -6 OK - - +12 OK +ERR: Warning +13 OK diff --git a/ext/mbstring/tests/mb_stripos.phpt b/ext/mbstring/tests/mb_stripos.phpt index 4ea8cfa6d6..8268872223 100644 --- a/ext/mbstring/tests/mb_stripos.phpt +++ b/ext/mbstring/tests/mb_stripos.phpt @@ -1,10 +1,7 @@ --TEST-- mb_stripos() --SKIPIF-- -<?php -extension_loaded('mbstring') or die('skip'); -function_exists('mb_stripos') or die("skip mb_stripos() is not available in this build"); -?> +<?php extension_loaded('mbstring') or die('skip mbstring not available'); ?> --FILE-- <?php // TODO: Add more encodings @@ -17,43 +14,62 @@ include_once('common.inc'); // Test string $euc_jp = b'0123ʸܸǤEUC-JPȤäƤޤ0123ܸݽ'; +$slen = mb_strlen($euc_jp, 'EUC-JP'); +echo "String len: $slen\n"; + // EUC-JP - With encoding parameter mb_internal_encoding('UTF-8') or print("mb_internal_encoding() failed\n"); echo "== POSITIVE OFFSET ==\n"; -print mb_stripos($euc_jp,b'ܸ', 0, 'EUC-JP') . "\n"; + +print mb_stripos($euc_jp, b'ܸ', 0, 'EUC-JP') . "\n"; print mb_stripos($euc_jp, b'0', 0, 'EUC-JP') . "\n"; print mb_stripos($euc_jp, 3, 0, 'EUC-JP') . "\n"; print mb_stripos($euc_jp, 0, 0, 'EUC-JP') . "\n"; -print mb_stripos($euc_jp,b'ܸ', 15, 'EUC-JP') . "\n"; +print mb_stripos($euc_jp, b'ܸ', 15, 'EUC-JP') . "\n"; print mb_stripos($euc_jp, b'0', 15, 'EUC-JP') . "\n"; print mb_stripos($euc_jp, 3, 15, 'EUC-JP') . "\n"; print mb_stripos($euc_jp, 0, 15, 'EUC-JP') . "\n"; + // Negative offset -// Note: PHP Warning - offset is negative. -// Note: For offset(-15). It does not return position of latter string. (ie the same result as -50) echo "== NEGATIVE OFFSET ==\n"; -$r = mb_stripos($euc_jp,b'ܸ', -15, 'EUC-JP'); -($r === FALSE) ? print "OK_NEGATIVE_OFFSET\n" : print "NG_NEGATIVE_OFFSET\n"; -$r = mb_stripos($euc_jp, b'0', -15, 'EUC-JP'); -($r === FALSE) ? print "OK_NEGATIVE_OFFSET\n" : print "NG_NEGATIVE_OFFSET\n"; -$r = mb_stripos($euc_jp, 3, -15, 'EUC-JP'); -($r === FALSE) ? print "OK_NEGATIVE_OFFSET\n" : print "NG_NEGATIVE_OFFSET\n"; -$r = mb_stripos($euc_jp, 0, -15, 'EUC-JP'); -($r === FALSE) ? print "OK_NEGATIVE_OFFSET\n" : print "NG_NEGATIVE_OFFSET\n"; -$r = mb_stripos($euc_jp,b'ܸ', -50, 'EUC-JP'); -($r === FALSE) ? print "OK_NEGATIVE_OFFSET\n" : print "NG_NEGATIVE_OFFSET\n"; + +print mb_stripos($euc_jp, b'ܸ', -15, 'EUC-JP') . "\n"; +print mb_stripos($euc_jp, b'0', -15, 'EUC-JP') . "\n"; +print mb_stripos($euc_jp, 3, -15, 'EUC-JP') . "\n"; +print mb_stripos($euc_jp, 0, -15, 'EUC-JP') . "\n"; +print mb_stripos($euc_jp, 0, -43, 'EUC-JP') . "\n"; + + +// Invalid offset - should return false with warning +print ("== INVALID OFFSET ==\n"); + +$r = mb_stripos($euc_jp, b'ܸ', 44, 'EUC-JP'); +($r === FALSE) ? print "OK_INVALID_OFFSET\n" : print "NG_INVALID_OFFSET\n"; +$r = mb_stripos($euc_jp, b'ܸ', 50, 'EUC-JP'); +($r === FALSE) ? print "OK_INVALID_OFFSET\n" : print "NG_INVALID_OFFSET\n"; +$r = mb_stripos($euc_jp, b'0', 50, 'EUC-JP'); +($r === FALSE) ? print "OK_INVALID_OFFSET\n" : print "NG_INVALID_OFFSET\n"; +$r = mb_stripos($euc_jp, 3, 50, 'EUC-JP'); +($r === FALSE) ? print "OK_INVALID_OFFSET\n" : print "NG_INVALID_OFFSET\n"; +$r = mb_stripos($euc_jp, 0, 50, 'EUC-JP'); +($r === FALSE) ? print "OK_INVALID_OFFSET\n" : print "NG_INVALID_OFFSET\n"; +$r = mb_stripos($euc_jp, b'ܸ', -50, 'EUC-JP'); +($r === FALSE) ? print "OK_INVALID_OFFSET\n" : print "NG_INVALID_OFFSET\n"; $r = mb_stripos($euc_jp, b'0', -50, 'EUC-JP'); -($r === FALSE) ? print "OK_NEGATIVE_OFFSET\n" : print "NG_NEGATIVE_OFFSET\n"; +($r === FALSE) ? print "OK_INVALID_OFFSET\n" : print "NG_INVALID_OFFSET\n"; $r = mb_stripos($euc_jp, 3, -50, 'EUC-JP'); -($r === FALSE) ? print "OK_NEGATIVE_OFFSET\n" : print "NG_NEGATIVE_OFFSET\n"; +($r === FALSE) ? print "OK_INVALID_OFFSET\n" : print "NG_INVALID_OFFSET\n"; $r = mb_stripos($euc_jp, 0, -50, 'EUC-JP'); -($r === FALSE) ? print "OK_NEGATIVE_OFFSET\n" : print "NG_NEGATIVE_OFFSET\n"; +($r === FALSE) ? print "OK_INVALID_OFFSET\n" : print "NG_INVALID_OFFSET\n"; +$r = mb_stripos($euc_jp, 0, -44, 'EUC-JP'); +($r === FALSE) ? print "OK_INVALID_OFFSET\n" : print "NG_INVALID_OFFSET\n"; // Out of range - should return false print ("== OUT OF RANGE ==\n"); -$r = mb_stripos($euc_jp,b'ܸ', 40, 'EUC-JP'); + +$r = mb_stripos($euc_jp, b'ܸ', 40, 'EUC-JP'); ($r === FALSE) ? print "OK_OUT_RANGE\n" : print "NG_OUT_RANGE\n"; $r = mb_stripos($euc_jp, b'0', 40, 'EUC-JP'); ($r === FALSE) ? print "OK_OUT_RANGE\n" : print "NG_OUT_RANGE\n"; @@ -61,12 +77,19 @@ $r = mb_stripos($euc_jp, 3, 40, 'EUC-JP'); ($r === FALSE) ? print "OK_OUT_RANGE\n" : print "NG_OUT_RANGE\n"; $r = mb_stripos($euc_jp, 0, 40, 'EUC-JP'); ($r === FALSE) ? print "OK_OUT_RANGE\n" : print "NG_OUT_RANGE\n"; -// Note: Returned NULL string -// echo gettype($r). ' val '. $r ."\n"; +$r = mb_stripos($euc_jp, b'ܸ', -3, 'EUC-JP'); +($r === FALSE) ? print "OK_OUT_RANGE\n" : print "NG_OUT_RANGE\n"; +$r = mb_stripos($euc_jp, b'0', -3, 'EUC-JP'); +($r === FALSE) ? print "OK_OUT_RANGE\n" : print "NG_OUT_RANGE\n"; +$r = mb_stripos($euc_jp, 3, -3, 'EUC-JP'); +($r === FALSE) ? print "OK_OUT_RANGE\n" : print "NG_OUT_RANGE\n"; +$r = mb_stripos($euc_jp, 0, -3, 'EUC-JP'); +($r === FALSE) ? print "OK_OUT_RANGE\n" : print "NG_OUT_RANGE\n"; // Non-existent echo "== NON-EXISTENT ==\n"; + $r = mb_stripos($euc_jp, b'ڹ', 0, 'EUC-JP'); ($r === FALSE) ? print "OK_STR\n" : print "NG_STR\n"; $r = mb_stripos($euc_jp, b"\n", 0, 'EUC-JP'); @@ -75,30 +98,32 @@ $r = mb_stripos($euc_jp, b"\n", 0, 'EUC-JP'); // EUC-JP - No encoding parameter echo "== NO ENCODING PARAMETER ==\n"; + mb_internal_encoding('EUC-JP') or print("mb_internal_encoding() failed\n"); -print mb_stripos($euc_jp,b'ܸ', 0) . "\n"; +print mb_stripos($euc_jp, b'ܸ', 0) . "\n"; print mb_stripos($euc_jp, b'0', 0) . "\n"; print mb_stripos($euc_jp, 3, 0) . "\n"; print mb_stripos($euc_jp, 0, 0) . "\n"; -$r = mb_stripos($euc_jp,b'ڹ', 0); +$r = mb_stripos($euc_jp, b'ڹ', 0); ($r === FALSE) ? print "OK_STR\n" : print "NG_STR\n"; -$r = mb_stripos($euc_jp,b"\n", 0); +$r = mb_stripos($euc_jp, b"\n", 0); ($r === FALSE) ? print "OK_NEWLINE\n" : print "NG_NEWLINE\n"; // EUC-JP - No offset and encoding parameter echo "== NO OFFSET AND ENCODING PARAMETER ==\n"; + mb_internal_encoding('EUC-JP') or print("mb_internal_encoding() failed\n"); -print mb_stripos($euc_jp,b'ܸ') . "\n"; +print mb_stripos($euc_jp, b'ܸ') . "\n"; print mb_stripos($euc_jp, b'0') . "\n"; print mb_stripos($euc_jp, 3) . "\n"; print mb_stripos($euc_jp, 0) . "\n"; -$r = mb_stripos($euc_jp,b'ڹ'); +$r = mb_stripos($euc_jp, b'ڹ'); ($r === FALSE) ? print "OK_STR\n" : print "NG_STR\n"; -$r = mb_stripos($euc_jp,b"\n"); +$r = mb_stripos($euc_jp, b"\n"); ($r === FALSE) ? print "OK_NEWLINE\n" : print "NG_NEWLINE\n"; @@ -113,11 +138,10 @@ $r = mb_stripos($euc_jp, $t_obj, 'EUC-JP'); ($r === NULL) ? print("OK_OBJECT\n") : print("NG_OBJECT\n"); $r = mb_stripos($euc_jp, $t_obj, 'BAD_ENCODING'); ($r === NULL) ? print("OK_BAD_ENCODING\n") : print("NG_BAD_ENCODING\n"); - - ?> - +==DONE== --EXPECT-- +String len: 43 == POSITIVE OFFSET == 10 0 @@ -128,27 +152,41 @@ $r = mb_stripos($euc_jp, $t_obj, 'BAD_ENCODING'); 33 30 == NEGATIVE OFFSET == +34 +30 +33 +30 +0 +== INVALID OFFSET == ERR: Warning -OK_NEGATIVE_OFFSET +OK_INVALID_OFFSET ERR: Warning -OK_NEGATIVE_OFFSET +OK_INVALID_OFFSET ERR: Warning -OK_NEGATIVE_OFFSET +OK_INVALID_OFFSET ERR: Warning -OK_NEGATIVE_OFFSET +OK_INVALID_OFFSET ERR: Warning -OK_NEGATIVE_OFFSET +OK_INVALID_OFFSET ERR: Warning -OK_NEGATIVE_OFFSET +OK_INVALID_OFFSET ERR: Warning -OK_NEGATIVE_OFFSET +OK_INVALID_OFFSET ERR: Warning -OK_NEGATIVE_OFFSET +OK_INVALID_OFFSET +ERR: Warning +OK_INVALID_OFFSET +ERR: Warning +OK_INVALID_OFFSET == OUT OF RANGE == OK_OUT_RANGE OK_OUT_RANGE OK_OUT_RANGE OK_OUT_RANGE +OK_OUT_RANGE +OK_OUT_RANGE +OK_OUT_RANGE +OK_OUT_RANGE == NON-EXISTENT == OK_STR OK_NEWLINE @@ -175,4 +213,4 @@ ERR: Warning OK_OBJECT ERR: Warning OK_BAD_ENCODING - +==DONE== diff --git a/ext/mbstring/tests/mb_stripos_variation3.phpt b/ext/mbstring/tests/mb_stripos_variation3.phpt index 21a1293786..69c4a9e53b 100644 --- a/ext/mbstring/tests/mb_stripos_variation3.phpt +++ b/ext/mbstring/tests/mb_stripos_variation3.phpt @@ -8,10 +8,9 @@ if (PHP_INT_SIZE != 8) die('skip 64-bit only'); ?> --FILE-- <?php -/* Prototype : int mb_stripos(string haystack, string needle [, int offset [, string encoding]]) - * Description: Finds position of first occurrence of a string within another, case insensitive +/* Prototype : int mb_stripos(string $haystack, string $needle [, int $offset [, string $encoding]]) + * Description: Find position of first occurrence of a string within another, case insensitive * Source code: ext/mbstring/mbstring.c - * Alias to functions: */ /* @@ -52,45 +51,47 @@ $inputs = array( /*1*/ 0, 1, 12345, + -5, -2345, // float data -/*5*/ 10.5, - -10.5, +/*6*/ 10.5, + -5.5, + -100.5, 12.3456789000e10, 12.3456789000E-10, .5, // null data -/*10*/ NULL, +/*12*/ NULL, null, // boolean data -/*12*/ true, +/*14*/ true, false, TRUE, FALSE, // empty data -/*16*/ "", +/*18*/ "", '', // string data -/*18*/ "string", +/*20*/ "string", 'string', $heredoc, // object data -/*21*/ new classA(), +/*23*/ new classA(), // undefined data -/*22*/ @$undefined_var, +/*24*/ @$undefined_var, // unset data -/*23*/ @$unset_var, +/*25*/ @$unset_var, // resource variable -/*24*/ $fp +/*26*/ $fp ); // loop through each element of $inputs to check the behavior of mb_stripos() @@ -120,28 +121,28 @@ Warning: mb_stripos(): Offset not contained in string in %s on line %d bool(false) -- Iteration 4 -- - -Warning: mb_stripos(): Offset not contained in string in %s on line %d -bool(false) +int(8) -- Iteration 5 -- + +Warning: mb_stripos(): Offset not contained in string in %s on line %d bool(false) -- Iteration 6 -- - -Warning: mb_stripos(): Offset not contained in string in %s on line %d bool(false) -- Iteration 7 -- +int(8) + +-- Iteration 8 -- Warning: mb_stripos(): Offset not contained in string in %s on line %d bool(false) --- Iteration 8 -- -int(8) - -- Iteration 9 -- -int(8) + +Warning: mb_stripos(): Offset not contained in string in %s on line %d +bool(false) -- Iteration 10 -- int(8) @@ -162,42 +163,48 @@ int(8) int(8) -- Iteration 16 -- +int(8) + +-- Iteration 17 -- +int(8) + +-- Iteration 18 -- Warning: mb_stripos() expects parameter 3 to be integer, string given in %s on line %d NULL --- Iteration 17 -- +-- Iteration 19 -- Warning: mb_stripos() expects parameter 3 to be integer, string given in %s on line %d NULL --- Iteration 18 -- +-- Iteration 20 -- Warning: mb_stripos() expects parameter 3 to be integer, string given in %s on line %d NULL --- Iteration 19 -- +-- Iteration 21 -- Warning: mb_stripos() expects parameter 3 to be integer, string given in %s on line %d NULL --- Iteration 20 -- +-- Iteration 22 -- Warning: mb_stripos() expects parameter 3 to be integer, string given in %s on line %d NULL --- Iteration 21 -- +-- Iteration 23 -- Warning: mb_stripos() expects parameter 3 to be integer, object given in %s on line %d NULL --- Iteration 22 -- +-- Iteration 24 -- int(8) --- Iteration 23 -- +-- Iteration 25 -- int(8) --- Iteration 24 -- +-- Iteration 26 -- Warning: mb_stripos() expects parameter 3 to be integer, resource given in %s on line %d NULL diff --git a/ext/mbstring/tests/mb_stripos_variation5_Bug45923.phpt b/ext/mbstring/tests/mb_stripos_variation5_Bug45923.phpt index fbe4937ac2..8ffcae5c0f 100644 --- a/ext/mbstring/tests/mb_stripos_variation5_Bug45923.phpt +++ b/ext/mbstring/tests/mb_stripos_variation5_Bug45923.phpt @@ -7,10 +7,9 @@ function_exists('mb_stripos') or die("skip mb_stripos() is not available in this ?> --FILE-- <?php -/* Prototype : int mb_stripos(string haystack, string needle [, int offset [, string encoding]]) - * Description: Finds position of first occurrence of a string within another, case insensitive +/* Prototype : int mb_stripos(string $haystack, string $needle [, int $offset [, string $encoding]]) + * Description: Find position of first occurrence of a string within another, case insensitive * Source code: ext/mbstring/mbstring.c - * Alias to functions: */ /* @@ -34,7 +33,7 @@ $needle_mb = base64_decode('44CC'); * mb_stripos should not be able to accept negative values as $offset. * 60 is larger than *BYTE* count for $string_mb */ -for ($i = -10; $i <= 60; $i += 10) { +for ($i = -30; $i <= 60; $i += 10) { echo "\n**-- Offset is: $i --**\n"; echo "-- ASCII String --\n"; var_dump(mb_stripos($string_ascii, $needle_ascii, $i)); @@ -48,7 +47,7 @@ echo "Done"; --EXPECTF-- *** Testing mb_stripos() : usage variations *** -**-- Offset is: -10 --** +**-- Offset is: -30 --** -- ASCII String -- Warning: mb_stripos(): Offset not contained in string in %s on line %d @@ -58,6 +57,18 @@ bool(false) Warning: mb_stripos(): Offset not contained in string in %s on line %d bool(false) +**-- Offset is: -20 --** +-- ASCII String -- +int(9) +--Multibyte String -- +int(9) + +**-- Offset is: -10 --** +-- ASCII String -- +int(20) +--Multibyte String -- +int(20) + **-- Offset is: 0 --** -- ASCII String -- int(9) @@ -116,4 +127,3 @@ bool(false) Warning: mb_stripos(): Offset not contained in string in %s on line %d bool(false) Done - diff --git a/ext/mbstring/tests/mb_strpos.phpt b/ext/mbstring/tests/mb_strpos.phpt index e1222ca6dd..364bc7cc1a 100644 --- a/ext/mbstring/tests/mb_strpos.phpt +++ b/ext/mbstring/tests/mb_strpos.phpt @@ -14,10 +14,14 @@ include_once('common.inc'); // Test string $euc_jp = b'0123ʸܸǤEUC-JPȤäƤޤ0123ܸݽ'; +$slen = mb_strlen($euc_jp, 'EUC-JP'); +echo "String len: $slen\n"; + // EUC-JP - With encoding parameter mb_internal_encoding('UTF-8') or print("mb_internal_encoding() failed\n"); echo "== POSITIVE OFFSET ==\n"; + print mb_strpos($euc_jp, b'ܸ', 0, 'EUC-JP') . "\n"; print mb_strpos($euc_jp, b'0', 0, 'EUC-JP') . "\n"; print mb_strpos($euc_jp, 3, 0, 'EUC-JP') . "\n"; @@ -27,29 +31,44 @@ print mb_strpos($euc_jp, b'0', 15, 'EUC-JP') . "\n"; print mb_strpos($euc_jp, 3, 15, 'EUC-JP') . "\n"; print mb_strpos($euc_jp, 0, 15, 'EUC-JP') . "\n"; + // Negative offset -// Note: PHP Warning - offset is negative. -// Note: For offset(-15). It does not return position of latter string. (ie the same result as -50) echo "== NEGATIVE OFFSET ==\n"; -$r = mb_strpos($euc_jp, b'ܸ', -15, 'EUC-JP'); -($r === FALSE) ? print "OK_NEGATIVE_OFFSET\n" : print "NG_NEGATIVE_OFFSET\n"; -$r = mb_strpos($euc_jp, b'0', -15, 'EUC-JP'); -($r === FALSE) ? print "OK_NEGATIVE_OFFSET\n" : print "NG_NEGATIVE_OFFSET\n"; -$r = mb_strpos($euc_jp, 3, -15, 'EUC-JP'); -($r === FALSE) ? print "OK_NEGATIVE_OFFSET\n" : print "NG_NEGATIVE_OFFSET\n"; -$r = mb_strpos($euc_jp, 0, -15, 'EUC-JP'); -($r === FALSE) ? print "OK_NEGATIVE_OFFSET\n" : print "NG_NEGATIVE_OFFSET\n"; + +print mb_strpos($euc_jp, b'ܸ', -15, 'EUC-JP') . "\n"; +print mb_strpos($euc_jp, b'0', -15, 'EUC-JP') . "\n"; +print mb_strpos($euc_jp, 3, -15, 'EUC-JP') . "\n"; +print mb_strpos($euc_jp, 0, -15, 'EUC-JP') . "\n"; +print mb_strpos($euc_jp, 0, -43, 'EUC-JP') . "\n"; + + +// Invalid offset - should return false with warning +print ("== INVALID OFFSET ==\n"); + +$r = mb_strpos($euc_jp, b'ܸ', 44, 'EUC-JP'); +($r === FALSE) ? print "OK_INVALID_OFFSET\n" : print "NG_INVALID_OFFSET\n"; +$r = mb_strpos($euc_jp, b'ܸ', 50, 'EUC-JP'); +($r === FALSE) ? print "OK_INVALID_OFFSET\n" : print "NG_INVALID_OFFSET\n"; +$r = mb_strpos($euc_jp, b'0', 50, 'EUC-JP'); +($r === FALSE) ? print "OK_INVALID_OFFSET\n" : print "NG_INVALID_OFFSET\n"; +$r = mb_strpos($euc_jp, 3, 50, 'EUC-JP'); +($r === FALSE) ? print "OK_INVALID_OFFSET\n" : print "NG_INVALID_OFFSET\n"; +$r = mb_strpos($euc_jp, 0, 50, 'EUC-JP'); +($r === FALSE) ? print "OK_INVALID_OFFSET\n" : print "NG_INVALID_OFFSET\n"; $r = mb_strpos($euc_jp, b'ܸ', -50, 'EUC-JP'); -($r === FALSE) ? print "OK_NEGATIVE_OFFSET\n" : print "NG_NEGATIVE_OFFSET\n"; +($r === FALSE) ? print "OK_INVALID_OFFSET\n" : print "NG_INVALID_OFFSET\n"; $r = mb_strpos($euc_jp, b'0', -50, 'EUC-JP'); -($r === FALSE) ? print "OK_NEGATIVE_OFFSET\n" : print "NG_NEGATIVE_OFFSET\n"; +($r === FALSE) ? print "OK_INVALID_OFFSET\n" : print "NG_INVALID_OFFSET\n"; $r = mb_strpos($euc_jp, 3, -50, 'EUC-JP'); -($r === FALSE) ? print "OK_NEGATIVE_OFFSET\n" : print "NG_NEGATIVE_OFFSET\n"; +($r === FALSE) ? print "OK_INVALID_OFFSET\n" : print "NG_INVALID_OFFSET\n"; $r = mb_strpos($euc_jp, 0, -50, 'EUC-JP'); -($r === FALSE) ? print "OK_NEGATIVE_OFFSET\n" : print "NG_NEGATIVE_OFFSET\n"; +($r === FALSE) ? print "OK_INVALID_OFFSET\n" : print "NG_INVALID_OFFSET\n"; +$r = mb_strpos($euc_jp, 0, -44, 'EUC-JP'); +($r === FALSE) ? print "OK_INVALID_OFFSET\n" : print "NG_INVALID_OFFSET\n"; // Out of range - should return false print ("== OUT OF RANGE ==\n"); + $r = mb_strpos($euc_jp, b'ܸ', 40, 'EUC-JP'); ($r === FALSE) ? print "OK_OUT_RANGE\n" : print "NG_OUT_RANGE\n"; $r = mb_strpos($euc_jp, b'0', 40, 'EUC-JP'); @@ -58,12 +77,19 @@ $r = mb_strpos($euc_jp, 3, 40, 'EUC-JP'); ($r === FALSE) ? print "OK_OUT_RANGE\n" : print "NG_OUT_RANGE\n"; $r = mb_strpos($euc_jp, 0, 40, 'EUC-JP'); ($r === FALSE) ? print "OK_OUT_RANGE\n" : print "NG_OUT_RANGE\n"; -// Note: Returned NULL string -// echo gettype($r). ' val '. $r ."\n"; +$r = mb_strpos($euc_jp, b'ܸ', -3, 'EUC-JP'); +($r === FALSE) ? print "OK_OUT_RANGE\n" : print "NG_OUT_RANGE\n"; +$r = mb_strpos($euc_jp, b'0', -3, 'EUC-JP'); +($r === FALSE) ? print "OK_OUT_RANGE\n" : print "NG_OUT_RANGE\n"; +$r = mb_strpos($euc_jp, 3, -3, 'EUC-JP'); +($r === FALSE) ? print "OK_OUT_RANGE\n" : print "NG_OUT_RANGE\n"; +$r = mb_strpos($euc_jp, 0, -3, 'EUC-JP'); +($r === FALSE) ? print "OK_OUT_RANGE\n" : print "NG_OUT_RANGE\n"; // Non-existent echo "== NON-EXISTENT ==\n"; + $r = mb_strpos($euc_jp, b'ڹ', 0, 'EUC-JP'); ($r === FALSE) ? print "OK_STR\n" : print "NG_STR\n"; $r = mb_strpos($euc_jp, b"\n", 0, 'EUC-JP'); @@ -72,6 +98,7 @@ $r = mb_strpos($euc_jp, b"\n", 0, 'EUC-JP'); // EUC-JP - No encoding parameter echo "== NO ENCODING PARAMETER ==\n"; + mb_internal_encoding('EUC-JP') or print("mb_internal_encoding() failed\n"); print mb_strpos($euc_jp, b'ܸ', 0) . "\n"; @@ -86,6 +113,7 @@ $r = mb_strpos($euc_jp, b"\n", 0); // EUC-JP - No offset and encoding parameter echo "== NO OFFSET AND ENCODING PARAMETER ==\n"; + mb_internal_encoding('EUC-JP') or print("mb_internal_encoding() failed\n"); print mb_strpos($euc_jp, b'ܸ') . "\n"; @@ -110,11 +138,10 @@ $r = mb_strpos($euc_jp, $t_obj, 'EUC-JP'); ($r === NULL) ? print("OK_OBJECT\n") : print("NG_OBJECT\n"); $r = mb_strpos($euc_jp, $t_obj, 'BAD_ENCODING'); ($r === NULL) ? print("OK_BAD_ENCODING\n") : print("NG_BAD_ENCODING\n"); - - ?> - +==DONE== --EXPECT-- +String len: 43 == POSITIVE OFFSET == 10 0 @@ -125,27 +152,41 @@ $r = mb_strpos($euc_jp, $t_obj, 'BAD_ENCODING'); 33 30 == NEGATIVE OFFSET == +34 +30 +33 +30 +0 +== INVALID OFFSET == +ERR: Warning +OK_INVALID_OFFSET ERR: Warning -OK_NEGATIVE_OFFSET +OK_INVALID_OFFSET ERR: Warning -OK_NEGATIVE_OFFSET +OK_INVALID_OFFSET ERR: Warning -OK_NEGATIVE_OFFSET +OK_INVALID_OFFSET ERR: Warning -OK_NEGATIVE_OFFSET +OK_INVALID_OFFSET ERR: Warning -OK_NEGATIVE_OFFSET +OK_INVALID_OFFSET ERR: Warning -OK_NEGATIVE_OFFSET +OK_INVALID_OFFSET ERR: Warning -OK_NEGATIVE_OFFSET +OK_INVALID_OFFSET ERR: Warning -OK_NEGATIVE_OFFSET +OK_INVALID_OFFSET +ERR: Warning +OK_INVALID_OFFSET == OUT OF RANGE == OK_OUT_RANGE OK_OUT_RANGE OK_OUT_RANGE OK_OUT_RANGE +OK_OUT_RANGE +OK_OUT_RANGE +OK_OUT_RANGE +OK_OUT_RANGE == NON-EXISTENT == OK_STR OK_NEWLINE @@ -172,4 +213,4 @@ ERR: Warning OK_OBJECT ERR: Warning OK_BAD_ENCODING - +==DONE== diff --git a/ext/mbstring/tests/mb_strpos_variation3.phpt b/ext/mbstring/tests/mb_strpos_variation3.phpt index 8079a19021..f30b708183 100644 --- a/ext/mbstring/tests/mb_strpos_variation3.phpt +++ b/ext/mbstring/tests/mb_strpos_variation3.phpt @@ -51,45 +51,47 @@ $inputs = array( /*1*/ 0, 1, 12345, + -5, -2345, // float data -/*5*/ 10.5, - -10.5, +/*6*/ 10.5, + -5.5, + -100.5, 12.3456789000e10, 12.3456789000E-10, .5, // null data -/*10*/ NULL, +/*12*/ NULL, null, // boolean data -/*12*/ true, +/*14*/ true, false, TRUE, FALSE, // empty data -/*16*/ "", +/*18*/ "", '', // string data -/*18*/ "string", +/*20*/ "string", 'string', $heredoc, // object data -/*21*/ new classA(), +/*23*/ new classA(), // undefined data -/*22*/ @$undefined_var, +/*24*/ @$undefined_var, // unset data -/*23*/ @$unset_var, +/*25*/ @$unset_var, // resource variable -/*24*/ $fp +/*26*/ $fp ); // loop through each element of $inputs to check the behavior of mb_strpos() @@ -119,28 +121,28 @@ Warning: mb_strpos(): Offset not contained in string in %s on line %d bool(false) -- Iteration 4 -- - -Warning: mb_strpos(): Offset not contained in string in %s on line %d -bool(false) +int(8) -- Iteration 5 -- + +Warning: mb_strpos(): Offset not contained in string in %s on line %d bool(false) -- Iteration 6 -- - -Warning: mb_strpos(): Offset not contained in string in %s on line %d bool(false) -- Iteration 7 -- +int(8) + +-- Iteration 8 -- Warning: mb_strpos(): Offset not contained in string in %s on line %d bool(false) --- Iteration 8 -- -int(8) - -- Iteration 9 -- -int(8) + +Warning: mb_strpos(): Offset not contained in string in %s on line %d +bool(false) -- Iteration 10 -- int(8) @@ -161,42 +163,48 @@ int(8) int(8) -- Iteration 16 -- +int(8) + +-- Iteration 17 -- +int(8) + +-- Iteration 18 -- Warning: mb_strpos() expects parameter 3 to be integer, string given in %s on line %d NULL --- Iteration 17 -- +-- Iteration 19 -- Warning: mb_strpos() expects parameter 3 to be integer, string given in %s on line %d NULL --- Iteration 18 -- +-- Iteration 20 -- Warning: mb_strpos() expects parameter 3 to be integer, string given in %s on line %d NULL --- Iteration 19 -- +-- Iteration 21 -- Warning: mb_strpos() expects parameter 3 to be integer, string given in %s on line %d NULL --- Iteration 20 -- +-- Iteration 22 -- Warning: mb_strpos() expects parameter 3 to be integer, string given in %s on line %d NULL --- Iteration 21 -- +-- Iteration 23 -- Warning: mb_strpos() expects parameter 3 to be integer, object given in %s on line %d NULL --- Iteration 22 -- +-- Iteration 24 -- int(8) --- Iteration 23 -- +-- Iteration 25 -- int(8) --- Iteration 24 -- +-- Iteration 26 -- Warning: mb_strpos() expects parameter 3 to be integer, resource given in %s on line %d NULL diff --git a/ext/mbstring/tests/mb_strpos_variation5.phpt b/ext/mbstring/tests/mb_strpos_variation5.phpt index 7a9604abef..23bfa22b61 100644 --- a/ext/mbstring/tests/mb_strpos_variation5.phpt +++ b/ext/mbstring/tests/mb_strpos_variation5.phpt @@ -33,7 +33,7 @@ $needle_mb = base64_decode('44CC'); * mb_strpos should not be able to accept negative values as $offset. * 60 is larger than *BYTE* count for $string_mb */ -for ($i = -10; $i <= 60; $i += 10) { +for ($i = -30; $i <= 60; $i += 10) { echo "\n**-- Offset is: $i --**\n"; echo "-- ASCII String --\n"; var_dump(mb_strpos($string_ascii, $needle_ascii, $i)); @@ -47,7 +47,7 @@ echo "Done"; --EXPECTF-- *** Testing mb_strpos() : usage variations *** -**-- Offset is: -10 --** +**-- Offset is: -30 --** -- ASCII String -- Warning: mb_strpos(): Offset not contained in string in %s on line %d @@ -57,6 +57,18 @@ bool(false) Warning: mb_strpos(): Offset not contained in string in %s on line %d bool(false) +**-- Offset is: -20 --** +-- ASCII String -- +int(9) +--Multibyte String -- +int(9) + +**-- Offset is: -10 --** +-- ASCII String -- +int(20) +--Multibyte String -- +int(20) + **-- Offset is: 0 --** -- ASCII String -- int(9) |
