From: Antony Dovgal Date: Mon, 11 Sep 2006 14:13:05 +0000 (+0000) Subject: add tests X-Git-Tag: RELEASE_1_0_0RC1~1706 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=3aeebd120f626d931f18f6e84722e041a62eac06;p=php add tests --- diff --git a/Zend/tests/bug38779.phpt b/Zend/tests/bug38779.phpt new file mode 100644 index 0000000000..023a048b9f --- /dev/null +++ b/Zend/tests/bug38779.phpt @@ -0,0 +1,29 @@ +--TEST-- +Bug #38779 (engine crashes when require()'ing file with syntax error through userspace stream wrapper) +--FILE-- +data = '<' . "?php \n\"\";ll l\n ?" . '>'; + $this->position = 0; + return true; + } + function stream_read($count) { + $ret = substr($this->data, $this->position, $count); + $this->position += strlen($ret); + return $ret; + } + function stream_eof() { + return $this->position >= strlen($this->data); + } +} +stream_wrapper_register('Loader', 'Loader'); +require 'Loader://qqq.php'; + +echo "Done\n"; +?> +--EXPECTF-- +Parse error: syntax error, unexpected T_STRING in Loader://qqq.php on line %d diff --git a/Zend/tests/bug38779_1.phpt b/Zend/tests/bug38779_1.phpt new file mode 100644 index 0000000000..a865323e8e --- /dev/null +++ b/Zend/tests/bug38779_1.phpt @@ -0,0 +1,45 @@ +--TEST-- +Bug #38779 (engine crashes when require()'ing file with syntax error through userspace stream wrapper) +--FILE-- +data = '<' . "?php \n\"\";ll l\n ?" . '>'; + $this->position = 0; + return true; + } + function stream_read($count) { + $ret = substr($this->data, $this->position, $count); + $this->position += strlen($ret); + return $ret; + } + function stream_eof() { + return $this->position >= strlen($this->data); + } + function stream_flush() { + @unlink(dirname(__FILE__)."/bug38779.txt"); + var_dump("flush!"); + } + function stream_close() { + var_dump("close!"); + } +} +stream_wrapper_register('Loader', 'Loader'); +$fp = fopen ('Loader://qqq.php', 'r'); + +$filename = dirname(__FILE__)."/bug38779.txt"; +$fp1 = fopen($filename, "w"); +fwrite($fp1, "<"."?php blah blah?".">"); +fclose($fp1); + +include $filename; + +echo "Done\n"; +?> +--EXPECTF-- +Parse error: syntax error, unexpected T_STRING in %s on line %d +string(6) "flush!" +string(6) "close!"