summaryrefslogtreecommitdiff
path: root/ext/xml/tests/bug30266.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'ext/xml/tests/bug30266.phpt')
-rw-r--r--ext/xml/tests/bug30266.phpt52
1 files changed, 52 insertions, 0 deletions
diff --git a/ext/xml/tests/bug30266.phpt b/ext/xml/tests/bug30266.phpt
new file mode 100644
index 0000000..0a3a5ca
--- /dev/null
+++ b/ext/xml/tests/bug30266.phpt
@@ -0,0 +1,52 @@
+--TEST--
+Bug #30266 (Invalid opcode 137/1/8)
+--SKIPIF--
+<?php
+require_once("skipif.inc");
+?>
+--FILE--
+<?php
+/*
+
+Currently (Feb 10, 2005) CVS HEAD fails with the following message:
+
+Fatal error: Invalid opcode 137/1/8. in /home/hartmut/projects/php/dev/head/ext/xml/tests/bug30266.php on line 22
+
+*/
+class XML_Parser
+{
+ public $dummy = "a";
+
+ function parse($data)
+ {
+ $parser = xml_parser_create();
+
+ xml_set_object($parser, $this);
+
+ xml_set_element_handler($parser, 'startHandler', 'endHandler');
+
+ xml_parse($parser, $data, true);
+
+ xml_parser_free($parser);
+ }
+
+ function startHandler($XmlParser, $tag, $attr)
+ {
+ $this->dummy = "b";
+ throw new Exception("ex");
+ }
+
+ function endHandler($XmlParser, $tag)
+ {
+ }
+}
+
+$p1 = new Xml_Parser();
+try {
+ $p1->parse('<tag1><tag2></tag2></tag1>');
+} catch (Exception $e) {
+ echo "OK\n";
+}
+?>
+--EXPECT--
+OK