xref: /PHP-7.3/Zend/tests/bug38779.phpt (revision 782352c5)
1--TEST--
2Bug #38779 (engine crashes when require()'ing file with syntax error through userspace stream wrapper)
3--FILE--
4<?php
5
6class 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_stat() {
23		return array('size' => strlen($this->data));
24	}
25}
26stream_wrapper_register('Loader', 'Loader');
27require 'Loader://qqq.php';
28
29echo "Done\n";
30?>
31--EXPECTF--
32Parse error: %s error%sin Loader://qqq.php on line %d
33