summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNuno Lopes <nlopess@php.net>2007-06-15 11:57:08 +0000
committerNuno Lopes <nlopess@php.net>2007-06-15 11:57:08 +0000
commit17db5db75992b14f8f7b4cfb2ac740d402c9619a (patch)
tree90333378c1343ec4924247a6250f3bcab1982ab6
parente1f08c829781a4eae7dbed6977fd1fcd9a5090fc (diff)
downloadphp-git-17db5db75992b14f8f7b4cfb2ac740d402c9619a.tar.gz
add tests for pcre 7.0 regression
update to pcre 7.2 will follow soon
-rw-r--r--ext/pcre/tests/bug41050.phpt26
-rw-r--r--ext/pcre/tests/bug41148.phpt50
-rw-r--r--ext/pcre/tests/bug41638.phpt82
3 files changed, 158 insertions, 0 deletions
diff --git a/ext/pcre/tests/bug41050.phpt b/ext/pcre/tests/bug41050.phpt
new file mode 100644
index 0000000000..ff58e111ff
--- /dev/null
+++ b/ext/pcre/tests/bug41050.phpt
@@ -0,0 +1,26 @@
+--TEST--
+Bug #41050 (pcre 7.0 regression)
+--FILE--
+<?php
+// by legolas558
+
+$regex = '/(insert|drop|create|select|delete|update)([^;\']*('."('[^']*')+".')?)*(;|$)/i';
+
+$sql = 'SELECT * FROM #__components';
+
+if (preg_match($regex,$sql, $m)) echo 'matched';
+else echo 'not matched';
+
+print_r($m);
+
+?>
+--EXPECT--
+matchedArray
+(
+ [0] => SELECT * FROM #__components
+ [1] => SELECT
+ [2] =>
+ [3] =>
+ [4] =>
+ [5] =>
+)
diff --git a/ext/pcre/tests/bug41148.phpt b/ext/pcre/tests/bug41148.phpt
new file mode 100644
index 0000000000..f0a7937dfb
--- /dev/null
+++ b/ext/pcre/tests/bug41148.phpt
@@ -0,0 +1,50 @@
+--TEST--
+Bug #41148 (pcre 7.0 regression)
+--FILE--
+<?php
+
+ $letexte="<br><br>";
+ $ligne_horizontale = $puce = $debut_intertitre = $fin_intertitre = '';
+
+ $cherche1 = array(
+ /* 0 */ "/\n(----+|____+)/S",
+ /* 1 */ "/\n-- */S",
+ /* 2 */ "/\n- */S",
+ /* 3 */ "/\n_ +/S",
+ /* 4 */ "/(^|[^{])[{][{][{]/S",
+ /* 5 */ "/[}][}][}]($|[^}])/S",
+ /* 6 */ "/(( *)\n){2,}(<br[[:space:]]*\/?".">)?/S",
+ /* 7 */ "/[{][{]/S",
+ /* 8 */ "/[}][}]/S",
+ /* 9 */ "/[{]/S",
+ /* 10 */ "/[}]/S",
+ /* 11 */ "/(<br[[:space:]]*\/?".">){2,}/S",
+ /* 12 */ "/<p>([\n]*(<br[[:space:]]*\/?".">)*)*/S",
+ /* 13 */ "/<quote>/S",
+ /* 14 */ "/<\/quote>/S"
+ );
+ $remplace1 = array(
+ /* 0 */ "\n\n$ligne_horizontale\n\n",
+ /* 1 */ "\n<br />&mdash;&nbsp;",
+ /* 2 */ "\n<br />$puce&nbsp;",
+ /* 3 */ "\n<br />",
+ /* 4 */ "\$1\n\n$debut_intertitre",
+ /* 5 */ "$fin_intertitre\n\n\$1",
+ /* 6 */ "<p>",
+ /* 7 */ "<strong class=\"spip\">",
+ /* 8 */ "</strong>",
+ /* 9 */ "<i class=\"spip\">",
+ /* 10 */ "</i>",
+ /* 11 */ "<p>",
+ /* 12 */ "<p>",
+ /* 13 */ "<blockquote class=\"spip\"><p>",
+ /* 14 */ "</blockquote><p>"
+ );
+ $letexte = preg_replace($cherche1, $remplace1, $letexte);
+ $letexte = preg_replace("@^ <br />@S", "", $letexte);
+
+ print $letexte;
+
+?>
+--EXPECT--
+<p>
diff --git a/ext/pcre/tests/bug41638.phpt b/ext/pcre/tests/bug41638.phpt
new file mode 100644
index 0000000000..8c907f9903
--- /dev/null
+++ b/ext/pcre/tests/bug41638.phpt
@@ -0,0 +1,82 @@
+--TEST--
+Bug #41638 (pcre 7.0 regression)
+--FILE--
+<?php
+$str = "repeater id='loopt' dataSrc=subject colums=2";
+
+preg_match_all("/(['\"])((.*(\\\\\\1)*)*)\\1/sU",$str,$str_instead);
+print_r($str_instead);
+
+// these two are from Magnus Holmgren (extracted from a pcre-dev mailing list post)
+preg_match_all("/(['\"])((?:\\\\\\1|.)*)\\1/sU", $str, $str_instead);
+print_r($str_instead);
+
+preg_match_all("/(['\"])(.*)(?<!\\\\)\\1/sU", $str, $str_instead);
+print_r($str_instead);
+
+?>
+--EXPECT--
+Array
+(
+ [0] => Array
+ (
+ [0] => 'loopt'
+ )
+
+ [1] => Array
+ (
+ [0] => '
+ )
+
+ [2] => Array
+ (
+ [0] => loopt
+ )
+
+ [3] => Array
+ (
+ [0] => t
+ )
+
+ [4] => Array
+ (
+ [0] =>
+ )
+
+)
+Array
+(
+ [0] => Array
+ (
+ [0] => 'loopt'
+ )
+
+ [1] => Array
+ (
+ [0] => '
+ )
+
+ [2] => Array
+ (
+ [0] => loopt
+ )
+
+)
+Array
+(
+ [0] => Array
+ (
+ [0] => 'loopt'
+ )
+
+ [1] => Array
+ (
+ [0] => '
+ )
+
+ [2] => Array
+ (
+ [0] => loopt
+ )
+
+)