summaryrefslogtreecommitdiff
path: root/ext/mbstring/tests
diff options
context:
space:
mode:
Diffstat (limited to 'ext/mbstring/tests')
-rw-r--r--ext/mbstring/tests/bug20087.phpt2
-rw-r--r--ext/mbstring/tests/bug40685.phpt2
-rw-r--r--ext/mbstring/tests/bug43301.phpt4
-rw-r--r--ext/mbstring/tests/bug52931.phpt2
-rw-r--r--ext/mbstring/tests/bug52981.phpt2
-rw-r--r--ext/mbstring/tests/bug62934.phpt2
-rw-r--r--ext/mbstring/tests/bug65544.phpt10
-rw-r--r--ext/mbstring/tests/bug66797.phpt2
-rw-r--r--ext/mbstring/tests/bug66964.phpt13
-rw-r--r--ext/mbstring/tests/bug69151.phpt4
-rw-r--r--ext/mbstring/tests/bug69267.phpt6
-rw-r--r--ext/mbstring/tests/bug71298.phpt10
-rw-r--r--ext/mbstring/tests/bug72164.phpt8
-rw-r--r--ext/mbstring/tests/bug72399.phpt10
-rw-r--r--ext/mbstring/tests/bug72402.phpt4
-rw-r--r--ext/mbstring/tests/bug72691.phpt4
-rw-r--r--ext/mbstring/tests/bug72693.phpt4
-rw-r--r--ext/mbstring/tests/bug72694.phpt4
-rw-r--r--ext/mbstring/tests/bug72710.phpt4
-rw-r--r--ext/mbstring/tests/bug72994.phpt6
-rw-r--r--ext/mbstring/tests/bug73532.phpt6
-rw-r--r--ext/mbstring/tests/bug73646.phpt4
-rw-r--r--ext/mbstring/tests/bug76319.phpt9
-rw-r--r--ext/mbstring/tests/bug76958.phpt14
-rw-r--r--ext/mbstring/tests/bug77025.phpt12
-rw-r--r--ext/mbstring/tests/bug77165.phpt11
-rw-r--r--ext/mbstring/tests/bug77367.phpt16
-rw-r--r--ext/mbstring/tests/bug77428.phpt19
-rw-r--r--ext/mbstring/tests/bug77514.phpt16
-rw-r--r--ext/mbstring/tests/bug78559.phpt15
-rw-r--r--ext/mbstring/tests/casefolding.phpt40
-rw-r--r--ext/mbstring/tests/casemapping.phpt111
-rw-r--r--ext/mbstring/tests/empty_pattern.phpt4
-rw-r--r--ext/mbstring/tests/mb_chr_ord.phpt2
-rw-r--r--ext/mbstring/tests/mb_convert_case_invalid_mode.phpt13
-rw-r--r--ext/mbstring/tests/mb_convert_encoding_array.phpt2
-rw-r--r--ext/mbstring/tests/mb_convert_encoding_basic.phpt2
-rw-r--r--ext/mbstring/tests/mb_encode_mimeheader_basic.phpt2
-rw-r--r--ext/mbstring/tests/mb_encode_mimeheader_basic2.phpt2
-rw-r--r--ext/mbstring/tests/mb_encode_mimeheader_basic3.phpt2
-rw-r--r--ext/mbstring/tests/mb_encode_mimeheader_variation5.phpt14
-rw-r--r--ext/mbstring/tests/mb_encode_mimeheader_variation6.phpt2
-rw-r--r--ext/mbstring/tests/mb_encode_numericentity.phpt2
-rw-r--r--ext/mbstring/tests/mb_encoding_aliases.phpt4
-rw-r--r--ext/mbstring/tests/mb_ereg2.phpt13
-rw-r--r--ext/mbstring/tests/mb_ereg3.phpt8
-rw-r--r--ext/mbstring/tests/mb_ereg4.phpt44
-rw-r--r--ext/mbstring/tests/mb_ereg_dupnames.phpt37
-rw-r--r--ext/mbstring/tests/mb_ereg_match_basic.phpt2
-rw-r--r--ext/mbstring/tests/mb_ereg_named_subpatterns.phpt50
-rw-r--r--ext/mbstring/tests/mb_ereg_replace_callback.phpt10
-rw-r--r--ext/mbstring/tests/mb_ereg_replace_named_subpatterns.phpt36
-rw-r--r--ext/mbstring/tests/mb_ereg_search_named_subpatterns.phpt31
-rw-r--r--ext/mbstring/tests/mb_ereg_search_pos.phpt4
-rw-r--r--ext/mbstring/tests/mb_ereg_search_setpos.phpt4
-rw-r--r--ext/mbstring/tests/mb_ereg_variation1.phpt2
-rw-r--r--ext/mbstring/tests/mb_ereg_variation4.phpt2
-rw-r--r--ext/mbstring/tests/mb_ereg_variation5.phpt2
-rw-r--r--ext/mbstring/tests/mb_eregi_invalid_arguments.phpt20
-rw-r--r--ext/mbstring/tests/mb_internal_encoding_basic2.phpt2
-rw-r--r--ext/mbstring/tests/mb_language.phpt39
-rw-r--r--ext/mbstring/tests/mb_parse_str.phpt2
-rw-r--r--ext/mbstring/tests/mb_parse_str02.phpt2
-rw-r--r--ext/mbstring/tests/mb_preferred_mime_name.phpt20
-rw-r--r--ext/mbstring/tests/mb_split.phpt2
-rw-r--r--ext/mbstring/tests/mb_split_variation3.phpt14
-rw-r--r--ext/mbstring/tests/mb_strcut_negative_length.phpt18
-rw-r--r--ext/mbstring/tests/mb_stripos_basic.phpt2
-rw-r--r--ext/mbstring/tests/mb_stripos_basic2.phpt2
-rw-r--r--ext/mbstring/tests/mb_stripos_variation3.phpt14
-rw-r--r--ext/mbstring/tests/mb_stristr_variation3.phpt14
-rw-r--r--ext/mbstring/tests/mb_strlen_basic.phpt2
-rw-r--r--ext/mbstring/tests/mb_strlen_variation3.phpt2
-rw-r--r--ext/mbstring/tests/mb_strpos_variation3.phpt14
-rw-r--r--ext/mbstring/tests/mb_strrchr_variation3.phpt14
-rw-r--r--ext/mbstring/tests/mb_strrichr_variation3.phpt14
-rw-r--r--ext/mbstring/tests/mb_strripos_basic.phpt2
-rw-r--r--ext/mbstring/tests/mb_strripos_basic2.phpt2
-rw-r--r--ext/mbstring/tests/mb_strripos_variation3_Bug45923.phpt14
-rw-r--r--ext/mbstring/tests/mb_strrpos_basic.phpt2
-rw-r--r--ext/mbstring/tests/mb_strrpos_encoding_3rd_param.phpt11
-rw-r--r--ext/mbstring/tests/mb_strrpos_variation5.phpt2
-rw-r--r--ext/mbstring/tests/mb_strstr_variation3.phpt14
-rw-r--r--ext/mbstring/tests/mb_strtolower_basic.phpt2
-rw-r--r--ext/mbstring/tests/mb_strtolower_variation2.phpt16
-rw-r--r--ext/mbstring/tests/mb_strtolower_variation3.phpt2
-rw-r--r--ext/mbstring/tests/mb_strtolower_variation4.phpt2
-rw-r--r--ext/mbstring/tests/mb_strtoupper_variation2.phpt16
-rw-r--r--ext/mbstring/tests/mb_strtoupper_variation3.phpt2
-rw-r--r--ext/mbstring/tests/mb_strtoupper_variation4.phpt2
-rw-r--r--ext/mbstring/tests/mb_substr_basic.phpt2
-rw-r--r--ext/mbstring/tests/mb_substr_count_basic.phpt2
-rw-r--r--ext/mbstring/tests/mb_substr_count_variation4.phpt2
-rw-r--r--ext/mbstring/tests/mb_substr_variation3.phpt2
-rw-r--r--ext/mbstring/tests/mbregex_stack_limit.phpt24
-rw-r--r--ext/mbstring/tests/mbregex_stack_limit2.phpt25
-rw-r--r--ext/mbstring/tests/php_gr_jp_10830.phpt2
-rw-r--r--ext/mbstring/tests/php_gr_jp_dev_884-1.phpt2
-rw-r--r--ext/mbstring/tests/php_gr_jp_dev_884-2.phpt2
-rw-r--r--ext/mbstring/tests/zend_multibyte-01.phpt1
-rw-r--r--ext/mbstring/tests/zend_multibyte-02.phpt4
-rw-r--r--ext/mbstring/tests/zend_multibyte-03.phpt1
-rw-r--r--ext/mbstring/tests/zend_multibyte-04.phpt1
-rw-r--r--ext/mbstring/tests/zend_multibyte-05.phpt1
-rw-r--r--ext/mbstring/tests/zend_multibyte-06.phpt4
-rw-r--r--ext/mbstring/tests/zend_multibyte-07.phpt2
-rw-r--r--ext/mbstring/tests/zend_multibyte-08.phpt2
-rw-r--r--ext/mbstring/tests/zend_multibyte-09.phpt2
-rw-r--r--ext/mbstring/tests/zend_multibyte-10.phpt4
-rw-r--r--ext/mbstring/tests/zend_multibyte-11.phpt2
-rw-r--r--ext/mbstring/tests/zend_multibyte-12.phpt2
-rw-r--r--ext/mbstring/tests/zend_multibyte-13.phpt1
-rw-r--r--ext/mbstring/tests/zend_multibyte-14.phpt1
-rw-r--r--ext/mbstring/tests/zend_multibyte-15.phpt4
-rw-r--r--ext/mbstring/tests/zend_multibyte-16.phpt4
115 files changed, 801 insertions, 256 deletions
diff --git a/ext/mbstring/tests/bug20087.phpt b/ext/mbstring/tests/bug20087.phpt
index 1585274f65..fc5e589bd2 100644
--- a/ext/mbstring/tests/bug20087.phpt
+++ b/ext/mbstring/tests/bug20087.phpt
@@ -2,8 +2,6 @@
Bug #20087 (Assertion failure)
--SKIPIF--
<?php extension_loaded('mbstring') or die('skip mbstring not available'); ?>
---FAIL--
-register_globals calls killed the ability for mb_parse_str() to register into the global scope
--FILE--
<?php
ini_set('include_path', dirname(__FILE__));
diff --git a/ext/mbstring/tests/bug40685.phpt b/ext/mbstring/tests/bug40685.phpt
index 1a673e5d15..9434158106 100644
--- a/ext/mbstring/tests/bug40685.phpt
+++ b/ext/mbstring/tests/bug40685.phpt
@@ -14,7 +14,7 @@ var_dump(mb_decode_numericentity('&#x3d', $map, 'UTF-8'));
var_dump(mb_decode_numericentity('&#61;', $map, 'UTF-8'));
var_dump(mb_decode_numericentity('&#x3d;', $map, 'UTF-8'));
?>
---EXPECTF--
+--EXPECT--
string(1) "&"
string(3) "&&&"
string(2) "&#"
diff --git a/ext/mbstring/tests/bug43301.phpt b/ext/mbstring/tests/bug43301.phpt
index ced7651f02..6da3dd6bbe 100644
--- a/ext/mbstring/tests/bug43301.phpt
+++ b/ext/mbstring/tests/bug43301.phpt
@@ -2,8 +2,8 @@
Bug #43301 (mb_ereg*_replace() crashes when replacement string is invalid PHP expression and 'e' option is used)
--SKIPIF--
<?php
-if (!extension_loaded('mbstring')) die('skip mbstring extension not available');
-if (!function_exists('mb_ereg_replace')) die('skip mb_ereg_replace() not available');
+extension_loaded('mbstring') or die('skip mbstring not available');
+if (!function_exists('mb_ereg')) die('skip mbregex support not available');
?>
--FILE--
<?php
diff --git a/ext/mbstring/tests/bug52931.phpt b/ext/mbstring/tests/bug52931.phpt
index 72debf7d05..ab8c8df723 100644
--- a/ext/mbstring/tests/bug52931.phpt
+++ b/ext/mbstring/tests/bug52931.phpt
@@ -17,7 +17,7 @@ var_dump(strripos($string, '</body>'));
var_dump(mb_strripos($string, '</body>'));
?>
---EXPECTF--
+--EXPECT--
Deprecated: The mbstring.func_overload directive is deprecated in Unknown on line 0
int(27)
int(27)
diff --git a/ext/mbstring/tests/bug52981.phpt b/ext/mbstring/tests/bug52981.phpt
index 7dce14a7ad..f6be08bf33 100644
--- a/ext/mbstring/tests/bug52981.phpt
+++ b/ext/mbstring/tests/bug52981.phpt
@@ -17,7 +17,7 @@ test("\xF0\x90\x90\xB8");// U+10438 DESERET SMALL LETTER H (added in 3.1.0, Marc
// not OK
test("\xE2\xB0\xB0"); // U+2C30 GLAGOLITIC SMALL LETTER AZU (added in 4.1.0, March 2005)
test("\xD4\xA5"); // U+0525 CYRILLIC SMALL LETTER PE WITH DESCENDER (added in 5.2.0, October 2009)
---EXPECTF--
+--EXPECT--
f0 90 90 90
e2 b0 80
d4 a4
diff --git a/ext/mbstring/tests/bug62934.phpt b/ext/mbstring/tests/bug62934.phpt
index f3521a97c6..8e85ae7e22 100644
--- a/ext/mbstring/tests/bug62934.phpt
+++ b/ext/mbstring/tests/bug62934.phpt
@@ -1,5 +1,7 @@
--TEST--
Bug #62934: mb_convert_kana() does not convert iteration marks
+--SKIPIF--
+<?php require 'skipif.inc'; ?>
--FILE--
<?php
echo mb_convert_kana('あゝすゞめアヽスヾメ', 'C', 'UTF-8') . "\n";
diff --git a/ext/mbstring/tests/bug65544.phpt b/ext/mbstring/tests/bug65544.phpt
new file mode 100644
index 0000000000..0a8b5a7cda
--- /dev/null
+++ b/ext/mbstring/tests/bug65544.phpt
@@ -0,0 +1,10 @@
+--TEST--
+Bug #65544: mb title case conversion-first word in quotation isn't capitalized
+--SKIPIF--
+<?php require 'skipif.inc'; ?>
+--FILE--
+<?php
+var_dump(mb_convert_case("\"or else it doesn't, you know. the name of the song is called 'haddocks' eyes.'\"", MB_CASE_TITLE));
+?>
+--EXPECT--
+string(80) ""Or Else It Doesn't, You Know. The Name Of The Song Is Called 'Haddocks' Eyes.'""
diff --git a/ext/mbstring/tests/bug66797.phpt b/ext/mbstring/tests/bug66797.phpt
index df9e789be6..3709dc2bb2 100644
--- a/ext/mbstring/tests/bug66797.phpt
+++ b/ext/mbstring/tests/bug66797.phpt
@@ -15,7 +15,7 @@ var_dump(
);
?>
==DONE==
---EXPECTF--
+--EXPECT--
string(3) "bar"
string(3) "bar"
string(0) ""
diff --git a/ext/mbstring/tests/bug66964.phpt b/ext/mbstring/tests/bug66964.phpt
index b4e87a6ae1..c33bb67c49 100644
--- a/ext/mbstring/tests/bug66964.phpt
+++ b/ext/mbstring/tests/bug66964.phpt
@@ -49,5 +49,16 @@ array(5) {
[3]=>
string(21) "日本語テキスト"
[4]=>
- *RECURSION*
+ &array(5) {
+ [0]=>
+ string(21) "日本語テキスト"
+ [1]=>
+ string(21) "日本語テキスト"
+ [2]=>
+ string(21) "日本語テキスト"
+ [3]=>
+ string(21) "日本語テキスト"
+ [4]=>
+ *RECURSION*
+ }
}
diff --git a/ext/mbstring/tests/bug69151.phpt b/ext/mbstring/tests/bug69151.phpt
index 3efc62df1e..a839e8aa74 100644
--- a/ext/mbstring/tests/bug69151.phpt
+++ b/ext/mbstring/tests/bug69151.phpt
@@ -2,8 +2,8 @@
Bug #69151 (mb_ereg should reject ill-formed byte sequence)
--SKIPIF--
<?php
-if (!extension_loaded('mbstring')) die('skip mbstring extension not available');
-if (!function_exists('mb_ereg')) die('skip mb_ereg() not available');
+extension_loaded('mbstring') or die('skip mbstring not available');
+if (!function_exists('mb_ereg')) die('skip mbregex support not available');
?>
--FILE--
<?php
diff --git a/ext/mbstring/tests/bug69267.phpt b/ext/mbstring/tests/bug69267.phpt
index 958f1c548b..1f29d319aa 100644
--- a/ext/mbstring/tests/bug69267.phpt
+++ b/ext/mbstring/tests/bug69267.phpt
@@ -1,5 +1,7 @@
--TEST--
Bug #69267: mb_strtolower fails on titlecase characters
+--SKIPIF--
+<?php require 'skipif.inc'; ?>
--FILE--
<?php
@@ -38,7 +40,7 @@ string(8) "Džljnjdz"
string(8) "Džljnjdz"
string(3) "ᾳ"
string(3) "ᾳ"
-string(3) "ᾼ"
-string(3) "ᾼ"
+string(4) "ΑΙ"
+string(4) "ΑΙ"
string(3) "ᾼ"
string(3) "ᾼ"
diff --git a/ext/mbstring/tests/bug71298.phpt b/ext/mbstring/tests/bug71298.phpt
new file mode 100644
index 0000000000..7defc469db
--- /dev/null
+++ b/ext/mbstring/tests/bug71298.phpt
@@ -0,0 +1,10 @@
+--TEST--
+Bug #71298: MB_CASE_TITLE misbehaves with curled apostrophe/quote (HTML &rsquo;)
+--SKIPIF--
+<?php require 'skipif.inc'; ?>
+--FILE--
+<?php
+echo mb_convert_case("People's issues versus people’s issues", MB_CASE_TITLE);
+?>
+--EXPECT--
+People's Issues Versus People’s Issues
diff --git a/ext/mbstring/tests/bug72164.phpt b/ext/mbstring/tests/bug72164.phpt
index 17d4026848..018754e335 100644
--- a/ext/mbstring/tests/bug72164.phpt
+++ b/ext/mbstring/tests/bug72164.phpt
@@ -2,17 +2,17 @@
Bug #72164 (Null Pointer Dereference - mb_ereg_replace)
--SKIPIF--
<?php
-if (!extension_loaded('mbstring')) die('skip mbstring extension not available');
-if (!function_exists('mb_ereg_replace')) die('skip mb_ereg_replace() not available');
+extension_loaded('mbstring') or die('skip mbstring not available');
+if (!function_exists('mb_ereg')) die('skip mbregex support not available');
?>
--FILE--
<?php
$var0 = "e";
$var2 = "";
$var3 = NULL;
-$var8 = mbereg_replace($var2,$var3,$var3,$var0);
+$var8 = mb_ereg_replace($var2,$var3,$var3,$var0);
var_dump($var8);
?>
--EXPECTF--
-Deprecated: mbereg_replace(): The 'e' option is deprecated, use mb_ereg_replace_callback instead in %s%ebug72164.php on line %d
+Deprecated: mb_ereg_replace(): The 'e' option is deprecated, use mb_ereg_replace_callback instead in %s%ebug72164.php on line %d
string(0) ""
diff --git a/ext/mbstring/tests/bug72399.phpt b/ext/mbstring/tests/bug72399.phpt
index bf18025f1c..b50ca73698 100644
--- a/ext/mbstring/tests/bug72399.phpt
+++ b/ext/mbstring/tests/bug72399.phpt
@@ -2,14 +2,14 @@
Bug #72399 (Use-After-Free in MBString (search_re))
--SKIPIF--
<?php
-if (!extension_loaded('mbstring')) die('skip mbstring extension not available');
-if (!function_exists('mb_ereg_replace')) die('skip mb_ereg_replace() not available');
+require 'skipif.inc';
+if (!function_exists('mb_ereg')) die('skip mbregex support not available');
?>
--FILE--
<?php
-$var5 = mbereg_search_init("","2");
+$var5 = mb_ereg_search_init("","2");
$var6 = mb_eregi_replace("2","","");
-$var13 = mbereg_search_pos();
+$var13 = mb_ereg_search_pos();
?>
--EXPECTF--
-Warning: mbereg_search_pos(): No regex given in %sbug72399.php on line %d
+Warning: mb_ereg_search_pos(): No regex given in %sbug72399.php on line %d
diff --git a/ext/mbstring/tests/bug72402.phpt b/ext/mbstring/tests/bug72402.phpt
index a88da51be7..b3fd8464b8 100644
--- a/ext/mbstring/tests/bug72402.phpt
+++ b/ext/mbstring/tests/bug72402.phpt
@@ -2,8 +2,8 @@
Bug #72402: _php_mb_regex_ereg_replace_exec - double free
--SKIPIF--
<?php
-if (!extension_loaded('mbstring')) die('skip mbstring extension not available');
-if (!function_exists('mb_ereg_replace_callback')) die('skip mb_ereg_replace_callback() not available');
+extension_loaded('mbstring') or die('skip mbstring not available');
+if (!function_exists('mb_ereg')) die('skip mbregex support not available');
?>
--FILE--
<?php
diff --git a/ext/mbstring/tests/bug72691.phpt b/ext/mbstring/tests/bug72691.phpt
index 64fc131bc6..7e02342c25 100644
--- a/ext/mbstring/tests/bug72691.phpt
+++ b/ext/mbstring/tests/bug72691.phpt
@@ -2,8 +2,8 @@
Bug #72691 (mb_ereg_search raises a warning if a match zero-width)
--SKIPIF--
<?php
-if (!extension_loaded('mbstring')) die('skip mbstring extension not available');
-if (!function_exists('mb_ereg_search_init')) die('skip mb_ereg_search_init() not available');
+if (!extension_loaded('mbstring')) die('skip ext/mbstring required');
+if (!function_exists('mb_ereg')) die('skip mbregex support not available');
?>
--FILE--
<?php
diff --git a/ext/mbstring/tests/bug72693.phpt b/ext/mbstring/tests/bug72693.phpt
index 2df2c59d04..c9fcdcc0e2 100644
--- a/ext/mbstring/tests/bug72693.phpt
+++ b/ext/mbstring/tests/bug72693.phpt
@@ -2,8 +2,8 @@
Bug #72693 (mb_ereg_search increments search position when a match zero-width)
--SKIPIF--
<?php
-if (!extension_loaded('mbstring')) die('skip mbstring extension not available');
-if (!function_exists('mb_ereg_search_init')) die('skip mb_ereg_search_init() not available');
+if (!extension_loaded('mbstring')) die('skip ext/mbstring required');
+if (!function_exists('mb_ereg')) die('skip mbregex support not available');
?>
--FILE--
<?php
diff --git a/ext/mbstring/tests/bug72694.phpt b/ext/mbstring/tests/bug72694.phpt
index 3d4edbedc1..2945b58538 100644
--- a/ext/mbstring/tests/bug72694.phpt
+++ b/ext/mbstring/tests/bug72694.phpt
@@ -2,8 +2,8 @@
Bug #72694 (mb_ereg_search_setpos does not accept a string's last position)
--SKIPIF--
<?php
-if (!extension_loaded('mbstring')) die('skip mbstring extension not available');
-if (!function_exists('mb_ereg_search_init')) die('skip mb_ereg_search_init() not available');
+if (!extension_loaded('mbstring')) die('skip ext/mbstring required');
+if (!function_exists('mb_ereg')) die('skip mbregex support not available');
?>
--FILE--
<?php
diff --git a/ext/mbstring/tests/bug72710.phpt b/ext/mbstring/tests/bug72710.phpt
index 811cb7fafe..e666b0dbd6 100644
--- a/ext/mbstring/tests/bug72710.phpt
+++ b/ext/mbstring/tests/bug72710.phpt
@@ -2,8 +2,8 @@
Bug #72710 (`mb_ereg` causes buffer overflow on regexp compile error)
--SKIPIF--
<?php
-if (!extension_loaded('mbstring')) die('skip mbstring extension not available');
-if (!function_exists('mb_ereg')) die('skip mb_ereg() not available');
+if (!extension_loaded('mbstring')) die('skip ext/mbstring required');
+if (!function_exists('mb_ereg')) die('skip mbregex support not available');
?>
--FILE--
<?php
diff --git a/ext/mbstring/tests/bug72994.phpt b/ext/mbstring/tests/bug72994.phpt
index d001fac679..14f590bdb7 100644
--- a/ext/mbstring/tests/bug72994.phpt
+++ b/ext/mbstring/tests/bug72994.phpt
@@ -3,17 +3,17 @@ Bug #72994 (mbc_to_code() out of bounds read)
--SKIPIF--
<?php
if (!extension_loaded('mbstring')) die('skip mbstring extension not available');
-if (!function_exists('mbereg_replace')) die('skip mbereg_replace() not available');
+if (!function_exists('mb_ereg_replace')) die('skip mb_ereg_replace() not available');
?>
--FILE--
<?php
-$var1 = mbereg_replace($var-232338951,NULL,NULL,NULL);
+$var1 = mb_ereg_replace($var-232338951,NULL,NULL,NULL);
var_dump($var1);
?>
===DONE===
--EXPECTF--
Notice: Undefined variable: var in %s on line %d
-Warning: mbereg_replace(): Pattern is not valid under UTF-8 encoding in %s on line %d
+Warning: mb_ereg_replace(): Pattern is not valid under UTF-8 encoding in %sbug72994.php on line %d
bool(false)
===DONE===
diff --git a/ext/mbstring/tests/bug73532.phpt b/ext/mbstring/tests/bug73532.phpt
index 63a73f1fc9..7195fc0a68 100644
--- a/ext/mbstring/tests/bug73532.phpt
+++ b/ext/mbstring/tests/bug73532.phpt
@@ -2,12 +2,12 @@
Bug #73532 (Null pointer dereference in mb_eregi)
--SKIPIF--
<?php
-if (!extension_loaded('mbstring')) die('skip mbstring extension not available');
-if (!function_exists('mb_eregi')) die('skip mb_eregi() not available');
+require 'skipif.inc';
+if (!function_exists('mb_ereg')) die('skip mbregex support not available');
?>
--FILE--
<?php
var_dump(mb_eregi("a", "\xf5"));
?>
---EXPECTF--
+--EXPECT--
bool(false)
diff --git a/ext/mbstring/tests/bug73646.phpt b/ext/mbstring/tests/bug73646.phpt
index bac8fd8ae1..7ac824d69c 100644
--- a/ext/mbstring/tests/bug73646.phpt
+++ b/ext/mbstring/tests/bug73646.phpt
@@ -2,8 +2,8 @@
Bug #73646 (mb_ereg_search_init null pointer dereference)
--SKIPIF--
<?php
-if (!extension_loaded('mbstring')) die('skip mbstring extension not available');
-if (!function_exists('mb_ereg_search_init')) die('skip mb_ereg_search_init() not available');
+require 'skipif.inc';
+if (!function_exists('mb_ereg')) die('skip mbregex support not available');
?>
--FILE--
<?php
diff --git a/ext/mbstring/tests/bug76319.phpt b/ext/mbstring/tests/bug76319.phpt
new file mode 100644
index 0000000000..8b706020e8
--- /dev/null
+++ b/ext/mbstring/tests/bug76319.phpt
@@ -0,0 +1,9 @@
+--TEST--
+Bug #76319: mb_strtolower with invalid UTF-8 causes segmentation fault
+--FILE--
+<?php
+mb_substitute_character(0xFFFD);
+var_dump(mb_strtolower("a\xA1", 'UTF-8'));
+?>
+--EXPECT--
+string(4) "a�"
diff --git a/ext/mbstring/tests/bug76958.phpt b/ext/mbstring/tests/bug76958.phpt
new file mode 100644
index 0000000000..a7d6112936
--- /dev/null
+++ b/ext/mbstring/tests/bug76958.phpt
@@ -0,0 +1,14 @@
+--TEST--
+Bug #76958: Broken UTF7-IMAP conversion
+--FILE--
+<?php
+
+$str = '&BCAEMARBBEEESwQ7BDoEOA-';
+echo mb_convert_encoding($str, 'UTF-8', 'UTF7-IMAP') . "\n";
+$str = 'Рассылки';
+echo mb_convert_encoding($str, 'UTF7-IMAP', 'UTF-8') . "\n";
+
+?>
+--EXPECT--
+Рассылки
+&BCAEMARBBEEESwQ7BDoEOA-
diff --git a/ext/mbstring/tests/bug77025.phpt b/ext/mbstring/tests/bug77025.phpt
new file mode 100644
index 0000000000..46416c1df1
--- /dev/null
+++ b/ext/mbstring/tests/bug77025.phpt
@@ -0,0 +1,12 @@
+--TEST--
+Bug #77025: mb_strpos throws Unknown encoding or conversion error
+--FILE--
+<?php
+
+var_dump(mb_strpos('Hello', 'e', 0, '8bit'));
+var_dump(mb_stripos('Hello', 'e', 0, '8bit'));
+
+?>
+--EXPECT--
+int(1)
+int(1)
diff --git a/ext/mbstring/tests/bug77165.phpt b/ext/mbstring/tests/bug77165.phpt
new file mode 100644
index 0000000000..69708f613a
--- /dev/null
+++ b/ext/mbstring/tests/bug77165.phpt
@@ -0,0 +1,11 @@
+--TEST--
+Bug #77165: mb_check_encoding crashes when argument given an empty array
+--FILE--
+<?php
+var_dump(mb_check_encoding(array()));
+var_dump(mb_convert_encoding(array(), 'UTF-8'));
+?>
+--EXPECT--
+bool(true)
+array(0) {
+}
diff --git a/ext/mbstring/tests/bug77367.phpt b/ext/mbstring/tests/bug77367.phpt
new file mode 100644
index 0000000000..6e00aa7a60
--- /dev/null
+++ b/ext/mbstring/tests/bug77367.phpt
@@ -0,0 +1,16 @@
+--TEST--
+Bug #77367 (Negative size parameter in mb_split)
+--SKIPIF--
+<?php
+if (!extension_loaded('mbstring')) die('skip mbstring extension not available');
+if (!function_exists('mb_split')) die('skip mb_split() not available');
+?>
+--FILE--
+<?php
+mb_regex_encoding('UTF-8');
+var_dump(mb_split("\\w", "\xfc"));
+?>
+===DONE===
+--EXPECT--
+bool(false)
+===DONE===
diff --git a/ext/mbstring/tests/bug77428.phpt b/ext/mbstring/tests/bug77428.phpt
new file mode 100644
index 0000000000..d387f34b77
--- /dev/null
+++ b/ext/mbstring/tests/bug77428.phpt
@@ -0,0 +1,19 @@
+--TEST--
+Bug #77428: mb_ereg_replace() doesn't replace a substitution variable
+--SKIPIF--
+<?php
+if (!extension_loaded('mbstring')) die('skip mbstring extension not available');
+if (!function_exists('mb_ereg_replace')) die('skip mb_ereg_replace() not available');
+?>
+--FILE--
+<?php
+
+// This behavior is broken, but kept for BC reasons
+var_dump(mb_ereg_replace('(%)', '\\\1', 'a%c'));
+// For clarify, the above line is equivalent to:
+var_dump(mb_ereg_replace('(%)', '\\\\1', 'a%c'));
+
+?>
+--EXPECT--
+string(4) "a\%c"
+string(4) "a\%c"
diff --git a/ext/mbstring/tests/bug77514.phpt b/ext/mbstring/tests/bug77514.phpt
new file mode 100644
index 0000000000..565a8fd773
--- /dev/null
+++ b/ext/mbstring/tests/bug77514.phpt
@@ -0,0 +1,16 @@
+--TEST--
+Bug #77514: mb_ereg_replace() with trailing backslash adds null byte
+--SKIPIF--
+<?php
+if (!extension_loaded('mbstring')) die('skip mbstring extension not available');
+if (!function_exists('mb_ereg_replace')) die('skip mb_ereg_replace() not available');
+?>
+--FILE--
+<?php
+
+$a="abc123";
+var_dump(mb_ereg_replace("123","def\\",$a));
+
+?>
+--EXPECT--
+string(7) "abcdef\"
diff --git a/ext/mbstring/tests/bug78559.phpt b/ext/mbstring/tests/bug78559.phpt
new file mode 100644
index 0000000000..afe412c141
--- /dev/null
+++ b/ext/mbstring/tests/bug78559.phpt
@@ -0,0 +1,15 @@
+--TEST--
+Bug #78559 (#78559 Heap buffer overflow in mb_eregi)
+--SKIPIF--
+<?php
+if (!extension_loaded('mbstring')) die('skip mbstring extension not available');
+if (!function_exists('mb_ereg')) die('skip mb_ereg() not available');
+?>
+--FILE--
+<?php
+$str = "5b5b5b5b5b5b5b492a5bce946b5c4b5d5c6b5c4b5d5c4b5d1cceb04b5d1cceb07a73717e4b1c52525252525252525252525252525252525252525252525252492a5bce946b5c4b5d5c6b5c4b5d5c4b5d1cceb04b5d1cceb07a73717e4b1c1cceb04b5d1cceb07a73717e4b1c302c36303030ceb07b7bd2a15c305c30663f436f6e74655c5238416711087b363030302c36303030ceb07b7b7b7b7b7b7b363030302c36303030ceb07b7b7b7b7b7b7b4a01";
+$str = hex2bin($str);
+var_dump(mb_eregi($str, $str));
+?>
+--EXPECT--
+bool(false)
diff --git a/ext/mbstring/tests/casefolding.phpt b/ext/mbstring/tests/casefolding.phpt
new file mode 100644
index 0000000000..1a68e84040
--- /dev/null
+++ b/ext/mbstring/tests/casefolding.phpt
@@ -0,0 +1,40 @@
+--TEST--
+Case-insensitive string comparisons use case folding
+--SKIPIF--
+<?php require 'skipif.inc'; ?>
+--FILE--
+<?php
+
+$tests = [
+ ["K", "K"],
+ ["k", "K"],
+ ["Å", "Å"],
+ ["å", "Å"],
+ ["ß", "ẞ"],
+ ["Θ", "ϴ"],
+ ["θ", "ϴ"],
+ ["ϑ", "ϴ"],
+ ["Ω", "Ω"],
+ ["ω", "Ω"],
+ ["I", "ı"],
+ ["i", "ı"],
+];
+
+foreach ($tests as list($a, $b)) {
+ var_dump(mb_stripos($a, $b));
+}
+
+?>
+--EXPECT--
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+int(0)
+bool(false)
+bool(false)
diff --git a/ext/mbstring/tests/casemapping.phpt b/ext/mbstring/tests/casemapping.phpt
new file mode 100644
index 0000000000..3e2838392b
--- /dev/null
+++ b/ext/mbstring/tests/casemapping.phpt
@@ -0,0 +1,111 @@
+--TEST--
+Unicode case mapping
+--SKIPIF--
+<?php require 'skipif.inc'; ?>
+--FILE--
+<?php
+
+function toCases($str) {
+ echo "String: $str\n";
+ echo "Lower: ", mb_convert_case($str, MB_CASE_LOWER), "\n";
+ echo "Lower Simple: ", mb_convert_case($str, MB_CASE_LOWER_SIMPLE), "\n";
+ echo "Upper: ", mb_convert_case($str, MB_CASE_UPPER), "\n";
+ echo "Upper Simple: ", mb_convert_case($str, MB_CASE_UPPER_SIMPLE), "\n";
+ echo "Title: ", mb_convert_case($str, MB_CASE_TITLE), "\n";
+ echo "Title Simple: ", mb_convert_case($str, MB_CASE_TITLE_SIMPLE), "\n";
+ echo "Fold: ", mb_convert_case($str, MB_CASE_FOLD), "\n";
+ echo "Fold Simple: ", mb_convert_case($str, MB_CASE_FOLD_SIMPLE), "\n";
+ echo "\n";
+}
+
+toCases("ß");
+toCases("ff");
+toCases("İ");
+
+// Make sure that case-conversion in Turkish still works correctly.
+// Using the language-agnostic Unicode case mappins would result in
+// characters that are illegal under ISO-8859-9.
+mb_internal_encoding('ISO-8859-9');
+
+// Capital I with dot (U+0130)
+$str = "\xdd";
+echo bin2hex(mb_convert_case($str, MB_CASE_LOWER)), "\n";
+echo bin2hex(mb_convert_case($str, MB_CASE_LOWER_SIMPLE)), "\n";
+echo bin2hex(mb_convert_case($str, MB_CASE_FOLD)), "\n";
+echo bin2hex(mb_convert_case($str, MB_CASE_FOLD_SIMPLE)), "\n";
+echo "\n";
+
+// Lower i without dot (U+0131)
+$str = "\xfd";
+echo bin2hex(mb_convert_case($str, MB_CASE_UPPER)), "\n";
+echo bin2hex(mb_convert_case($str, MB_CASE_UPPER_SIMPLE)), "\n";
+echo bin2hex(mb_convert_case($str, MB_CASE_FOLD)), "\n";
+echo bin2hex(mb_convert_case($str, MB_CASE_FOLD_SIMPLE)), "\n";
+echo "\n";
+
+// Capital I without dot (U+0049)
+$str = "\x49";
+echo bin2hex(mb_convert_case($str, MB_CASE_LOWER)), "\n";
+echo bin2hex(mb_convert_case($str, MB_CASE_LOWER_SIMPLE)), "\n";
+echo bin2hex(mb_convert_case($str, MB_CASE_FOLD)), "\n";
+echo bin2hex(mb_convert_case($str, MB_CASE_FOLD_SIMPLE)), "\n";
+echo "\n";
+
+// Lower i with dot (U+0069)
+$str = "\x69";
+echo bin2hex(mb_convert_case($str, MB_CASE_UPPER)), "\n";
+echo bin2hex(mb_convert_case($str, MB_CASE_UPPER_SIMPLE)), "\n";
+echo bin2hex(mb_convert_case($str, MB_CASE_FOLD)), "\n";
+echo bin2hex(mb_convert_case($str, MB_CASE_FOLD_SIMPLE)), "\n";
+
+?>
+--EXPECT--
+String: ß
+Lower: ß
+Lower Simple: ß
+Upper: SS
+Upper Simple: ß
+Title: Ss
+Title Simple: ß
+Fold: ss
+Fold Simple: ß
+
+String: ff
+Lower: ff
+Lower Simple: ff
+Upper: FF
+Upper Simple: ff
+Title: Ff
+Title Simple: ff
+Fold: ff
+Fold Simple: ff
+
+String: İ
+Lower: i̇
+Lower Simple: i
+Upper: İ
+Upper Simple: İ
+Title: İ
+Title Simple: İ
+Fold: i̇
+Fold Simple: İ
+
+69
+69
+69
+69
+
+49
+49
+fd
+fd
+
+fd
+fd
+fd
+fd
+
+dd
+dd
+69
+69
diff --git a/ext/mbstring/tests/empty_pattern.phpt b/ext/mbstring/tests/empty_pattern.phpt
index c56adfdfff..019ccba02c 100644
--- a/ext/mbstring/tests/empty_pattern.phpt
+++ b/ext/mbstring/tests/empty_pattern.phpt
@@ -2,8 +2,8 @@
Check for empty pattern
--SKIPIF--
<?php
-if (!extension_loaded('mbstring')) die('skip mbstring extension not available');
-if (!function_exists('mb_ereg_search_init')) die('skip mb_ereg_search_init() not available');
+extension_loaded('mbstring') or die('skip mbstring not available');
+if (!function_exists('mb_ereg')) die('skip mbregex support not available');
?>
--FILE--
<?php
diff --git a/ext/mbstring/tests/mb_chr_ord.phpt b/ext/mbstring/tests/mb_chr_ord.phpt
index cf2e74cb34..72a4220e8b 100644
--- a/ext/mbstring/tests/mb_chr_ord.phpt
+++ b/ext/mbstring/tests/mb_chr_ord.phpt
@@ -16,7 +16,7 @@ for($ch = 1; $ch < 80000; $ch++) {
}
}
echo 'OK';
---EXPECTF--
+--EXPECT--
ERROR(55296)
ERROR(55297)
ERROR(55298)
diff --git a/ext/mbstring/tests/mb_convert_case_invalid_mode.phpt b/ext/mbstring/tests/mb_convert_case_invalid_mode.phpt
new file mode 100644
index 0000000000..540463143a
--- /dev/null
+++ b/ext/mbstring/tests/mb_convert_case_invalid_mode.phpt
@@ -0,0 +1,13 @@
+--TEST--
+Calling mb_convert_case() with an invalid casing mode
+--SKIPIF--
+<?php require 'skipif.inc'; ?>
+--FILE--
+<?php
+
+var_dump(mb_convert_case("foobar", 100));
+
+?>
+--EXPECTF--
+Warning: mb_convert_case(): Invalid case mode in %s on line %d
+bool(false)
diff --git a/ext/mbstring/tests/mb_convert_encoding_array.phpt b/ext/mbstring/tests/mb_convert_encoding_array.phpt
index d689e24ecf..bd413c4686 100644
--- a/ext/mbstring/tests/mb_convert_encoding_array.phpt
+++ b/ext/mbstring/tests/mb_convert_encoding_array.phpt
@@ -70,7 +70,7 @@ var_dump(base64_encode_array(mb_convert_encoding($euc_jp_string, 'UTF-8', 'EUC-J
echo "Done";
?>
---EXPECTF--
+--EXPECT--
*** Testing mb_convert_encoding() : array functionality ***
-- Convert to JIS --
diff --git a/ext/mbstring/tests/mb_convert_encoding_basic.phpt b/ext/mbstring/tests/mb_convert_encoding_basic.phpt
index cf641e6431..3168126000 100644
--- a/ext/mbstring/tests/mb_convert_encoding_basic.phpt
+++ b/ext/mbstring/tests/mb_convert_encoding_basic.phpt
@@ -58,7 +58,7 @@ var_dump(base64_encode(mb_convert_encoding($euc_jp_string, 'UTF-8', 'EUC-JP')));
echo "Done";
?>
---EXPECTF--
+--EXPECT--
*** Testing mb_convert_encoding() : basic functionality ***
-- Convert to JIS --
diff --git a/ext/mbstring/tests/mb_encode_mimeheader_basic.phpt b/ext/mbstring/tests/mb_encode_mimeheader_basic.phpt
index 43b737ec66..1352088ccd 100644
--- a/ext/mbstring/tests/mb_encode_mimeheader_basic.phpt
+++ b/ext/mbstring/tests/mb_encode_mimeheader_basic.phpt
@@ -45,7 +45,7 @@ foreach ($nonEnglish as $lang => $input) {
echo "Done";
?>
---EXPECTF--
+--EXPECT--
*** Testing mb_encode_mimeheader() : basic ***
Language: English
diff --git a/ext/mbstring/tests/mb_encode_mimeheader_basic2.phpt b/ext/mbstring/tests/mb_encode_mimeheader_basic2.phpt
index 8c61171179..151d4a610f 100644
--- a/ext/mbstring/tests/mb_encode_mimeheader_basic2.phpt
+++ b/ext/mbstring/tests/mb_encode_mimeheader_basic2.phpt
@@ -40,7 +40,7 @@ foreach ($inputs as $lang => $input) {
echo "Done";
?>
---EXPECTF--
+--EXPECT--
*** Testing mb_encode_mimeheader() : basic2 ***
Language: SJIS
diff --git a/ext/mbstring/tests/mb_encode_mimeheader_basic3.phpt b/ext/mbstring/tests/mb_encode_mimeheader_basic3.phpt
index 4a297df5eb..d56a996892 100644
--- a/ext/mbstring/tests/mb_encode_mimeheader_basic3.phpt
+++ b/ext/mbstring/tests/mb_encode_mimeheader_basic3.phpt
@@ -40,7 +40,7 @@ foreach ($inputs as $lang => $input) {
echo "Done";
?>
---EXPECTF--
+--EXPECT--
*** Testing mb_encode_mimeheader() : basic2 ***
Language: SJIS
diff --git a/ext/mbstring/tests/mb_encode_mimeheader_variation5.phpt b/ext/mbstring/tests/mb_encode_mimeheader_variation5.phpt
index e0de4e63c6..9dec3c11c5 100644
--- a/ext/mbstring/tests/mb_encode_mimeheader_variation5.phpt
+++ b/ext/mbstring/tests/mb_encode_mimeheader_variation5.phpt
@@ -173,32 +173,32 @@ string(115) "=?UTF-8?B?zpHPhc+Ez4wgzrXOr869zrHOuSDOtc67zrvOt869zrnOus+MIM66zrXOr
-- Iteration 16 --
-Warning: mb_encode_mimeheader() expects parameter 5 to be integer, string given in %s on line %d
+Warning: mb_encode_mimeheader() expects parameter 5 to be int, string given in %s on line %d
NULL
-- Iteration 17 --
-Warning: mb_encode_mimeheader() expects parameter 5 to be integer, string given in %s on line %d
+Warning: mb_encode_mimeheader() expects parameter 5 to be int, string given in %s on line %d
NULL
-- Iteration 18 --
-Warning: mb_encode_mimeheader() expects parameter 5 to be integer, string given in %s on line %d
+Warning: mb_encode_mimeheader() expects parameter 5 to be int, string given in %s on line %d
NULL
-- Iteration 19 --
-Warning: mb_encode_mimeheader() expects parameter 5 to be integer, string given in %s on line %d
+Warning: mb_encode_mimeheader() expects parameter 5 to be int, string given in %s on line %d
NULL
-- Iteration 20 --
-Warning: mb_encode_mimeheader() expects parameter 5 to be integer, string given in %s on line %d
+Warning: mb_encode_mimeheader() expects parameter 5 to be int, string given in %s on line %d
NULL
-- Iteration 21 --
-Warning: mb_encode_mimeheader() expects parameter 5 to be integer, object given in %s on line %d
+Warning: mb_encode_mimeheader() expects parameter 5 to be int, object given in %s on line %d
NULL
-- Iteration 22 --
@@ -211,6 +211,6 @@ string(115) "=?UTF-8?B?zpHPhc+Ez4wgzrXOr869zrHOuSDOtc67zrvOt869zrnOus+MIM66zrXOr
-- Iteration 24 --
-Warning: mb_encode_mimeheader() expects parameter 5 to be integer, resource given in %s on line %d
+Warning: mb_encode_mimeheader() expects parameter 5 to be int, resource given in %s on line %d
NULL
Done
diff --git a/ext/mbstring/tests/mb_encode_mimeheader_variation6.phpt b/ext/mbstring/tests/mb_encode_mimeheader_variation6.phpt
index b02f510f64..edf602d550 100644
--- a/ext/mbstring/tests/mb_encode_mimeheader_variation6.phpt
+++ b/ext/mbstring/tests/mb_encode_mimeheader_variation6.phpt
@@ -36,7 +36,7 @@ foreach ($linefeeds as $linefeed) {
echo "Done";
?>
---EXPECTF--
+--EXPECT--
*** Testing mb_encode_mimeheader() : usage variations ***
-- Iteration 1 --
diff --git a/ext/mbstring/tests/mb_encode_numericentity.phpt b/ext/mbstring/tests/mb_encode_numericentity.phpt
index dffb419662..51ad6c22a1 100644
--- a/ext/mbstring/tests/mb_encode_numericentity.phpt
+++ b/ext/mbstring/tests/mb_encode_numericentity.phpt
@@ -16,7 +16,7 @@ echo mb_encode_numericentity($str2, $convmap, "UTF-8")."\n";
$convmap = array(0xFF, 0x2FFFF, 0, 0xFFFF);
echo mb_encode_numericentity('aŒbœcŠdše€fg', $convmap, "UTF-8")."\n";
?>
---EXPECTF--
+--EXPECT--
&#161;&#162;&#163;&#164;&#165;&#166;&#167;&#168;&#169;&#170;&#171;&#172;&#173;&#174;&#175;&#176;&#177;&#178;&#179;&#180;&#181;&#182;&#183;&#184;&#185;&#186;&#187;&#188;&#189;&#190;&#191;&#192;&#193;&#194;&#195;&#196;&#197;&#198;&#199;&#200;&#201;&#202;&#203;&#204;&#205;&#206;&#207;&#208;&#209;&#210;&#211;&#212;&#213;&#214;&#215;&#216;&#217;&#218;&#219;&#220;&#221;&#222;&#223;&#224;&#225;&#226;&#227;&#228;&#229;&#230;&#231;&#232;&#233;&#234;&#235;&#236;&#237;&#238;&#239;&#240;&#241;&#242;&#243;&#244;&#245;&#246;&#247;&#248;&#249;&#250;&#251;&#252;&#253;&#254;&#255;
&#402;&#913;&#914;&#915;&#916;&#917;&#918;&#919;&#920;&#921;&#922;&#923;&#924;&#925;&#926;&#927;&#928;&#929;&#931;&#932;&#933;&#934;&#935;&#936;&#937;&#945;&#946;&#947;&#948;&#949;&#950;&#951;&#952;&#953;&#954;&#955;&#956;&#957;&#958;&#959;&#960;&#961;&#962;&#963;&#964;&#965;&#966;&#967;&#968;&#969;&#977;&#978;&#982;&#8226;&#8230;&#8242;&#8243;&#8254;&#8260;&#8472;&#8465;&#8476;&#8482;&#8501;&#8592;&#8593;&#8594;&#8595;&#8596;&#8629;&#8656;&#8657;&#8658;&#8659;&#8660;&#8704;&#8706;&#8707;&#8709;&#8711;&#8712;&#8713;&#8715;&#8719;&#8721;&#8722;&#8727;&#8730;&#8733;&#8734;&#8736;&#8743;&#8744;&#8745;&#8746;&#8747;&#8756;&#8764;&#8773;&#8776;&#8800;&#8801;&#8804;&#8805;&#8834;&#8835;&#8836;&#8838;&#8839;&#8853;&#8855;&#8869;&#8901;&#8968;&#8969;&#8970;&#8971;&#9001;&#9002;&#9674;&#9824;&#9827;&#9829;&#9830;
a&#338;b&#339;c&#352;d&#353;e&#8364;fg
diff --git a/ext/mbstring/tests/mb_encoding_aliases.phpt b/ext/mbstring/tests/mb_encoding_aliases.phpt
index 8ef299425a..8bc0453350 100644
--- a/ext/mbstring/tests/mb_encoding_aliases.phpt
+++ b/ext/mbstring/tests/mb_encoding_aliases.phpt
@@ -10,6 +10,7 @@ sort($list);
var_dump($list);
var_dump(mb_encoding_aliases("7bit"));
var_dump(mb_encoding_aliases("8bit"));
+var_dump(mb_encoding_aliases("BAD"));
?>
--EXPECTF--
Warning: mb_encoding_aliases() expects exactly 1 parameter, 0 given in %s on line 2
@@ -43,3 +44,6 @@ array(1) {
[0]=>
string(6) "binary"
}
+
+Warning: mb_encoding_aliases(): Unknown encoding "BAD" in %s on line %d
+bool(false)
diff --git a/ext/mbstring/tests/mb_ereg2.phpt b/ext/mbstring/tests/mb_ereg2.phpt
index ecae0aca49..30e857eed7 100644
--- a/ext/mbstring/tests/mb_ereg2.phpt
+++ b/ext/mbstring/tests/mb_ereg2.phpt
@@ -1,18 +1,21 @@
--TEST--
mb_ereg() returning matches
--SKIPIF--
-<?php if (!function_exists("mb_ereg")) print "skip"; ?>
+<?php
+if (!extension_loaded('mbstring')) die('skip mbstring not enabled');
+if (!function_exists("mb_ereg")) print "skip mb_ereg() not available";
+?>
--FILE--
<?php
$a = -1; $b = -1; $c = -1;
-mbereg($a, $b, $c);
+mb_ereg($a, $b, $c);
var_dump($a, $b, $c);
-mberegi($a, $b, $c);
+mb_eregi($a, $b, $c);
var_dump($a, $b, $c);
-mbereg_search_init($a, $b, $c);
+mb_ereg_search_init($a, $b, $c);
var_dump($a, $b, $c);
echo "Done\n";
@@ -31,7 +34,7 @@ array(1) {
string(2) "-1"
}
-Warning: mbereg_search_init() expects parameter 3 to be string, array given in %s on line %d
+Warning: mb_ereg_search_init() expects parameter 3 to be string, array given in %s on line %d
int(-1)
int(-1)
array(1) {
diff --git a/ext/mbstring/tests/mb_ereg3.phpt b/ext/mbstring/tests/mb_ereg3.phpt
index fe779fcc85..c591563444 100644
--- a/ext/mbstring/tests/mb_ereg3.phpt
+++ b/ext/mbstring/tests/mb_ereg3.phpt
@@ -8,6 +8,9 @@ if (!function_exists("mb_ereg")) print "skip mb_ereg() not available";
--FILE--
<?php
+// Note: This test is identical to mb_ereg2.phpt, but using deprecated mbereg_* aliases.
+// Deleted it once the deprecated aliases have been removed.
+
$a = -1; $b = -1; $c = -1;
mbereg($a, $b, $c);
var_dump($a, $b, $c);
@@ -21,12 +24,15 @@ var_dump($a, $b, $c);
echo "Done\n";
?>
--EXPECTF--
+Deprecated: Function mbereg() is deprecated in %s on line %d
int(-1)
int(-1)
array(1) {
[0]=>
string(2) "-1"
}
+
+Deprecated: Function mberegi() is deprecated in %s on line %d
int(-1)
int(-1)
array(1) {
@@ -34,6 +40,8 @@ array(1) {
string(2) "-1"
}
+Deprecated: Function mbereg_search_init() is deprecated in %s on line %d
+
Warning: mbereg_search_init() expects parameter 3 to be string, array given in %s on line %d
int(-1)
int(-1)
diff --git a/ext/mbstring/tests/mb_ereg4.phpt b/ext/mbstring/tests/mb_ereg4.phpt
deleted file mode 100644
index fe779fcc85..0000000000
--- a/ext/mbstring/tests/mb_ereg4.phpt
+++ /dev/null
@@ -1,44 +0,0 @@
---TEST--
-mb_ereg() returning matches
---SKIPIF--
-<?php
-if (!extension_loaded('mbstring')) die('skip mbstring not enabled');
-if (!function_exists("mb_ereg")) print "skip mb_ereg() not available";
-?>
---FILE--
-<?php
-
-$a = -1; $b = -1; $c = -1;
-mbereg($a, $b, $c);
-var_dump($a, $b, $c);
-
-mberegi($a, $b, $c);
-var_dump($a, $b, $c);
-
-mbereg_search_init($a, $b, $c);
-var_dump($a, $b, $c);
-
-echo "Done\n";
-?>
---EXPECTF--
-int(-1)
-int(-1)
-array(1) {
- [0]=>
- string(2) "-1"
-}
-int(-1)
-int(-1)
-array(1) {
- [0]=>
- string(2) "-1"
-}
-
-Warning: mbereg_search_init() expects parameter 3 to be string, array given in %s on line %d
-int(-1)
-int(-1)
-array(1) {
- [0]=>
- string(2) "-1"
-}
-Done
diff --git a/ext/mbstring/tests/mb_ereg_dupnames.phpt b/ext/mbstring/tests/mb_ereg_dupnames.phpt
new file mode 100644
index 0000000000..fcc428c360
--- /dev/null
+++ b/ext/mbstring/tests/mb_ereg_dupnames.phpt
@@ -0,0 +1,37 @@
+--TEST--
+Testing mb_ereg() duplicate named groups
+--SKIPIF--
+<?php
+if (!extension_loaded('mbstring')) die('skip mbstring not enabled');
+function_exists('mb_ereg') or die("skip mb_ereg() is not available in this build");
+?>
+--FILE--
+<?php
+ mb_regex_encoding("UTF-8");
+ $pattern = '\w+((?<punct>?)|(?<punct>!))';
+ mb_ereg($pattern, '中?', $m);
+ var_dump($m);
+ mb_ereg($pattern, '中!', $m);
+ var_dump($m);
+?>
+--EXPECT--
+array(4) {
+ [0]=>
+ string(6) "中?"
+ [1]=>
+ string(3) "?"
+ [2]=>
+ bool(false)
+ ["punct"]=>
+ string(3) "?"
+}
+array(4) {
+ [0]=>
+ string(6) "中!"
+ [1]=>
+ bool(false)
+ [2]=>
+ string(3) "!"
+ ["punct"]=>
+ string(3) "!"
+}
diff --git a/ext/mbstring/tests/mb_ereg_match_basic.phpt b/ext/mbstring/tests/mb_ereg_match_basic.phpt
index 08183573b6..59ff022dc2 100644
--- a/ext/mbstring/tests/mb_ereg_match_basic.phpt
+++ b/ext/mbstring/tests/mb_ereg_match_basic.phpt
@@ -41,7 +41,7 @@ var_dump(mb_ereg_match($regex2, $string_mb));
echo "Done";
?>
---EXPECTF--
+--EXPECT--
*** Testing mb_ereg_match() : basic functionality ***
-- ASCII string 1 --
diff --git a/ext/mbstring/tests/mb_ereg_named_subpatterns.phpt b/ext/mbstring/tests/mb_ereg_named_subpatterns.phpt
new file mode 100644
index 0000000000..ed0f85baa3
--- /dev/null
+++ b/ext/mbstring/tests/mb_ereg_named_subpatterns.phpt
@@ -0,0 +1,50 @@
+--TEST--
+Testing mb_ereg() named subpatterns
+--SKIPIF--
+<?php
+if (!extension_loaded('mbstring')) die('skip mbstring not enabled');
+function_exists('mb_ereg') or die("skip mb_ereg() is not available in this build");
+?>
+--FILE--
+<?php
+ mb_regex_encoding("UTF-8");
+ mb_ereg('(?<wsp>\s*)(?<word>\w+)', ' 中国', $m);
+ var_dump($m);
+ mb_ereg('(?<wsp>\s*)(?<word>\w+)', '国', $m);
+ var_dump($m);
+ mb_ereg('(\s*)(?<word>\w+)', ' 中国', $m);
+ var_dump($m);
+?>
+--EXPECT--
+array(5) {
+ [0]=>
+ string(8) " 中国"
+ [1]=>
+ string(2) " "
+ [2]=>
+ string(6) "中国"
+ ["wsp"]=>
+ string(2) " "
+ ["word"]=>
+ string(6) "中国"
+}
+array(5) {
+ [0]=>
+ string(3) "国"
+ [1]=>
+ bool(false)
+ [2]=>
+ string(3) "国"
+ ["wsp"]=>
+ bool(false)
+ ["word"]=>
+ string(3) "国"
+}
+array(3) {
+ [0]=>
+ string(8) " 中国"
+ [1]=>
+ string(6) "中国"
+ ["word"]=>
+ string(6) "中国"
+}
diff --git a/ext/mbstring/tests/mb_ereg_replace_callback.phpt b/ext/mbstring/tests/mb_ereg_replace_callback.phpt
index 554b51fcf9..7c152e7b46 100644
--- a/ext/mbstring/tests/mb_ereg_replace_callback.phpt
+++ b/ext/mbstring/tests/mb_ereg_replace_callback.phpt
@@ -8,7 +8,15 @@ function_exists('mb_ereg_replace_callback') or die("skip mb_ereg_replace_callbac
--FILE--
<?php
$str = 'abc 123 #",; $foo';
-echo mb_ereg_replace_callback('(\S+)', function($m){return $m[1].'('.strlen($m[1]).')';}, $str);
+
+echo mb_ereg_replace_callback('(\S+)', function ($m) {
+ return $m[1].'('.strlen($m[1]).')';
+}, $str), "\n";
+
+echo mb_ereg_replace_callback('(?<word>\w+) (?<digit>\d+).*', function ($m) {
+ return sprintf("%s-%s", $m['digit'], $m['word']);
+}, $str), "\n";
?>
--EXPECT--
abc(3) 123(3) #",;(4) $foo(4)
+123-abc
diff --git a/ext/mbstring/tests/mb_ereg_replace_named_subpatterns.phpt b/ext/mbstring/tests/mb_ereg_replace_named_subpatterns.phpt
new file mode 100644
index 0000000000..66eece7260
--- /dev/null
+++ b/ext/mbstring/tests/mb_ereg_replace_named_subpatterns.phpt
@@ -0,0 +1,36 @@
+--TEST--
+mb_ereg_replace() with named subpatterns
+--SKIPIF--
+<?php
+extension_loaded('mbstring') or die('skip mbstring not available');
+function_exists('mb_ereg_replace') or die("skip mb_ereg_replace() is not available in this build");
+?>
+--FILE--
+<?php
+ mb_regex_set_options('');
+ // \k<word> syntax
+ echo mb_ereg_replace('(?<a>\s*)(?<b>\w+)(?<c>\s*)', '\k<a>_\k<b>_\k<c>', 'a b c d e' ), "\n";
+ // \k'word' syntax
+ echo mb_ereg_replace('(?<word>[a-z]+)',"<\k'word'>", 'abc def ghi'), PHP_EOL;
+ // numbered captures with \k<n> syntax
+ echo mb_ereg_replace('(1)(2)(3)(4)(5)(6)(7)(8)(9)(a)(\10)', '\k<0>-\k<10>-', '123456789aa'), PHP_EOL;
+ // numbered captures with \k'n' syntax
+ echo mb_ereg_replace('(1)(2)(3)(4)(5)(6)(7)(8)(9)(a)(\10)', "\k'0'-\k'10'-", '123456789aa'), PHP_EOL;
+ // backref 0 works, but 01 is ignored
+ echo mb_ereg_replace('a', "\k'0'_\k<01>", 'a'), PHP_EOL;
+ // Numbered backref is ignored if named backrefs are present
+ echo mb_ereg_replace('(?<a>A)\k<a>', '-\1-', 'AA'), PHP_EOL;
+ // An empty backref is ignored
+ echo mb_ereg_replace('(\w)\1', '-\k<>-', 'AA'), PHP_EOL;
+ // An unclosed backref is ignored
+ echo mb_ereg_replace('(?<a>\w+)', '-\k<a', 'AA'), PHP_EOL;
+?>
+--EXPECT--
+_a_ _b_ _c_ _d_ _e_
+<abc> <def> <ghi>
+123456789aa-a-
+123456789aa-a-
+a_\k<01>
+-\1-
+-\k<>-
+-\k<a
diff --git a/ext/mbstring/tests/mb_ereg_search_named_subpatterns.phpt b/ext/mbstring/tests/mb_ereg_search_named_subpatterns.phpt
new file mode 100644
index 0000000000..f899e9beeb
--- /dev/null
+++ b/ext/mbstring/tests/mb_ereg_search_named_subpatterns.phpt
@@ -0,0 +1,31 @@
+--TEST--
+Testing mb_ereg_search() named capture groups
+--SKIPIF--
+<?php
+if (!extension_loaded('mbstring')) die('skip mbstring not enabled');
+function_exists('mb_ereg_search') or die("skip mb_ereg_search() is not available in this build");
+?>
+--FILE--
+<?php
+ mb_regex_encoding("UTF-8");
+ mb_ereg_search_init(' 中国?');
+ mb_ereg_search('(?<wsp>\s*)(?<word>\w+)(?<punct>[?!])');
+ var_dump(mb_ereg_search_getregs());
+?>
+--EXPECT--
+array(7) {
+ [0]=>
+ string(11) " 中国?"
+ [1]=>
+ string(2) " "
+ [2]=>
+ string(6) "中国"
+ [3]=>
+ string(3) "?"
+ ["punct"]=>
+ string(3) "?"
+ ["wsp"]=>
+ string(2) " "
+ ["word"]=>
+ string(6) "中国"
+}
diff --git a/ext/mbstring/tests/mb_ereg_search_pos.phpt b/ext/mbstring/tests/mb_ereg_search_pos.phpt
index 374d00869d..e9c8aaafc7 100644
--- a/ext/mbstring/tests/mb_ereg_search_pos.phpt
+++ b/ext/mbstring/tests/mb_ereg_search_pos.phpt
@@ -2,8 +2,8 @@
mb_ereg_search_pos() # a test for the basic function of mb_ereg_search_pos
--SKIPIF--
<?php
-if (!extension_loaded('mbstring')) die('skip mbstring extension not available');
-if (!function_exists('mb_ereg_search_init')) die('skip mb_ereg_search_init() not available');
+if (!extension_loaded('mbstring')) die('skip mbstring not enabled');
+if (!function_exists("mb_regex_encoding")) die("skip mb_regex_encoding() is not defined");
?>
--FILE--
<?php
diff --git a/ext/mbstring/tests/mb_ereg_search_setpos.phpt b/ext/mbstring/tests/mb_ereg_search_setpos.phpt
index 601989aa9a..5b76ad0d28 100644
--- a/ext/mbstring/tests/mb_ereg_search_setpos.phpt
+++ b/ext/mbstring/tests/mb_ereg_search_setpos.phpt
@@ -2,8 +2,8 @@
mb_ereg_search_setpos() function
--SKIPIF--
<?php
-if (!extension_loaded('mbstring')) die('skip mbstring extension not available');
-if (!function_exists('mb_ereg_search_init')) die('skip mb_ereg_search_init() not available');
+if (!extension_loaded('mbstring')) die('skip mbstring not enabled');
+if (!function_exists("mb_regex_encoding")) die("skip mb_regex_encoding() is not defined");
?>
--FILE--
<?php
diff --git a/ext/mbstring/tests/mb_ereg_variation1.phpt b/ext/mbstring/tests/mb_ereg_variation1.phpt
index 8afbe98e2a..60baf8743e 100644
--- a/ext/mbstring/tests/mb_ereg_variation1.phpt
+++ b/ext/mbstring/tests/mb_ereg_variation1.phpt
@@ -89,7 +89,7 @@ fclose($fp);
echo "Done";
?>
---EXPECTF--
+--EXPECT--
*** Testing mb_ereg() : usage variations ***
-- Iteration 1 --
diff --git a/ext/mbstring/tests/mb_ereg_variation4.phpt b/ext/mbstring/tests/mb_ereg_variation4.phpt
index e04795d85d..54efbfb3f8 100644
--- a/ext/mbstring/tests/mb_ereg_variation4.phpt
+++ b/ext/mbstring/tests/mb_ereg_variation4.phpt
@@ -73,7 +73,7 @@ function base64_encode_var_dump($regs) {
echo "Done";
?>
---EXPECTF--
+--EXPECT--
*** Testing mb_ereg() : usage variations ***
-- Iteration 1 --
diff --git a/ext/mbstring/tests/mb_ereg_variation5.phpt b/ext/mbstring/tests/mb_ereg_variation5.phpt
index 52e3e356b3..24b12f25a7 100644
--- a/ext/mbstring/tests/mb_ereg_variation5.phpt
+++ b/ext/mbstring/tests/mb_ereg_variation5.phpt
@@ -61,7 +61,7 @@ function base64_encode_var_dump($regs) {
}
}
?>
---EXPECTF--
+--EXPECT--
*** Testing mb_ereg() : usage variations ***
ASCII String without $regs arg: int(1)
diff --git a/ext/mbstring/tests/mb_eregi_invalid_arguments.phpt b/ext/mbstring/tests/mb_eregi_invalid_arguments.phpt
deleted file mode 100644
index ced6fadcdf..0000000000
--- a/ext/mbstring/tests/mb_eregi_invalid_arguments.phpt
+++ /dev/null
@@ -1,20 +0,0 @@
---TEST--
-mb_eregi() and invalid arguments
---SKIPIF--
-<?php
-if (!extension_loaded('mbstring')) die('skip mbstring not enabled');
-if (!function_exists("mb_eregi")) print "skip mb_eregi() not available";
-?>
---FILE--
-<?php
-
-mb_regex_encoding('utf-8');
-
-var_dump(mb_eregi('z', 'XYZ'));
-var_dump(mb_eregi('xyzp', 'XYZ'));
-var_dump(mb_eregi('ö', 'Öäü'));
-?>
---EXPECT--
-int(1)
-bool(false)
-int(1)
diff --git a/ext/mbstring/tests/mb_internal_encoding_basic2.phpt b/ext/mbstring/tests/mb_internal_encoding_basic2.phpt
index 5bffecce73..8090b47be5 100644
--- a/ext/mbstring/tests/mb_internal_encoding_basic2.phpt
+++ b/ext/mbstring/tests/mb_internal_encoding_basic2.phpt
@@ -38,7 +38,7 @@ var_dump(mb_internal_encoding()); //check internal encoding is now set to UTF
echo "Done";
?>
---EXPECTF--
+--EXPECT--
*** Testing mb_internal_encoding() : basic functionality ***
string(0) ""
string(10) "ISO-8859-1"
diff --git a/ext/mbstring/tests/mb_language.phpt b/ext/mbstring/tests/mb_language.phpt
new file mode 100644
index 0000000000..0b8bcff28c
--- /dev/null
+++ b/ext/mbstring/tests/mb_language.phpt
@@ -0,0 +1,39 @@
+--TEST--
+mb_language()
+--SKIPIF--
+<?php extension_loaded('mbstring') or die('skip');
+--INI--
+mbstring.language=
+--FILE--
+<?php
+echo "Checking default language:\n";
+var_dump(mb_language());
+
+echo "Checking default language after ini_set:\n";
+ini_set('mbstring.language', 'uni');
+var_dump(mb_language());
+
+echo "Changing language to English should be successful:\n";
+var_dump(mb_language('English'));
+
+echo "Confirm language was changed:\n";
+var_dump(mb_language());
+
+echo "Try changing to a non-existent language:\n";
+var_dump(mb_language('Pig Latin'));
+var_dump(mb_language());
+?>
+--EXPECTF--
+Checking default language:
+string(7) "neutral"
+Checking default language after ini_set:
+string(3) "uni"
+Changing language to English should be successful:
+bool(true)
+Confirm language was changed:
+string(7) "English"
+Try changing to a non-existent language:
+
+Warning: mb_language(): Unknown language "Pig Latin" in %s on line %d
+bool(false)
+string(7) "neutral"
diff --git a/ext/mbstring/tests/mb_parse_str.phpt b/ext/mbstring/tests/mb_parse_str.phpt
index 94f6a9f0a0..8580ac52c5 100644
--- a/ext/mbstring/tests/mb_parse_str.phpt
+++ b/ext/mbstring/tests/mb_parse_str.phpt
@@ -2,8 +2,6 @@
mb_parse_str()
--SKIPIF--
<?php extension_loaded('mbstring') or die('skip mbstring not available'); ?>
---FAIL--
-register_globals calls killed the ability for mb_parse_str() to register into the global scope
--INI--
arg_separator.input=&
--FILE--
diff --git a/ext/mbstring/tests/mb_parse_str02.phpt b/ext/mbstring/tests/mb_parse_str02.phpt
index d89137de07..e1871bf596 100644
--- a/ext/mbstring/tests/mb_parse_str02.phpt
+++ b/ext/mbstring/tests/mb_parse_str02.phpt
@@ -2,8 +2,6 @@
mb_parse_str() test 2
--SKIPIF--
<?php extension_loaded('mbstring') or die('skip mbstring not available'); ?>
---FAIL--
-register_globals calls killed the ability for mb_parse_str() to register into the global scope
--INI--
arg_separator.input=&#
--FILE--
diff --git a/ext/mbstring/tests/mb_preferred_mime_name.phpt b/ext/mbstring/tests/mb_preferred_mime_name.phpt
index 7cc6a6bd53..df05027c3c 100644
--- a/ext/mbstring/tests/mb_preferred_mime_name.phpt
+++ b/ext/mbstring/tests/mb_preferred_mime_name.phpt
@@ -6,11 +6,6 @@ mb_preferred_mime_name()
<?php
// TODO: Add more encoding names
-//$debug=true;
-ini_set('include_path', dirname(__FILE__));
-include_once('common.inc');
-
-
$str = mb_preferred_mime_name('sjis-win');
echo "$str\n";
@@ -40,11 +35,12 @@ echo "$str\n";
echo "== INVALID PARAMETER ==\n";
// Invalid name
-$r = mb_preferred_mime_name('BAD_NAME');
-($r === FALSE) ? print("OK_BAD_NAME\n") : print("NG_BAD_NAME\n");
+var_dump(mb_preferred_mime_name('BAD_NAME'));
+// No preferred name
+var_dump(mb_preferred_mime_name('pass'));
?>
---EXPECT--
+--EXPECTF--
Shift_JIS
Shift_JIS
EUC-JP
@@ -55,5 +51,9 @@ ISO-8859-1
UCS-2
UCS-4
== INVALID PARAMETER ==
-ERR: Warning
-OK_BAD_NAME
+
+Warning: mb_preferred_mime_name(): Unknown encoding "BAD_NAME" in %s on line %d
+bool(false)
+
+Warning: mb_preferred_mime_name(): No MIME preferred name corresponding to "pass" in %s on line %d
+bool(false)
diff --git a/ext/mbstring/tests/mb_split.phpt b/ext/mbstring/tests/mb_split.phpt
index 2ce7ab9316..216beec1cc 100644
--- a/ext/mbstring/tests/mb_split.phpt
+++ b/ext/mbstring/tests/mb_split.phpt
@@ -35,7 +35,7 @@ mbstring.func_overload=0
verify_split( "\xa1\xa1+", "\xa1\xa1\xa1\xa2\xa2\xa1\xa1\xa1\xa1\xa1\xa1\xa2\xa2\xa1\xa1\xa1", $i );
}
?>
---EXPECTF--
+--EXPECT--
bool(true)
ok
ok
diff --git a/ext/mbstring/tests/mb_split_variation3.phpt b/ext/mbstring/tests/mb_split_variation3.phpt
index 6856a92d29..c5e6783f98 100644
--- a/ext/mbstring/tests/mb_split_variation3.phpt
+++ b/ext/mbstring/tests/mb_split_variation3.phpt
@@ -285,32 +285,32 @@ array(1) {
-- Iteration 16 --
-Warning: mb_split() expects parameter 3 to be integer, string given in %s on line %d
+Warning: mb_split() expects parameter 3 to be int, string given in %s on line %d
bool(false)
-- Iteration 17 --
-Warning: mb_split() expects parameter 3 to be integer, string given in %s on line %d
+Warning: mb_split() expects parameter 3 to be int, string given in %s on line %d
bool(false)
-- Iteration 18 --
-Warning: mb_split() expects parameter 3 to be integer, string given in %s on line %d
+Warning: mb_split() expects parameter 3 to be int, string given in %s on line %d
bool(false)
-- Iteration 19 --
-Warning: mb_split() expects parameter 3 to be integer, string given in %s on line %d
+Warning: mb_split() expects parameter 3 to be int, string given in %s on line %d
bool(false)
-- Iteration 20 --
-Warning: mb_split() expects parameter 3 to be integer, string given in %s on line %d
+Warning: mb_split() expects parameter 3 to be int, string given in %s on line %d
bool(false)
-- Iteration 21 --
-Warning: mb_split() expects parameter 3 to be integer, object given in %s on line %d
+Warning: mb_split() expects parameter 3 to be int, object given in %s on line %d
bool(false)
-- Iteration 22 --
@@ -327,6 +327,6 @@ array(1) {
-- Iteration 24 --
-Warning: mb_split() expects parameter 3 to be integer, resource given in %s on line %d
+Warning: mb_split() expects parameter 3 to be int, resource given in %s on line %d
bool(false)
Done
diff --git a/ext/mbstring/tests/mb_strcut_negative_length.phpt b/ext/mbstring/tests/mb_strcut_negative_length.phpt
new file mode 100644
index 0000000000..3bdc7d90ce
--- /dev/null
+++ b/ext/mbstring/tests/mb_strcut_negative_length.phpt
@@ -0,0 +1,18 @@
+--TEST--
+mb_strcut() negative length test
+--SKIPIF--
+<?php extension_loaded('mbstring') or die('skip');
+--FILE--
+<?php
+var_dump(mb_strcut('Déjà vu', 1, -3));
+var_dump(mb_strcut('Déjà vu', 1, -4));
+var_dump(mb_strcut('Déjà vu', 1, -5));
+var_dump(mb_strcut('Déjà vu', 1, -6));
+var_dump(mb_strcut('Déjà vu', 1, -999));
+?>
+--EXPECT--
+string(5) "éjà"
+string(3) "éj"
+string(3) "éj"
+string(2) "é"
+string(0) ""
diff --git a/ext/mbstring/tests/mb_stripos_basic.phpt b/ext/mbstring/tests/mb_stripos_basic.phpt
index b360858e6d..0826b3e878 100644
--- a/ext/mbstring/tests/mb_stripos_basic.phpt
+++ b/ext/mbstring/tests/mb_stripos_basic.phpt
@@ -97,7 +97,7 @@ foreach ($greek_needles as $needle) {
echo "Done";
?>
---EXPECTF--
+--EXPECT--
*** Testing mb_stripos() : basic functionality***
-- ASCII Strings, needle should be found --
diff --git a/ext/mbstring/tests/mb_stripos_basic2.phpt b/ext/mbstring/tests/mb_stripos_basic2.phpt
index 5dd9848372..23a8b6c5a2 100644
--- a/ext/mbstring/tests/mb_stripos_basic2.phpt
+++ b/ext/mbstring/tests/mb_stripos_basic2.phpt
@@ -71,7 +71,7 @@ foreach ($greek_needles as $needle) {
echo "Done";
?>
---EXPECTF--
+--EXPECT--
*** Testing mb_stripos() : basic functionality***
-- ASCII Strings --
diff --git a/ext/mbstring/tests/mb_stripos_variation3.phpt b/ext/mbstring/tests/mb_stripos_variation3.phpt
index 0107d07e3f..4c9441462a 100644
--- a/ext/mbstring/tests/mb_stripos_variation3.phpt
+++ b/ext/mbstring/tests/mb_stripos_variation3.phpt
@@ -170,32 +170,32 @@ int(8)
-- Iteration 18 --
-Warning: mb_stripos() expects parameter 3 to be integer, string given in %s on line %d
+Warning: mb_stripos() expects parameter 3 to be int, string given in %s on line %d
NULL
-- Iteration 19 --
-Warning: mb_stripos() expects parameter 3 to be integer, string given in %s on line %d
+Warning: mb_stripos() expects parameter 3 to be int, string given in %s on line %d
NULL
-- Iteration 20 --
-Warning: mb_stripos() expects parameter 3 to be integer, string given in %s on line %d
+Warning: mb_stripos() expects parameter 3 to be int, string given in %s on line %d
NULL
-- Iteration 21 --
-Warning: mb_stripos() expects parameter 3 to be integer, string given in %s on line %d
+Warning: mb_stripos() expects parameter 3 to be int, string given in %s on line %d
NULL
-- Iteration 22 --
-Warning: mb_stripos() expects parameter 3 to be integer, string given in %s on line %d
+Warning: mb_stripos() expects parameter 3 to be int, string given in %s on line %d
NULL
-- Iteration 23 --
-Warning: mb_stripos() expects parameter 3 to be integer, object given in %s on line %d
+Warning: mb_stripos() expects parameter 3 to be int, object given in %s on line %d
NULL
-- Iteration 24 --
@@ -206,6 +206,6 @@ int(8)
-- Iteration 26 --
-Warning: mb_stripos() expects parameter 3 to be integer, resource given in %s on line %d
+Warning: mb_stripos() expects parameter 3 to be int, resource given in %s on line %d
NULL
Done
diff --git a/ext/mbstring/tests/mb_stristr_variation3.phpt b/ext/mbstring/tests/mb_stristr_variation3.phpt
index 642b3d9161..b24faaeb71 100644
--- a/ext/mbstring/tests/mb_stristr_variation3.phpt
+++ b/ext/mbstring/tests/mb_stristr_variation3.phpt
@@ -161,19 +161,19 @@ string(12) "737472696e67"
string(12) "737472696e67"
--empty array--
-Error: 2 - mb_stristr() expects parameter 3 to be boolean, array given, %s(%d)
+Error: 2 - mb_stristr() expects parameter 3 to be bool, array given, %s(%d)
NULL
--int indexed array--
-Error: 2 - mb_stristr() expects parameter 3 to be boolean, array given, %s(%d)
+Error: 2 - mb_stristr() expects parameter 3 to be bool, array given, %s(%d)
NULL
--associative array--
-Error: 2 - mb_stristr() expects parameter 3 to be boolean, array given, %s(%d)
+Error: 2 - mb_stristr() expects parameter 3 to be bool, array given, %s(%d)
NULL
--nested arrays--
-Error: 2 - mb_stristr() expects parameter 3 to be boolean, array given, %s(%d)
+Error: 2 - mb_stristr() expects parameter 3 to be bool, array given, %s(%d)
NULL
--uppercase NULL--
@@ -213,11 +213,11 @@ string(12) "737472696e67"
string(12) "737472696e67"
--instance of classWithToString--
-Error: 2 - mb_stristr() expects parameter 3 to be boolean, object given, %s(%d)
+Error: 2 - mb_stristr() expects parameter 3 to be bool, object given, %s(%d)
NULL
--instance of classWithoutToString--
-Error: 2 - mb_stristr() expects parameter 3 to be boolean, object given, %s(%d)
+Error: 2 - mb_stristr() expects parameter 3 to be bool, object given, %s(%d)
NULL
--undefined var--
@@ -227,6 +227,6 @@ string(8) "5f76616c"
string(8) "5f76616c"
--resource--
-Error: 2 - mb_stristr() expects parameter 3 to be boolean, resource given, %s(%d)
+Error: 2 - mb_stristr() expects parameter 3 to be bool, resource given, %s(%d)
NULL
===DONE===
diff --git a/ext/mbstring/tests/mb_strlen_basic.phpt b/ext/mbstring/tests/mb_strlen_basic.phpt
index fd678c88df..2da54e6fe9 100644
--- a/ext/mbstring/tests/mb_strlen_basic.phpt
+++ b/ext/mbstring/tests/mb_strlen_basic.phpt
@@ -30,7 +30,7 @@ var_dump(mb_strlen($string_mb, 'UTF-8'));
echo "\nDone";
?>
---EXPECTF--
+--EXPECT--
*** Testing mb_strlen() : basic functionality***
-- ASCII String --
diff --git a/ext/mbstring/tests/mb_strlen_variation3.phpt b/ext/mbstring/tests/mb_strlen_variation3.phpt
index 948b464ffd..b5f36dedc1 100644
--- a/ext/mbstring/tests/mb_strlen_variation3.phpt
+++ b/ext/mbstring/tests/mb_strlen_variation3.phpt
@@ -104,7 +104,7 @@ foreach($encoding as $enc) {
echo "Done";
?>
---EXPECTF--
+--EXPECT--
*** Testing mb_strlen() : usage variations ***
-- Iteration 1: UCS-4 --
diff --git a/ext/mbstring/tests/mb_strpos_variation3.phpt b/ext/mbstring/tests/mb_strpos_variation3.phpt
index d5205419d1..b34682d5b4 100644
--- a/ext/mbstring/tests/mb_strpos_variation3.phpt
+++ b/ext/mbstring/tests/mb_strpos_variation3.phpt
@@ -170,32 +170,32 @@ int(8)
-- Iteration 18 --
-Warning: mb_strpos() expects parameter 3 to be integer, string given in %s on line %d
+Warning: mb_strpos() expects parameter 3 to be int, string given in %s on line %d
NULL
-- Iteration 19 --
-Warning: mb_strpos() expects parameter 3 to be integer, string given in %s on line %d
+Warning: mb_strpos() expects parameter 3 to be int, string given in %s on line %d
NULL
-- Iteration 20 --
-Warning: mb_strpos() expects parameter 3 to be integer, string given in %s on line %d
+Warning: mb_strpos() expects parameter 3 to be int, string given in %s on line %d
NULL
-- Iteration 21 --
-Warning: mb_strpos() expects parameter 3 to be integer, string given in %s on line %d
+Warning: mb_strpos() expects parameter 3 to be int, string given in %s on line %d
NULL
-- Iteration 22 --
-Warning: mb_strpos() expects parameter 3 to be integer, string given in %s on line %d
+Warning: mb_strpos() expects parameter 3 to be int, string given in %s on line %d
NULL
-- Iteration 23 --
-Warning: mb_strpos() expects parameter 3 to be integer, object given in %s on line %d
+Warning: mb_strpos() expects parameter 3 to be int, object given in %s on line %d
NULL
-- Iteration 24 --
@@ -206,6 +206,6 @@ int(8)
-- Iteration 26 --
-Warning: mb_strpos() expects parameter 3 to be integer, resource given in %s on line %d
+Warning: mb_strpos() expects parameter 3 to be int, resource given in %s on line %d
NULL
Done
diff --git a/ext/mbstring/tests/mb_strrchr_variation3.phpt b/ext/mbstring/tests/mb_strrchr_variation3.phpt
index d21072de75..0664a16302 100644
--- a/ext/mbstring/tests/mb_strrchr_variation3.phpt
+++ b/ext/mbstring/tests/mb_strrchr_variation3.phpt
@@ -161,19 +161,19 @@ string(12) "737472696e67"
string(12) "737472696e67"
--empty array--
-Error: 2 - mb_strrchr() expects parameter 3 to be boolean, array given, %s(%d)
+Error: 2 - mb_strrchr() expects parameter 3 to be bool, array given, %s(%d)
NULL
--int indexed array--
-Error: 2 - mb_strrchr() expects parameter 3 to be boolean, array given, %s(%d)
+Error: 2 - mb_strrchr() expects parameter 3 to be bool, array given, %s(%d)
NULL
--associative array--
-Error: 2 - mb_strrchr() expects parameter 3 to be boolean, array given, %s(%d)
+Error: 2 - mb_strrchr() expects parameter 3 to be bool, array given, %s(%d)
NULL
--nested arrays--
-Error: 2 - mb_strrchr() expects parameter 3 to be boolean, array given, %s(%d)
+Error: 2 - mb_strrchr() expects parameter 3 to be bool, array given, %s(%d)
NULL
--uppercase NULL--
@@ -213,11 +213,11 @@ string(12) "737472696e67"
string(12) "737472696e67"
--instance of classWithToString--
-Error: 2 - mb_strrchr() expects parameter 3 to be boolean, object given, %s(%d)
+Error: 2 - mb_strrchr() expects parameter 3 to be bool, object given, %s(%d)
NULL
--instance of classWithoutToString--
-Error: 2 - mb_strrchr() expects parameter 3 to be boolean, object given, %s(%d)
+Error: 2 - mb_strrchr() expects parameter 3 to be bool, object given, %s(%d)
NULL
--undefined var--
@@ -227,6 +227,6 @@ string(8) "5f76616c"
string(8) "5f76616c"
--resource--
-Error: 2 - mb_strrchr() expects parameter 3 to be boolean, resource given, %s(%d)
+Error: 2 - mb_strrchr() expects parameter 3 to be bool, resource given, %s(%d)
NULL
===DONE===
diff --git a/ext/mbstring/tests/mb_strrichr_variation3.phpt b/ext/mbstring/tests/mb_strrichr_variation3.phpt
index 79824c8a73..c2cccaa375 100644
--- a/ext/mbstring/tests/mb_strrichr_variation3.phpt
+++ b/ext/mbstring/tests/mb_strrichr_variation3.phpt
@@ -161,19 +161,19 @@ string(12) "737472696e67"
string(12) "737472696e67"
--empty array--
-Error: 2 - mb_strrichr() expects parameter 3 to be boolean, array given, %s(%d)
+Error: 2 - mb_strrichr() expects parameter 3 to be bool, array given, %s(%d)
NULL
--int indexed array--
-Error: 2 - mb_strrichr() expects parameter 3 to be boolean, array given, %s(%d)
+Error: 2 - mb_strrichr() expects parameter 3 to be bool, array given, %s(%d)
NULL
--associative array--
-Error: 2 - mb_strrichr() expects parameter 3 to be boolean, array given, %s(%d)
+Error: 2 - mb_strrichr() expects parameter 3 to be bool, array given, %s(%d)
NULL
--nested arrays--
-Error: 2 - mb_strrichr() expects parameter 3 to be boolean, array given, %s(%d)
+Error: 2 - mb_strrichr() expects parameter 3 to be bool, array given, %s(%d)
NULL
--uppercase NULL--
@@ -213,11 +213,11 @@ string(12) "737472696e67"
string(12) "737472696e67"
--instance of classWithToString--
-Error: 2 - mb_strrichr() expects parameter 3 to be boolean, object given, %s(%d)
+Error: 2 - mb_strrichr() expects parameter 3 to be bool, object given, %s(%d)
NULL
--instance of classWithoutToString--
-Error: 2 - mb_strrichr() expects parameter 3 to be boolean, object given, %s(%d)
+Error: 2 - mb_strrichr() expects parameter 3 to be bool, object given, %s(%d)
NULL
--undefined var--
@@ -227,6 +227,6 @@ string(8) "5f76616c"
string(8) "5f76616c"
--resource--
-Error: 2 - mb_strrichr() expects parameter 3 to be boolean, resource given, %s(%d)
+Error: 2 - mb_strrichr() expects parameter 3 to be bool, resource given, %s(%d)
NULL
===DONE===
diff --git a/ext/mbstring/tests/mb_strripos_basic.phpt b/ext/mbstring/tests/mb_strripos_basic.phpt
index ce538ec0af..685314d58d 100644
--- a/ext/mbstring/tests/mb_strripos_basic.phpt
+++ b/ext/mbstring/tests/mb_strripos_basic.phpt
@@ -97,7 +97,7 @@ foreach ($greek_needles as $needle) {
echo "Done";
?>
---EXPECTF--
+--EXPECT--
*** Testing mb_strripos() : basic functionality***
-- ASCII Strings, needle should be found --
diff --git a/ext/mbstring/tests/mb_strripos_basic2.phpt b/ext/mbstring/tests/mb_strripos_basic2.phpt
index c4d7f0d338..f225524973 100644
--- a/ext/mbstring/tests/mb_strripos_basic2.phpt
+++ b/ext/mbstring/tests/mb_strripos_basic2.phpt
@@ -71,7 +71,7 @@ foreach ($greek_needles as $needle) {
echo "Done";
?>
---EXPECTF--
+--EXPECT--
*** Testing mb_strripos() : basic functionality***
-- ASCII Strings --
diff --git a/ext/mbstring/tests/mb_strripos_variation3_Bug45923.phpt b/ext/mbstring/tests/mb_strripos_variation3_Bug45923.phpt
index 4023f83480..ed0707e6bb 100644
--- a/ext/mbstring/tests/mb_strripos_variation3_Bug45923.phpt
+++ b/ext/mbstring/tests/mb_strripos_variation3_Bug45923.phpt
@@ -165,32 +165,32 @@ int(8)
-- Iteration 16 --
-Warning: mb_strripos() expects parameter 3 to be integer, string given in %s on line %d
+Warning: mb_strripos() expects parameter 3 to be int, string given in %s on line %d
NULL
-- Iteration 17 --
-Warning: mb_strripos() expects parameter 3 to be integer, string given in %s on line %d
+Warning: mb_strripos() expects parameter 3 to be int, string given in %s on line %d
NULL
-- Iteration 18 --
-Warning: mb_strripos() expects parameter 3 to be integer, string given in %s on line %d
+Warning: mb_strripos() expects parameter 3 to be int, string given in %s on line %d
NULL
-- Iteration 19 --
-Warning: mb_strripos() expects parameter 3 to be integer, string given in %s on line %d
+Warning: mb_strripos() expects parameter 3 to be int, string given in %s on line %d
NULL
-- Iteration 20 --
-Warning: mb_strripos() expects parameter 3 to be integer, string given in %s on line %d
+Warning: mb_strripos() expects parameter 3 to be int, string given in %s on line %d
NULL
-- Iteration 21 --
-Warning: mb_strripos() expects parameter 3 to be integer, object given in %s on line %d
+Warning: mb_strripos() expects parameter 3 to be int, object given in %s on line %d
NULL
-- Iteration 22 --
@@ -201,6 +201,6 @@ int(8)
-- Iteration 24 --
-Warning: mb_strripos() expects parameter 3 to be integer, resource given in %s on line %d
+Warning: mb_strripos() expects parameter 3 to be int, resource given in %s on line %d
NULL
Done
diff --git a/ext/mbstring/tests/mb_strrpos_basic.phpt b/ext/mbstring/tests/mb_strrpos_basic.phpt
index b86f24d98c..d9df624bea 100644
--- a/ext/mbstring/tests/mb_strrpos_basic.phpt
+++ b/ext/mbstring/tests/mb_strrpos_basic.phpt
@@ -40,7 +40,7 @@ var_dump(mb_strrpos($string_mb, $needle2));
echo "Done";
?>
---EXPECTF--
+--EXPECT--
*** Testing mb_strrpos() : basic ***
-- ASCII string 1 --
diff --git a/ext/mbstring/tests/mb_strrpos_encoding_3rd_param.phpt b/ext/mbstring/tests/mb_strrpos_encoding_3rd_param.phpt
new file mode 100644
index 0000000000..50b48d9941
--- /dev/null
+++ b/ext/mbstring/tests/mb_strrpos_encoding_3rd_param.phpt
@@ -0,0 +1,11 @@
+--TEST--
+Passing encoding as 3rd param to mb_strrpos (legacy)
+--FILE--
+<?php
+
+mb_internal_encoding('UTF-16');
+var_dump(mb_strrpos("abc abc abc", "abc", "UTF-8"));
+
+?>
+--EXPECT--
+int(8)
diff --git a/ext/mbstring/tests/mb_strrpos_variation5.phpt b/ext/mbstring/tests/mb_strrpos_variation5.phpt
index 8470aa7c6b..4eb8c1f9be 100644
--- a/ext/mbstring/tests/mb_strrpos_variation5.phpt
+++ b/ext/mbstring/tests/mb_strrpos_variation5.phpt
@@ -38,7 +38,7 @@ foreach ($inputs as $type => $input) {
echo "Done";
?>
---EXPECTF--
+--EXPECT--
*** Testing mb_strrpos() : usage variations ***
-- Double Quoted String --
diff --git a/ext/mbstring/tests/mb_strstr_variation3.phpt b/ext/mbstring/tests/mb_strstr_variation3.phpt
index 18d96e5ad0..462c993b74 100644
--- a/ext/mbstring/tests/mb_strstr_variation3.phpt
+++ b/ext/mbstring/tests/mb_strstr_variation3.phpt
@@ -161,19 +161,19 @@ string(12) "737472696e67"
string(12) "737472696e67"
--empty array--
-Error: 2 - mb_strstr() expects parameter 3 to be boolean, array given, %s(%d)
+Error: 2 - mb_strstr() expects parameter 3 to be bool, array given, %s(%d)
NULL
--int indexed array--
-Error: 2 - mb_strstr() expects parameter 3 to be boolean, array given, %s(%d)
+Error: 2 - mb_strstr() expects parameter 3 to be bool, array given, %s(%d)
NULL
--associative array--
-Error: 2 - mb_strstr() expects parameter 3 to be boolean, array given, %s(%d)
+Error: 2 - mb_strstr() expects parameter 3 to be bool, array given, %s(%d)
NULL
--nested arrays--
-Error: 2 - mb_strstr() expects parameter 3 to be boolean, array given, %s(%d)
+Error: 2 - mb_strstr() expects parameter 3 to be bool, array given, %s(%d)
NULL
--uppercase NULL--
@@ -213,11 +213,11 @@ string(12) "737472696e67"
string(12) "737472696e67"
--instance of classWithToString--
-Error: 2 - mb_strstr() expects parameter 3 to be boolean, object given, %s(%d)
+Error: 2 - mb_strstr() expects parameter 3 to be bool, object given, %s(%d)
NULL
--instance of classWithoutToString--
-Error: 2 - mb_strstr() expects parameter 3 to be boolean, object given, %s(%d)
+Error: 2 - mb_strstr() expects parameter 3 to be bool, object given, %s(%d)
NULL
--undefined var--
@@ -227,6 +227,6 @@ string(8) "5f76616c"
string(8) "5f76616c"
--resource--
-Error: 2 - mb_strstr() expects parameter 3 to be boolean, resource given, %s(%d)
+Error: 2 - mb_strstr() expects parameter 3 to be bool, resource given, %s(%d)
NULL
===DONE===
diff --git a/ext/mbstring/tests/mb_strtolower_basic.phpt b/ext/mbstring/tests/mb_strtolower_basic.phpt
index 6d9cba72fe..4f727094b1 100644
--- a/ext/mbstring/tests/mb_strtolower_basic.phpt
+++ b/ext/mbstring/tests/mb_strtolower_basic.phpt
@@ -45,7 +45,7 @@ if ($mb == $greek_lower) {
echo "Done";
?>
---EXPECTF--
+--EXPECT--
*** Testing mb_strtolower() : basic functionality***
-- ASCII String --
diff --git a/ext/mbstring/tests/mb_strtolower_variation2.phpt b/ext/mbstring/tests/mb_strtolower_variation2.phpt
index 6c462ade6f..c9e2520232 100644
--- a/ext/mbstring/tests/mb_strtolower_variation2.phpt
+++ b/ext/mbstring/tests/mb_strtolower_variation2.phpt
@@ -157,14 +157,10 @@ Warning: mb_strtolower(): Unknown encoding "0.5" in %s on line %d
bool(false)
-- Iteration 10 --
-
-Warning: mb_strtolower(): Unknown encoding "(null)" in %s on line %d
-bool(false)
+string(24) "68656c6c6f2c20776f726c64"
-- Iteration 11 --
-
-Warning: mb_strtolower(): Unknown encoding "(null)" in %s on line %d
-bool(false)
+string(24) "68656c6c6f2c20776f726c64"
-- Iteration 12 --
@@ -209,14 +205,10 @@ string(24) "68656c6c6f2c20776f726c64"
string(24) "68656c6c6f2c20776f726c64"
-- Iteration 22 --
-
-Warning: mb_strtolower(): Unknown encoding "(null)" in %s on line %d
-bool(false)
+string(24) "68656c6c6f2c20776f726c64"
-- Iteration 23 --
-
-Warning: mb_strtolower(): Unknown encoding "(null)" in %s on line %d
-bool(false)
+string(24) "68656c6c6f2c20776f726c64"
-- Iteration 24 --
diff --git a/ext/mbstring/tests/mb_strtolower_variation3.phpt b/ext/mbstring/tests/mb_strtolower_variation3.phpt
index c03ce03d6e..bd0bd58c44 100644
--- a/ext/mbstring/tests/mb_strtolower_variation3.phpt
+++ b/ext/mbstring/tests/mb_strtolower_variation3.phpt
@@ -43,7 +43,7 @@ if ($b == $string_all_mb) { // Japanese characters only - should not be any conv
echo "Done";
?>
---EXPECTF--
+--EXPECT--
*** Testing mb_strtolower() : usage variations ***
-- Mixed string (mulitbyte and ASCII characters) --
diff --git a/ext/mbstring/tests/mb_strtolower_variation4.phpt b/ext/mbstring/tests/mb_strtolower_variation4.phpt
index 9d4d8a34ef..17bd8c7fe2 100644
--- a/ext/mbstring/tests/mb_strtolower_variation4.phpt
+++ b/ext/mbstring/tests/mb_strtolower_variation4.phpt
@@ -38,7 +38,7 @@ foreach ($uppers as $lang => $sourcestring) {
echo "Done";
?>
---EXPECTF--
+--EXPECT--
*** Testing mb_strtolower() : usage variations ***
-- Basic Latin --
diff --git a/ext/mbstring/tests/mb_strtoupper_variation2.phpt b/ext/mbstring/tests/mb_strtoupper_variation2.phpt
index 68ddd9a242..498f94fba4 100644
--- a/ext/mbstring/tests/mb_strtoupper_variation2.phpt
+++ b/ext/mbstring/tests/mb_strtoupper_variation2.phpt
@@ -157,14 +157,10 @@ Warning: mb_strtoupper(): Unknown encoding "0.5" in %s on line %d
bool(false)
-- Iteration 10 --
-
-Warning: mb_strtoupper(): Unknown encoding "(null)" in %s on line %d
-bool(false)
+string(24) "48454c4c4f2c20574f524c44"
-- Iteration 11 --
-
-Warning: mb_strtoupper(): Unknown encoding "(null)" in %s on line %d
-bool(false)
+string(24) "48454c4c4f2c20574f524c44"
-- Iteration 12 --
@@ -209,14 +205,10 @@ string(24) "48454c4c4f2c20574f524c44"
string(24) "48454c4c4f2c20574f524c44"
-- Iteration 22 --
-
-Warning: mb_strtoupper(): Unknown encoding "(null)" in %s on line %d
-bool(false)
+string(24) "48454c4c4f2c20574f524c44"
-- Iteration 23 --
-
-Warning: mb_strtoupper(): Unknown encoding "(null)" in %s on line %d
-bool(false)
+string(24) "48454c4c4f2c20574f524c44"
-- Iteration 24 --
diff --git a/ext/mbstring/tests/mb_strtoupper_variation3.phpt b/ext/mbstring/tests/mb_strtoupper_variation3.phpt
index ff9f018072..3a40cb9bf3 100644
--- a/ext/mbstring/tests/mb_strtoupper_variation3.phpt
+++ b/ext/mbstring/tests/mb_strtoupper_variation3.phpt
@@ -44,7 +44,7 @@ if ($b == $string_all_mb) { // Japanese characters only - should not be any conv
echo "Done";
?>
---EXPECTF--
+--EXPECT--
*** Testing mb_strtoupper() : usage variations ***
-- Mixed string (mulitbyte and ASCII characters) --
diff --git a/ext/mbstring/tests/mb_strtoupper_variation4.phpt b/ext/mbstring/tests/mb_strtoupper_variation4.phpt
index fb49540eea..7b126e671b 100644
--- a/ext/mbstring/tests/mb_strtoupper_variation4.phpt
+++ b/ext/mbstring/tests/mb_strtoupper_variation4.phpt
@@ -39,7 +39,7 @@ foreach ($lowers as $lang => $sourcestring) {
echo "Done";
?>
---EXPECTF--
+--EXPECT--
*** Testing mb_strtoupper() : usage variations ***
-- Basic Latin --
diff --git a/ext/mbstring/tests/mb_substr_basic.phpt b/ext/mbstring/tests/mb_substr_basic.phpt
index dc09fe381f..2edb91291f 100644
--- a/ext/mbstring/tests/mb_substr_basic.phpt
+++ b/ext/mbstring/tests/mb_substr_basic.phpt
@@ -40,7 +40,7 @@ var_dump(base64_encode($result_2));
echo "Done";
?>
---EXPECTF--
+--EXPECT--
*** Testing mb_substr() : basic functionality ***
-- ASCII string 1 --
diff --git a/ext/mbstring/tests/mb_substr_count_basic.phpt b/ext/mbstring/tests/mb_substr_count_basic.phpt
index 31e3620f1c..1c2af8b3ff 100644
--- a/ext/mbstring/tests/mb_substr_count_basic.phpt
+++ b/ext/mbstring/tests/mb_substr_count_basic.phpt
@@ -34,7 +34,7 @@ var_dump(mb_substr_count($string_mb, $needle_mb2));
echo "Done";
?>
---EXPECTF--
+--EXPECT--
*** Testing mb_substr_count() : basic functionality ***
-- ASCII String --
diff --git a/ext/mbstring/tests/mb_substr_count_variation4.phpt b/ext/mbstring/tests/mb_substr_count_variation4.phpt
index 010158cc88..29d1d6e22e 100644
--- a/ext/mbstring/tests/mb_substr_count_variation4.phpt
+++ b/ext/mbstring/tests/mb_substr_count_variation4.phpt
@@ -33,7 +33,7 @@ var_dump(mb_substr_count($string_mb, $needle_mb, 'utf-8'));
echo "Done";
?>
---EXPECTF--
+--EXPECT--
*** Testing mb_substr_count() : usage variations ***
-- ASCII String --
diff --git a/ext/mbstring/tests/mb_substr_variation3.phpt b/ext/mbstring/tests/mb_substr_variation3.phpt
index f0ba2bc0a2..702bdda147 100644
--- a/ext/mbstring/tests/mb_substr_variation3.phpt
+++ b/ext/mbstring/tests/mb_substr_variation3.phpt
@@ -104,7 +104,7 @@ foreach($encoding as $enc) {
echo "Done";
?>
---EXPECTF--
+--EXPECT--
*** Testing mb_substr() : usage variations ***
-- Iteration 1: UCS-4 --
diff --git a/ext/mbstring/tests/mbregex_stack_limit.phpt b/ext/mbstring/tests/mbregex_stack_limit.phpt
new file mode 100644
index 0000000000..9d0f3acc9d
--- /dev/null
+++ b/ext/mbstring/tests/mbregex_stack_limit.phpt
@@ -0,0 +1,24 @@
+--TEST--
+Test oniguruma stack limit
+--SKIPIF--
+<?php extension_loaded('mbstring') or die('skip mbstring not available'); ?>
+--FILE--
+<?php
+$s = str_repeat(' ', 30000);
+
+ini_set('mbstring.regex_stack_limit', 10000);
+var_dump(mb_ereg('\\s+$', $s));
+
+ini_set('mbstring.regex_stack_limit', 30000);
+var_dump(mb_ereg('\\s+$', $s));
+
+ini_set('mbstring.regex_stack_limit', 30001);
+var_dump(mb_ereg('\\s+$', $s));
+
+echo 'OK';
+?>
+--EXPECT--
+bool(false)
+bool(false)
+int(1)
+OK
diff --git a/ext/mbstring/tests/mbregex_stack_limit2.phpt b/ext/mbstring/tests/mbregex_stack_limit2.phpt
new file mode 100644
index 0000000000..12c8c8edab
--- /dev/null
+++ b/ext/mbstring/tests/mbregex_stack_limit2.phpt
@@ -0,0 +1,25 @@
+--TEST--
+Test oniguruma stack limit
+--SKIPIF--
+<?php extension_loaded('mbstring') or die('skip mbstring not available'); ?>
+--FILE--
+<?php
+function mb_trim( $string, $chars = "", $chars_array = array() )
+{
+ for( $x=0; $x<iconv_strlen( $chars ); $x++ ) $chars_array[] = preg_quote( iconv_substr( $chars, $x, 1 ) );
+ $encoded_char_list = implode( "|", array_merge( array( "\s","\t","\n","\r", "\0", "\x0B" ), $chars_array ) );
+
+ $string = mb_ereg_replace( "^($encoded_char_list)*", "", $string );
+ $string = mb_ereg_replace( "($encoded_char_list)*$", "", $string );
+ return $string;
+}
+
+ini_set('mbstring.regex_stack_limit', 10000);
+var_dump(mb_trim(str_repeat(' ', 10000)));
+
+echo 'OK';
+?>
+--EXPECTF--
+Warning: mb_ereg_replace(): mbregex search failure in php_mbereg_replace_exec(): match-stack limit over in %s on line %d
+string(0) ""
+OK
diff --git a/ext/mbstring/tests/php_gr_jp_10830.phpt b/ext/mbstring/tests/php_gr_jp_10830.phpt
index 99ff6594ee..3b8cb79cd1 100644
--- a/ext/mbstring/tests/php_gr_jp_10830.phpt
+++ b/ext/mbstring/tests/php_gr_jp_10830.phpt
@@ -12,6 +12,6 @@ $a="aaa\n<>";
var_dump( mb_ereg("^[^><]+$",$a) );
var_dump( !!preg_match("/^[^><]+$/",$a) );
?>
---EXPECTF--
+--EXPECT--
bool(false)
bool(false)
diff --git a/ext/mbstring/tests/php_gr_jp_dev_884-1.phpt b/ext/mbstring/tests/php_gr_jp_dev_884-1.phpt
index 4978d0ce57..b6c97b324a 100644
--- a/ext/mbstring/tests/php_gr_jp_dev_884-1.phpt
+++ b/ext/mbstring/tests/php_gr_jp_dev_884-1.phpt
@@ -11,6 +11,6 @@ set_time_limit(2);
var_dump(preg_replace("/.*/", "b", "a"));
var_dump(mb_ereg_replace(".*", "b", "a"));
?>
---EXPECTF--
+--EXPECT--
string(2) "bb"
string(2) "bb"
diff --git a/ext/mbstring/tests/php_gr_jp_dev_884-2.phpt b/ext/mbstring/tests/php_gr_jp_dev_884-2.phpt
index 2f74dff64b..7c4ebc9a4e 100644
--- a/ext/mbstring/tests/php_gr_jp_dev_884-2.phpt
+++ b/ext/mbstring/tests/php_gr_jp_dev_884-2.phpt
@@ -12,7 +12,7 @@ var_dump(preg_replace("/C?$/", "Z", "ABC"));
var_dump(mb_ereg_replace("C*$", "Z", "ABC"));
var_dump(preg_replace("/C*$/", "Z", "ABC"));
?>
---EXPECTF--
+--EXPECT--
string(4) "ABZZ"
string(4) "ABZZ"
string(4) "ABZZ"
diff --git a/ext/mbstring/tests/zend_multibyte-01.phpt b/ext/mbstring/tests/zend_multibyte-01.phpt
index f2403abcac..5802cf2f21 100644
--- a/ext/mbstring/tests/zend_multibyte-01.phpt
+++ b/ext/mbstring/tests/zend_multibyte-01.phpt
@@ -1,6 +1,7 @@
--TEST--
zend multibyte (1)
--SKIPIF--
+<?php require 'skipif.inc'; ?>
--INI--
zend.multibyte=On
zend.script_encoding=Shift_JIS
diff --git a/ext/mbstring/tests/zend_multibyte-02.phpt b/ext/mbstring/tests/zend_multibyte-02.phpt
index 7db444841e..6008be5a11 100644
--- a/ext/mbstring/tests/zend_multibyte-02.phpt
+++ b/ext/mbstring/tests/zend_multibyte-02.phpt
@@ -1,5 +1,7 @@
--TEST--
zend multibyte (2)
+--SKIPIF--
+<?php require 'skipif.inc'; ?>
--INI--
error_reporting=E_ALL & ~E_DEPRECATED
zend.multibyte=On
@@ -9,5 +11,5 @@ mbstring.internal_encoding=CP932
<?php
var_dump(bin2hex("テスト"));
?>
---EXPECTF--
+--EXPECT--
string(12) "836583588367"
diff --git a/ext/mbstring/tests/zend_multibyte-03.phpt b/ext/mbstring/tests/zend_multibyte-03.phpt
index 99c58bce70..b7e13d46ed 100644
--- a/ext/mbstring/tests/zend_multibyte-03.phpt
+++ b/ext/mbstring/tests/zend_multibyte-03.phpt
@@ -1,6 +1,7 @@
--TEST--
zend multibyte (3)
--SKIPIF--
+<?php require 'skipif.inc'; ?>
--INI--
zend.multibyte=On
zend.script_encoding=UTF-8
diff --git a/ext/mbstring/tests/zend_multibyte-04.phpt b/ext/mbstring/tests/zend_multibyte-04.phpt
index e7fdf81cdd..5cb3af3472 100644
--- a/ext/mbstring/tests/zend_multibyte-04.phpt
+++ b/ext/mbstring/tests/zend_multibyte-04.phpt
@@ -1,6 +1,7 @@
--TEST--
zend multibyte (4)
--SKIPIF--
+<?php require 'skipif.inc'; ?>
--INI--
zend.multibyte=On
zend.script_encoding=CP932
diff --git a/ext/mbstring/tests/zend_multibyte-05.phpt b/ext/mbstring/tests/zend_multibyte-05.phpt
index 3dd56d043d..4d0c236b7a 100644
--- a/ext/mbstring/tests/zend_multibyte-05.phpt
+++ b/ext/mbstring/tests/zend_multibyte-05.phpt
@@ -1,6 +1,7 @@
--TEST--
zend multibyte (5)
--SKIPIF--
+<?php require 'skipif.inc'; ?>
--INI--
zend.multibyte=On
zend.script_encoding=EUC-JP
diff --git a/ext/mbstring/tests/zend_multibyte-06.phpt b/ext/mbstring/tests/zend_multibyte-06.phpt
index 7eeac1d353..c75c0b8cb2 100644
--- a/ext/mbstring/tests/zend_multibyte-06.phpt
+++ b/ext/mbstring/tests/zend_multibyte-06.phpt
@@ -1,5 +1,7 @@
--TEST--
zend multibyte (6)
+--SKIPIF--
+<?php require 'skipif.inc'; ?>
--INI--
zend.multibyte=On
zend.script_encoding=EUC-JP
@@ -9,5 +11,5 @@ mbstring.internal_encoding=CP932
declare(encoding="UTF-8");
var_dump(bin2hex("テスト"));
?>
---EXPECTF--
+--EXPECT--
string(12) "836583588367"
diff --git a/ext/mbstring/tests/zend_multibyte-07.phpt b/ext/mbstring/tests/zend_multibyte-07.phpt
index 685c6f1f04..b81104ca3e 100644
--- a/ext/mbstring/tests/zend_multibyte-07.phpt
+++ b/ext/mbstring/tests/zend_multibyte-07.phpt
@@ -1,5 +1,7 @@
--TEST--
zend multibyte (7)
+--SKIPIF--
+<?php require 'skipif.inc'; ?>
--INI--
error_reporting=E_ALL & ~E_DEPRECATED
zend.multibyte=On
diff --git a/ext/mbstring/tests/zend_multibyte-08.phpt b/ext/mbstring/tests/zend_multibyte-08.phpt
index 9e5b75eadd..1030dfdc91 100644
--- a/ext/mbstring/tests/zend_multibyte-08.phpt
+++ b/ext/mbstring/tests/zend_multibyte-08.phpt
@@ -1,5 +1,7 @@
--TEST--
zend multibyte (8)
+--SKIPIF--
+<?php require 'skipif.inc'; ?>
--INI--
zend.multibyte=On
zend.script_encoding=ISO-8859-1
diff --git a/ext/mbstring/tests/zend_multibyte-09.phpt b/ext/mbstring/tests/zend_multibyte-09.phpt
index f9b8bf734f..17d5840e47 100644
--- a/ext/mbstring/tests/zend_multibyte-09.phpt
+++ b/ext/mbstring/tests/zend_multibyte-09.phpt
@@ -1,5 +1,7 @@
--TEST--
zend multibyte (9)
+--SKIPIF--
+<?php require 'skipif.inc'; ?>
--INI--
error_reporting=E_ALL & ~E_DEPRECATED
zend.multibyte=On
diff --git a/ext/mbstring/tests/zend_multibyte-10.phpt b/ext/mbstring/tests/zend_multibyte-10.phpt
index 138b4899fe..498170e747 100644
--- a/ext/mbstring/tests/zend_multibyte-10.phpt
+++ b/ext/mbstring/tests/zend_multibyte-10.phpt
@@ -1,5 +1,7 @@
--TEST--
zend multibyte (10)
+--SKIPIF--
+<?php require 'skipif.inc'; ?>
--INI--
zend.multibyte=1
--FILE--
@@ -8,5 +10,5 @@ declare(encoding="ISO-8859-15");
declare(encoding="ISO-8859-1");
echo "ok\n";
?>
---EXPECTF--
+--EXPECT--
ok
diff --git a/ext/mbstring/tests/zend_multibyte-11.phpt b/ext/mbstring/tests/zend_multibyte-11.phpt
index ca86951d1a..c5e02eeae3 100644
--- a/ext/mbstring/tests/zend_multibyte-11.phpt
+++ b/ext/mbstring/tests/zend_multibyte-11.phpt
@@ -1,5 +1,7 @@
--TEST--
zend multibyte (11)
+--SKIPIF--
+<?php require 'skipif.inc'; ?>
--INI--
zend.multibyte=1
--FILE--
diff --git a/ext/mbstring/tests/zend_multibyte-12.phpt b/ext/mbstring/tests/zend_multibyte-12.phpt
index bbfa25d97f..844e3bc499 100644
--- a/ext/mbstring/tests/zend_multibyte-12.phpt
+++ b/ext/mbstring/tests/zend_multibyte-12.phpt
@@ -1,5 +1,7 @@
--TEST--
zend multibyte (12)
+--SKIPIF--
+<?php require 'skipif.inc'; ?>
--INI--
zend.multibyte=1
--FILE--
diff --git a/ext/mbstring/tests/zend_multibyte-13.phpt b/ext/mbstring/tests/zend_multibyte-13.phpt
index 6eaef985f5..f3a18fe481 100644
--- a/ext/mbstring/tests/zend_multibyte-13.phpt
+++ b/ext/mbstring/tests/zend_multibyte-13.phpt
@@ -1,6 +1,7 @@
--TEST--
zend multibyte (13)
--SKIPIF--
+<?php require 'skipif.inc'; ?>
--INI--
zend.multibyte=On
zend.script_encoding=UTF-8
diff --git a/ext/mbstring/tests/zend_multibyte-14.phpt b/ext/mbstring/tests/zend_multibyte-14.phpt
index 98c2f87e25..36c7c5355c 100644
--- a/ext/mbstring/tests/zend_multibyte-14.phpt
+++ b/ext/mbstring/tests/zend_multibyte-14.phpt
@@ -1,6 +1,7 @@
--TEST--
zend multibyte (14)
--SKIPIF--
+<?php require 'skipif.inc'; ?>
--INI--
zend.multibyte=On
zend.script_encoding=UTF-8
diff --git a/ext/mbstring/tests/zend_multibyte-15.phpt b/ext/mbstring/tests/zend_multibyte-15.phpt
index 3a9339ffb8..b24ed25fb2 100644
--- a/ext/mbstring/tests/zend_multibyte-15.phpt
+++ b/ext/mbstring/tests/zend_multibyte-15.phpt
@@ -1,5 +1,7 @@
--TEST--
zend multibyte (15)
+--SKIPIF--
+<?php require 'skipif.inc'; ?>
--INI--
zend.multibyte=1
--FILE--
@@ -11,6 +13,6 @@ declare(encoding="UTF-8") {
echo "ok\n";
}
?>
---EXPECTF--
+--EXPECT--
ok
ok
diff --git a/ext/mbstring/tests/zend_multibyte-16.phpt b/ext/mbstring/tests/zend_multibyte-16.phpt
index f5d89c4357..a9b0920184 100644
--- a/ext/mbstring/tests/zend_multibyte-16.phpt
+++ b/ext/mbstring/tests/zend_multibyte-16.phpt
@@ -1,5 +1,7 @@
--TEST--
zend multibyte (16)
+--SKIPIF--
+<?php require 'skipif.inc'; ?>
--INI--
zend.multibyte=1
--FILE--
@@ -9,6 +11,6 @@ declare(encoding="ISO-8859-15") {
}
echo "ok\n";
?>
---EXPECTF--
+--EXPECT--
ok
ok