mirror of
https://github.com/php/php-src.git
synced 2025-08-20 01:14:28 +02:00
add tests
This commit is contained in:
parent
65c046b200
commit
5a9f40a46a
2 changed files with 74 additions and 0 deletions
29
Zend/tests/bug38779.phpt
Normal file
29
Zend/tests/bug38779.phpt
Normal file
|
@ -0,0 +1,29 @@
|
|||
--TEST--
|
||||
Bug #38779 (engine crashes when require()'ing file with syntax error through userspace stream wrapper)
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class Loader {
|
||||
private $position;
|
||||
private $data;
|
||||
public function stream_open($path, $mode, $options, &$opened_path) {
|
||||
$this->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
|
45
Zend/tests/bug38779_1.phpt
Normal file
45
Zend/tests/bug38779_1.phpt
Normal file
|
@ -0,0 +1,45 @@
|
|||
--TEST--
|
||||
Bug #38779 (engine crashes when require()'ing file with syntax error through userspace stream wrapper)
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class Loader {
|
||||
private $position;
|
||||
private $data;
|
||||
public function stream_open($path, $mode, $options, &$opened_path) {
|
||||
$this->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!"
|
Loading…
Add table
Add a link
Reference in a new issue