Annotation of embedaddon/php/Zend/tests/bug38779_1.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: Bug #38779 (engine crashes when require()'ing file with syntax error through userspace stream wrapper)
3: --FILE--
4: <?php
5:
6: class Loader {
7: private $position;
8: private $data;
9: public function stream_open($path, $mode, $options, &$opened_path) {
10: $this->data = '<' . "?php \n\"\";ll l\n ?" . '>';
11: $this->position = 0;
12: return true;
13: }
14: function stream_read($count) {
15: $ret = substr($this->data, $this->position, $count);
16: $this->position += strlen($ret);
17: return $ret;
18: }
19: function stream_eof() {
20: return $this->position >= strlen($this->data);
21: }
22: function stream_flush() {
23: @unlink(dirname(__FILE__)."/bug38779.txt");
24: var_dump("flush!");
25: }
26: function stream_close() {
27: var_dump("close!");
28: }
29: }
30: stream_wrapper_register('Loader', 'Loader');
31: $fp = fopen ('Loader://qqq.php', 'r');
32:
33: $filename = dirname(__FILE__)."/bug38779.txt";
34: $fp1 = fopen($filename, "w");
35: fwrite($fp1, "<"."?php blah blah?".">");
36: fclose($fp1);
37:
38: include $filename;
39:
40: echo "Done\n";
41: ?>
42: --EXPECTF--
43: Parse error: %s error%sin %s on line %d
44: string(6) "flush!"
45: string(6) "close!"
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>