]> granicus.if.org Git - php/commitdiff
MFB: new tests
authorNuno Lopes <nlopess@php.net>
Fri, 8 Dec 2006 12:15:21 +0000 (12:15 +0000)
committerNuno Lopes <nlopess@php.net>
Fri, 8 Dec 2006 12:15:21 +0000 (12:15 +0000)
ext/pcre/tests/bug21758.phpt [new file with mode: 0644]
ext/pcre/tests/bug27011.phpt [new file with mode: 0644]
ext/pcre/tests/bug38600.phpt [new file with mode: 0644]

diff --git a/ext/pcre/tests/bug21758.phpt b/ext/pcre/tests/bug21758.phpt
new file mode 100644 (file)
index 0000000..112f92f
--- /dev/null
@@ -0,0 +1,28 @@
+--TEST--
+Bug #27011: preg_replace_callback() not working with class methods
+--FILE--
+<?php
+  class Foo {
+    function foo() {
+      
+      $s = 'preg_replace() is broken';
+      
+      var_dump(preg_replace_callback(
+              '/broken/',
+              array(&$this, 'bar'),
+              $s
+           ));
+    }
+    
+    function bar() {
+      return 'working';
+    }
+    
+  } // of Foo
+
+  $o = new Foo;
+?>
+--EXPECT--
+string(25) "preg_replace() is working"
+--UEXPECT--
+unicode(25) "preg_replace() is working"
diff --git a/ext/pcre/tests/bug27011.phpt b/ext/pcre/tests/bug27011.phpt
new file mode 100644 (file)
index 0000000..9a2434f
--- /dev/null
@@ -0,0 +1,13 @@
+--TEST--
+Bug #27011: segfault in preg_match_all()
+--FILE--
+<?php
+
+var_dump(preg_match_all('|(\w+)://([^\s"<]*[\w+#?/&=])|', "This is a text string", $matches, PREG_SET_ORDER));
+var_dump($matches);
+
+?>
+--EXPECT--
+int(0)
+array(0) {
+}
diff --git a/ext/pcre/tests/bug38600.phpt b/ext/pcre/tests/bug38600.phpt
new file mode 100644 (file)
index 0000000..8e1f78c
--- /dev/null
@@ -0,0 +1,14 @@
+--TEST--
+Bug #38600: infinite loop in pcre with extended class
+--FILE--
+<?php
+$foo = 'bla bla bla';
+
+var_dump(preg_match('/(?<!\w)(0x[\p{N}]+[lL]?|[\p{Nd}]+(e[\p{Nd}]*)?[lLdDfF]?)(?!\w)/', $foo, $m));
+var_dump($m);
+
+?>
+--EXPECT--
+int(0)
+array(0) {
+}