Annotation of embedaddon/php/ext/xsl/tests/bug49634.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: bug #49634 (Segfault throwing an exception in a XSL registered function)
                      3: --SKIPIF--
                      4: <?php
                      5: extension_loaded("xsl") or die("skip need ext/xsl");
                      6: ?>
                      7: --FILE--
                      8: <?php
                      9: 
                     10: $sXml = <<<XML
                     11: <?xml version="1.0" encoding="UTF-8" ?>
                     12: <root>
                     13:        test
                     14: </root>
                     15: XML;
                     16: 
                     17: $cDIR = __DIR__;
                     18: $sXsl = <<<XSL
                     19: <xsl:stylesheet version="1.0"
                     20:                 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                     21:                 xmlns:ext="http://php.net/xsl"
                     22:                 xsl:extension-element-prefixes="ext"
                     23:                 exclude-result-prefixes="ext">
                     24:        <xsl:output encoding="UTF-8" indent="yes" method="xml" />
                     25:        <xsl:template match="/">
                     26:                <xsl:value-of select="ext:function('testFunction', document('$cDIR/bug49634.xml')/root)"/>
                     27:        </xsl:template>
                     28: </xsl:stylesheet>
                     29: XSL;
                     30: 
                     31: function testFunction($a)
                     32: {
                     33:                throw new Exception('Test exception.');
                     34: }
                     35: 
                     36: $domXml = new DOMDocument;
                     37: $domXml->loadXML($sXml);
                     38: $domXsl = new DOMDocument;
                     39: $domXsl->loadXML($sXsl);
                     40: 
                     41: for ($i = 0; $i < 10; $i++)
                     42: {
                     43:        $xsltProcessor = new XSLTProcessor();
                     44:        $xsltProcessor->registerPHPFunctions(array('testFunction'));
                     45:        $xsltProcessor->importStyleSheet($domXsl);
                     46:        try {
                     47:                @$xsltProcessor->transformToDoc($domXml);
                     48:        } catch (Exception $e) {
                     49:                echo $e,"\n";
                     50:        }
                     51: }
                     52: ?>
                     53: ===DONE===
                     54: --EXPECTF--
                     55: exception 'Exception' with message 'Test exception.' in %s:%d
                     56: Stack trace:
                     57: #0 [internal function]: testFunction(Array)
                     58: #1 %s(%d): XSLTProcessor->transformToDoc(Object(DOMDocument))
                     59: #2 {main}
                     60: exception 'Exception' with message 'Test exception.' in %s:%d
                     61: Stack trace:
                     62: #0 [internal function]: testFunction(Array)
                     63: #1 %s(%d): XSLTProcessor->transformToDoc(Object(DOMDocument))
                     64: #2 {main}
                     65: exception 'Exception' with message 'Test exception.' in %s:%d
                     66: Stack trace:
                     67: #0 [internal function]: testFunction(Array)
                     68: #1 %s(%d): XSLTProcessor->transformToDoc(Object(DOMDocument))
                     69: #2 {main}
                     70: exception 'Exception' with message 'Test exception.' in %s:%d
                     71: Stack trace:
                     72: #0 [internal function]: testFunction(Array)
                     73: #1 %s(%d): XSLTProcessor->transformToDoc(Object(DOMDocument))
                     74: #2 {main}
                     75: exception 'Exception' with message 'Test exception.' in %s:%d
                     76: Stack trace:
                     77: #0 [internal function]: testFunction(Array)
                     78: #1 %s(%d): XSLTProcessor->transformToDoc(Object(DOMDocument))
                     79: #2 {main}
                     80: exception 'Exception' with message 'Test exception.' in %s:%d
                     81: Stack trace:
                     82: #0 [internal function]: testFunction(Array)
                     83: #1 %s(%d): XSLTProcessor->transformToDoc(Object(DOMDocument))
                     84: #2 {main}
                     85: exception 'Exception' with message 'Test exception.' in %s:%d
                     86: Stack trace:
                     87: #0 [internal function]: testFunction(Array)
                     88: #1 %s(%d): XSLTProcessor->transformToDoc(Object(DOMDocument))
                     89: #2 {main}
                     90: exception 'Exception' with message 'Test exception.' in %s:%d
                     91: Stack trace:
                     92: #0 [internal function]: testFunction(Array)
                     93: #1 %s(%d): XSLTProcessor->transformToDoc(Object(DOMDocument))
                     94: #2 {main}
                     95: exception 'Exception' with message 'Test exception.' in %s:%d
                     96: Stack trace:
                     97: #0 [internal function]: testFunction(Array)
                     98: #1 %s(%d): XSLTProcessor->transformToDoc(Object(DOMDocument))
                     99: #2 {main}
                    100: exception 'Exception' with message 'Test exception.' in %s:%d
                    101: Stack trace:
                    102: #0 [internal function]: testFunction(Array)
                    103: #1 %s(%d): XSLTProcessor->transformToDoc(Object(DOMDocument))
                    104: #2 {main}
                    105: ===DONE===

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>