MFB: new tests

#they pass here, but segfault on php 5.2/pcre 7.0
This commit is contained in:
Nuno Lopes 2007-06-15 12:04:26 +00:00
parent e6209db14c
commit c449991a3e
3 changed files with 158 additions and 0 deletions

View File

@ -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] =>
)

View File

@ -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>

View File

@ -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
)
)