]> granicus.if.org Git - php/commitdiff
Adapt test cases for Oniguruma 6.9.4
authorChristoph M. Becker <cmbecker69@gmx.de>
Fri, 29 Nov 2019 15:47:10 +0000 (16:47 +0100)
committerChristoph M. Becker <cmbecker69@gmx.de>
Fri, 29 Nov 2019 15:59:19 +0000 (16:59 +0100)
Apparently, bug 78633 has now really been fixed; the former fix only
catered to the buffer overflow, but yielded a wrong result.  Also,
the order of the named captures has been fixed.

ext/mbstring/tests/bug78633.phpt
ext/mbstring/tests/mb_ereg_search_named_subpatterns_1.phpt [moved from ext/mbstring/tests/mb_ereg_search_named_subpatterns.phpt with 87% similarity]
ext/mbstring/tests/mb_ereg_search_named_subpatterns_2.phpt [new file with mode: 0644]

index 3ff69a1867e5dfea168a6805190f6ca4603ee4d6..a1d6dd5602f214b894596bd5e9e2cf7c94678214 100644 (file)
@@ -7,7 +7,12 @@ if (!function_exists('mb_eregi')) die('skip mb_eregi function not available');
 ?>
 --FILE--
 <?php
-var_dump(mb_eregi(".+Isssǰ", ".+Isssǰ"));
+$res = mb_eregi(".+Isssǰ", ".+Isssǰ");
+if ($res === 1 || $res === false) {
+    echo "ok\n";
+} else {
+    var_dump($res);
+}
 ?>
 --EXPECT--
-bool(false)
+ok
similarity index 87%
rename from ext/mbstring/tests/mb_ereg_search_named_subpatterns.phpt
rename to ext/mbstring/tests/mb_ereg_search_named_subpatterns_1.phpt
index f899e9beebddd6952c1f60f5258a91d64cefc789..f6ab8c0c36219791ac98bb47c3cf8d63e1a68f7b 100644 (file)
@@ -4,6 +4,7 @@ Testing mb_ereg_search() named capture groups
 <?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");
+version_compare(MB_ONIGURUMA_VERSION, '6.9.4', '<') or die("skip requires oniguruma < 6.9.4");
 ?>
 --FILE--
 <?php
diff --git a/ext/mbstring/tests/mb_ereg_search_named_subpatterns_2.phpt b/ext/mbstring/tests/mb_ereg_search_named_subpatterns_2.phpt
new file mode 100644 (file)
index 0000000..78332da
--- /dev/null
@@ -0,0 +1,32 @@
+--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");
+version_compare(MB_ONIGURUMA_VERSION, '6.9.4', '>=') or die("skip requires oniguruma >= 6.9.4");
+?>
+--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) "?"
+  ["wsp"]=>
+  string(2) "  "
+  ["word"]=>
+  string(6) "中国"
+  ["punct"]=>
+  string(3) "?"
+}