From: Christoph M. Becker Date: Sat, 23 May 2015 17:28:14 +0000 (+0200) Subject: added failing tests for bug #61780 X-Git-Tag: php-7.2.0alpha1~625^2~3 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=911366eb5f884413b5b285c270b1dfda34675459;p=php added failing tests for bug #61780 --- diff --git a/ext/pcre/tests/bug61780_1.phpt b/ext/pcre/tests/bug61780_1.phpt new file mode 100644 index 0000000000..d8e35c5c21 --- /dev/null +++ b/ext/pcre/tests/bug61780_1.phpt @@ -0,0 +1,194 @@ +--TEST-- +Bug #61780 (Inconsistent PCRE captures in match results): numeric subpatterns +--FILE-- + +--EXPECT-- +array ( + 0 => '23', + 1 => NULL, + 2 => '2', +) + +array ( + 0 => + array ( + 0 => '23', + 1 => 0, + ), + 1 => + array ( + 0 => NULL, + 1 => -1, + ), + 2 => + array ( + 0 => '2', + 1 => 0, + ), +) + +array ( + 0 => + array ( + 0 => '1', + 1 => '23', + 2 => '45', + 3 => '6', + ), + 1 => + array ( + 0 => NULL, + 1 => NULL, + 2 => '4', + 3 => NULL, + ), + 2 => + array ( + 0 => NULL, + 1 => '2', + 2 => NULL, + 3 => NULL, + ), +) + +array ( + 0 => + array ( + 0 => + array ( + 0 => '1', + 1 => 0, + ), + 1 => + array ( + 0 => '23', + 1 => 1, + ), + 2 => + array ( + 0 => '45', + 1 => 3, + ), + 3 => + array ( + 0 => '6', + 1 => 5, + ), + ), + 1 => + array ( + 0 => NULL, + 1 => + array ( + 0 => NULL, + 1 => -1, + ), + 2 => + array ( + 0 => '4', + 1 => 3, + ), + 3 => NULL, + ), + 2 => + array ( + 0 => NULL, + 1 => + array ( + 0 => '2', + 1 => 1, + ), + 2 => NULL, + 3 => NULL, + ), +) + +array ( + 0 => + array ( + 0 => '1', + ), + 1 => + array ( + 0 => '23', + 1 => NULL, + 2 => '2', + ), + 2 => + array ( + 0 => '45', + 1 => '4', + ), + 3 => + array ( + 0 => '6', + ), +) + +array ( + 0 => + array ( + 0 => + array ( + 0 => '1', + 1 => 0, + ), + ), + 1 => + array ( + 0 => + array ( + 0 => '23', + 1 => 1, + ), + 1 => + array ( + 0 => NULL, + 1 => -1, + ), + 2 => + array ( + 0 => '2', + 1 => 1, + ), + ), + 2 => + array ( + 0 => + array ( + 0 => '45', + 1 => 3, + ), + 1 => + array ( + 0 => '4', + 1 => 3, + ), + ), + 3 => + array ( + 0 => + array ( + 0 => '6', + 1 => 5, + ), + ), +) diff --git a/ext/pcre/tests/bug61780_2.phpt b/ext/pcre/tests/bug61780_2.phpt new file mode 100644 index 0000000000..375c02f5d2 --- /dev/null +++ b/ext/pcre/tests/bug61780_2.phpt @@ -0,0 +1,264 @@ +--TEST-- +Bug #61780 (Inconsistent PCRE captures in match results): named subpatterns +--FILE-- +4)?(?2)?\d/', '23456', $matches); +var_export($matches); +echo "\n\n"; +preg_match('/(?4)?(?2)?\d/', '23456', $matches, PREG_OFFSET_CAPTURE); +var_export($matches); +echo "\n\n"; +preg_match_all('/(?4)?(?2)?\d/', '123456', $matches); +var_export($matches); +echo "\n\n"; +preg_match_all('/(?4)?(?2)?\d/', '123456', $matches, PREG_OFFSET_CAPTURE); +var_export($matches); +echo "\n\n"; +preg_match_all('/(?4)?(?2)?\d/', '123456', $matches, PREG_SET_ORDER); +var_export($matches); +echo "\n\n"; +preg_match_all('/(?4)?(?2)?\d/', '123456', $matches, PREG_SET_ORDER | PREG_OFFSET_CAPTURE); +var_export($matches); +?> +--EXPECT-- +array ( + 0 => '23', + 'a' => NULL, + 1 => NULL, + 'b' => '2', + 2 => '2', +) + +array ( + 0 => + array ( + 0 => '23', + 1 => 0, + ), + 'a' => + array ( + 0 => NULL, + 1 => -1, + ), + 1 => + array ( + 0 => NULL, + 1 => -1, + ), + 'b' => + array ( + 0 => '2', + 1 => 0, + ), + 2 => + array ( + 0 => '2', + 1 => 0, + ), +) + +array ( + 0 => + array ( + 0 => '1', + 1 => '23', + 2 => '45', + 3 => '6', + ), + 'a' => + array ( + 0 => NULL, + 1 => NULL, + 2 => '4', + 3 => NULL, + ), + 1 => + array ( + 0 => NULL, + 1 => NULL, + 2 => '4', + 3 => NULL, + ), + 'b' => + array ( + 0 => NULL, + 1 => '2', + 2 => NULL, + 3 => NULL, + ), + 2 => + array ( + 0 => NULL, + 1 => '2', + 2 => NULL, + 3 => NULL, + ), +) + +array ( + 0 => + array ( + 0 => + array ( + 0 => '1', + 1 => 0, + ), + 1 => + array ( + 0 => '23', + 1 => 1, + ), + 2 => + array ( + 0 => '45', + 1 => 3, + ), + 3 => + array ( + 0 => '6', + 1 => 5, + ), + ), + 'a' => + array ( + 0 => NULL, + 1 => + array ( + 0 => NULL, + 1 => -1, + ), + 2 => + array ( + 0 => '4', + 1 => 3, + ), + 3 => NULL, + ), + 1 => + array ( + 0 => NULL, + 1 => + array ( + 0 => NULL, + 1 => -1, + ), + 2 => + array ( + 0 => '4', + 1 => 3, + ), + 3 => NULL, + ), + 'b' => + array ( + 0 => NULL, + 1 => + array ( + 0 => '2', + 1 => 1, + ), + 2 => NULL, + 3 => NULL, + ), + 2 => + array ( + 0 => NULL, + 1 => + array ( + 0 => '2', + 1 => 1, + ), + 2 => NULL, + 3 => NULL, + ), +) + +array ( + 0 => + array ( + 0 => '1', + ), + 1 => + array ( + 0 => '23', + 'a' => NULL, + 1 => NULL, + 'b' => '2', + 2 => '2', + ), + 2 => + array ( + 0 => '45', + 'a' => '4', + 1 => '4', + ), + 3 => + array ( + 0 => '6', + ), +) + +array ( + 0 => + array ( + 0 => + array ( + 0 => '1', + 1 => 0, + ), + ), + 1 => + array ( + 0 => + array ( + 0 => '23', + 1 => 1, + ), + 'a' => + array ( + 0 => NULL, + 1 => -1, + ), + 1 => + array ( + 0 => NULL, + 1 => -1, + ), + 'b' => + array ( + 0 => '2', + 1 => 1, + ), + 2 => + array ( + 0 => '2', + 1 => 1, + ), + ), + 2 => + array ( + 0 => + array ( + 0 => '45', + 1 => 3, + ), + 'a' => + array ( + 0 => '4', + 1 => 3, + ), + 1 => + array ( + 0 => '4', + 1 => 3, + ), + ), + 3 => + array ( + 0 => + array ( + 0 => '6', + 1 => 5, + ), + ), +)