commit:     ce4317963ae6fd417901af9871b1bc74e654cd69
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Thu Dec  5 22:25:16 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Thu Dec  5 22:25:16 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ce431796

dev-perl/XML-LibXML: fix tests w/ >=libxml2-2.13.0

Closes: https://bugs.gentoo.org/943335
Signed-off-by: Sam James <sam <AT> gentoo.org>

 dev-perl/XML-LibXML/XML-LibXML-2.21.0.ebuild       |   4 +
 .../files/XML-LibXML-2.21.0-libxml2-2.13.patch     | 148 +++++++++++++++++++++
 2 files changed, 152 insertions(+)

diff --git a/dev-perl/XML-LibXML/XML-LibXML-2.21.0.ebuild 
b/dev-perl/XML-LibXML/XML-LibXML-2.21.0.ebuild
index 01657ca39124..1e29dc86274a 100644
--- a/dev-perl/XML-LibXML/XML-LibXML-2.21.0.ebuild
+++ b/dev-perl/XML-LibXML/XML-LibXML-2.21.0.ebuild
@@ -47,6 +47,10 @@ PERL_RM_FILES=(
        "t/11memory.t"
 )
 
+PATCHES=(
+       "${FILESDIR}"/${PN}-2.21.0-libxml2-2.13.patch
+)
+
 src_compile() {
        export SKIP_SAX_INSTALL=1
        perl-module_src_compile

diff --git a/dev-perl/XML-LibXML/files/XML-LibXML-2.21.0-libxml2-2.13.patch 
b/dev-perl/XML-LibXML/files/XML-LibXML-2.21.0-libxml2-2.13.patch
new file mode 100644
index 000000000000..e1ebd2bd1c4b
--- /dev/null
+++ b/dev-perl/XML-LibXML/files/XML-LibXML-2.21.0-libxml2-2.13.patch
@@ -0,0 +1,148 @@
+https://github.com/shlomif/perl-XML-LibXML/pull/87
+
+From bee8338fd1cbd7aad4bf60c2965833343b6ead6f Mon Sep 17 00:00:00 2001
+From: Nick Wellnhofer <[email protected]>
+Date: Tue, 21 May 2024 15:17:30 +0200
+Subject: [PATCH] Fix test suite with libxml2 2.13.0
+
+---
+ t/02parse.t                        | 7 ++++++-
+ t/08findnodes.t                    | 8 +++++++-
+ t/19die_on_invalid_utf8_rt_58848.t | 2 +-
+ t/25relaxng.t                      | 4 ++--
+ t/26schema.t                       | 4 ++--
+ t/60error_prev_chain.t             | 8 ++++----
+ 6 files changed, 22 insertions(+), 11 deletions(-)
+
+diff --git a/t/02parse.t b/t/02parse.t
+index b111507b..40aa5f13 100644
+--- a/t/02parse.t
++++ b/t/02parse.t
+@@ -884,7 +884,12 @@ EOXML
+         eval {
+            $doc2    = $parser->parse_string( $xmldoc );
+         };
+-        isnt($@, '', "error parsing $xmldoc");
++        # https://gitlab.gnome.org/GNOME/libxml2/-/commit/b717abdd
++        if (XML::LibXML::LIBXML_RUNTIME_VERSION() < 21300) {
++            isnt($@, '', "error parsing $xmldoc");
++        } else {
++            is( $doc2->documentElement()->firstChild()->nodeName(), "foo" );
++        }
+ 
+         $parser->validation(1);
+ 
+diff --git a/t/08findnodes.t b/t/08findnodes.t
+index 016c85a1..e9417bc5 100644
+--- a/t/08findnodes.t
++++ b/t/08findnodes.t
+@@ -123,7 +123,13 @@ my $docstring = q{
+ my @ns = $root->findnodes('namespace::*');
+ # TEST
+ 
+-is(scalar(@ns), 2, ' TODO : Add test name' );
++# https://gitlab.gnome.org/GNOME/libxml2/-/commit/aca16fb3
++# fixed xmlCopyNamespace with XML namespace.
++if (XML::LibXML::LIBXML_RUNTIME_VERSION() < 21300) {
++    is(scalar(@ns), 2, ' TODO : Add test name' );
++} else {
++    is(scalar(@ns), 3, ' TODO : Add test name' );
++}
+ 
+ # bad xpaths
+ # TEST:$badxpath=4;
+diff --git a/t/19die_on_invalid_utf8_rt_58848.t 
b/t/19die_on_invalid_utf8_rt_58848.t
+index aa8ad105..4160cb27 100644
+--- a/t/19die_on_invalid_utf8_rt_58848.t
++++ b/t/19die_on_invalid_utf8_rt_58848.t
+@@ -16,7 +16,7 @@ use XML::LibXML;
+     my $err = $@;
+ 
+     # TEST
+-    like ("$err", qr{parser error : Input is not proper UTF-8},
++    like ("$err", qr{not proper UTF-8|Invalid bytes in character encoding},
+         'Parser error.',
+     );
+ }
+diff --git a/t/25relaxng.t b/t/25relaxng.t
+index 93e61883..71383b2a 100644
+--- a/t/25relaxng.t
++++ b/t/25relaxng.t
+@@ -132,7 +132,7 @@ print "# 6 check that no_network => 1 works\n";
+ {
+     my $rng = eval { XML::LibXML::RelaxNG->new( location => $netfile, 
no_network => 1 ) };
+     # TEST
+-    like( $@, qr{I/O error : Attempt to load network entity}, 'RNG from file 
location with external import and no_network => 1 throws an exception.' );
++    like( $@, qr{Attempt to load network entity}, 'RNG from file location 
with external import and no_network => 1 throws an exception.' );
+     # TEST
+     ok( !defined $rng, 'RNG from file location with external import and 
no_network => 1 is not loaded.' );
+ }
+@@ -152,7 +152,7 @@ print "# 6 check that no_network => 1 works\n";
+ </grammar>
+ EOF
+     # TEST
+-    like( $@, qr{I/O error : Attempt to load network entity}, 'RNG from 
buffer with external import and no_network => 1 throws an exception.' );
++    like( $@, qr{Attempt to load network entity}, 'RNG from buffer with 
external import and no_network => 1 throws an exception.' );
+     # TEST
+     ok( !defined $rng, 'RNG from buffer with external import and no_network 
=> 1 is not loaded.' );
+ }
+diff --git a/t/26schema.t b/t/26schema.t
+index 17f641e4..c404cedd 100644
+--- a/t/26schema.t
++++ b/t/26schema.t
+@@ -117,7 +117,7 @@ EOF
+ {
+     my $schema = eval { XML::LibXML::Schema->new( location => $netfile, 
no_network => 1 ) };
+     # TEST
+-    like( $@, qr{I/O error : Attempt to load network entity}, 'Schema from 
file location with external import and no_network => 1 throws an exception.' );
++    like( $@, qr{Attempt to load network entity}, 'Schema from file location 
with external import and no_network => 1 throws an exception.' );
+     # TEST
+     ok( !defined $schema, 'Schema from file location with external import and 
no_network => 1 is not loaded.' );
+ }
+@@ -129,7 +129,7 @@ EOF
+ </xsd:schema>
+ EOF
+     # TEST
+-    like( $@, qr{I/O error : Attempt to load network entity}, 'Schema from 
buffer with external import and no_network => 1 throws an exception.' );
++    like( $@, qr{Attempt to load network entity}, 'Schema from buffer with 
external import and no_network => 1 throws an exception.' );
+     # TEST
+     ok( !defined $schema, 'Schema from buffer with external import and 
no_network => 1 is not loaded.' );
+ }
+diff --git a/t/60error_prev_chain.t b/t/60error_prev_chain.t
+index e48215c4..55ac0b2e 100644
+--- a/t/60error_prev_chain.t
++++ b/t/60error_prev_chain.t
+@@ -16,13 +16,11 @@ use XML::LibXML;
+ 
+ {
+     my $parser = XML::LibXML->new();
+-    $parser->validation(0);
+-    $parser->load_ext_dtd(0);
+ 
+     eval
+     {
+         local $^W = 0;
+-        $parser->parse_file('example/JBR-ALLENtrees.htm');
++        $parser->parse_string('<doc>&ldquo;&nbsp;&rdquo;</doc>');
+     };
+ 
+     my $err = $@;
+@@ -31,7 +29,7 @@ use XML::LibXML;
+     if( $err && !ref($err) ) {
+       plan skip_all => 'The local libxml library does not support errors as 
objects to $@';
+     }
+-    plan tests => 1;
++    plan tests => 2;
+ 
+     while (defined($err) && $count < 200)
+     {
+@@ -44,6 +42,8 @@ use XML::LibXML;
+ 
+     # TEST
+     ok ((!$err), "Reached the end of the chain.");
++    # TEST
++    is ($count, 3, "Correct number of errors reported")
+ }
+ 
+ =head1 COPYRIGHT & LICENSE
+

Reply via email to