From 7dfba0e7cf30ddbf834abee94520efcac26385d7 Mon Sep 17 00:00:00 2001 From: dakkar Date: Thu, 5 Nov 2009 13:52:51 +0100 Subject: still segfaults MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit and I can't reproduce the error in a minimal test caseā€¦ --- boom/test.pl | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ boom/test.xml | 4 ++++ boom/test.xsl | 27 +++++++++++++++++++++++++++ 3 files changed, 86 insertions(+) create mode 100644 boom/test.pl create mode 100644 boom/test.xml create mode 100644 boom/test.xsl (limited to 'boom') diff --git a/boom/test.pl b/boom/test.pl new file mode 100644 index 0000000..c3ecb42 --- /dev/null +++ b/boom/test.pl @@ -0,0 +1,55 @@ +#!/usr/bin/perl +use strict; +use warnings; +use XML::LibXML; +use XML::LibXSLT; +use open ':std',':locale'; + +my $tmpdoc=XML::LibXML->createDocument(); +{my $el=$tmpdoc->createElement('doc'); +$tmpdoc->setDocumentElement($el); +my $e1=$tmpdoc->createElement('test'); +$e1->appendTextNode('blah balh'); +$el->appendChild($e1); +} +my $doc_mem=XML::LibXML->createDocument(); +{my $el=$doc_mem->createElement('test'); +$doc_mem->setDocumentElement($el); +my $e1=$doc_mem->createElement('some'); +$el->appendChild($e1); +} + +my $NS='urn:test'; +{ +my $p=XML::LibXML->new(); +my $t=XML::LibXSLT->new(); + +$t->register_function($NS,'doc',\&test_doc); +$t->register_function($NS,'str',\&test_str); +$t->debug_callback(sub{print@_}); + +my $doc=$p->parse_file('test.xml'); +my $st=$t->parse_stylesheet_file('test.xsl'); + +my $out=$st->transform($doc); +print $st->output_as_chars($out); +$out=$st->transform($doc_mem); +print $st->output_as_chars($out); +} + +sub test_doc { + my $odoc=XML::LibXML::Document->new(); + my $el=$odoc->createElementNS($NS,'doc'); + $odoc->setDocumentElement($el); + $el->appendTextNode('a test'); + $el->appendChild($odoc->importNode( + ($tmpdoc->findnodes('/doc/test'))[0])); + $el->appendChild($odoc->importNode( + ($doc_mem->findnodes('/test'))[0])); + warn('returning from test_doc'); + return $odoc; +} + +sub test_str { + return 'a string'; +} diff --git a/boom/test.xml b/boom/test.xml new file mode 100644 index 0000000..c13808a --- /dev/null +++ b/boom/test.xml @@ -0,0 +1,4 @@ + + + testo + \ No newline at end of file diff --git a/boom/test.xsl b/boom/test.xsl new file mode 100644 index 0000000..ea32419 --- /dev/null +++ b/boom/test.xsl @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file -- cgit v1.2.3