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>