<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">https://github.com/shlomif/perl-XML-LibXML/pull/87

From bee8338fd1cbd7aad4bf60c2965833343b6ead6f Mon Sep 17 00:00:00 2001
From: Nick Wellnhofer &lt;wellnhofer@aevum.de&gt;
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-&gt;parse_string( $xmldoc );
         };
-        isnt($@, '', "error parsing $xmldoc");
+        # https://gitlab.gnome.org/GNOME/libxml2/-/commit/b717abdd
+        if (XML::LibXML::LIBXML_RUNTIME_VERSION() &lt; 21300) {
+            isnt($@, '', "error parsing $xmldoc");
+        } else {
+            is( $doc2-&gt;documentElement()-&gt;firstChild()-&gt;nodeName(), "foo" );
+        }
 
         $parser-&gt;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-&gt;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() &lt; 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 =&gt; 1 works\n";
 {
     my $rng = eval { XML::LibXML::RelaxNG-&gt;new( location =&gt; $netfile, no_network =&gt; 1 ) };
     # TEST
-    like( $@, qr{I/O error : Attempt to load network entity}, 'RNG from file location with external import and no_network =&gt; 1 throws an exception.' );
+    like( $@, qr{Attempt to load network entity}, 'RNG from file location with external import and no_network =&gt; 1 throws an exception.' );
     # TEST
     ok( !defined $rng, 'RNG from file location with external import and no_network =&gt; 1 is not loaded.' );
 }
@@ -152,7 +152,7 @@ print "# 6 check that no_network =&gt; 1 works\n";
 &lt;/grammar&gt;
 EOF
     # TEST
-    like( $@, qr{I/O error : Attempt to load network entity}, 'RNG from buffer with external import and no_network =&gt; 1 throws an exception.' );
+    like( $@, qr{Attempt to load network entity}, 'RNG from buffer with external import and no_network =&gt; 1 throws an exception.' );
     # TEST
     ok( !defined $rng, 'RNG from buffer with external import and no_network =&gt; 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-&gt;new( location =&gt; $netfile, no_network =&gt; 1 ) };
     # TEST
-    like( $@, qr{I/O error : Attempt to load network entity}, 'Schema from file location with external import and no_network =&gt; 1 throws an exception.' );
+    like( $@, qr{Attempt to load network entity}, 'Schema from file location with external import and no_network =&gt; 1 throws an exception.' );
     # TEST
     ok( !defined $schema, 'Schema from file location with external import and no_network =&gt; 1 is not loaded.' );
 }
@@ -129,7 +129,7 @@ EOF
 &lt;/xsd:schema&gt;
 EOF
     # TEST
-    like( $@, qr{I/O error : Attempt to load network entity}, 'Schema from buffer with external import and no_network =&gt; 1 throws an exception.' );
+    like( $@, qr{Attempt to load network entity}, 'Schema from buffer with external import and no_network =&gt; 1 throws an exception.' );
     # TEST
     ok( !defined $schema, 'Schema from buffer with external import and no_network =&gt; 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-&gt;new();
-    $parser-&gt;validation(0);
-    $parser-&gt;load_ext_dtd(0);
 
     eval
     {
         local $^W = 0;
-        $parser-&gt;parse_file('example/JBR-ALLENtrees.htm');
+        $parser-&gt;parse_string('&lt;doc&gt;&amp;ldquo;&amp;nbsp;&amp;rdquo;&lt;/doc&gt;');
     };
 
     my $err = $@;
@@ -31,7 +29,7 @@ use XML::LibXML;
     if( $err &amp;&amp; !ref($err) ) {
       plan skip_all =&gt; 'The local libxml library does not support errors as objects to $@';
     }
-    plan tests =&gt; 1;
+    plan tests =&gt; 2;
 
     while (defined($err) &amp;&amp; $count &lt; 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 &amp; LICENSE

</pre></body></html>