summaryrefslogtreecommitdiffstats
path: root/php-8.0.30-libxml212.patch
diff options
context:
space:
mode:
Diffstat (limited to 'php-8.0.30-libxml212.patch')
-rw-r--r--php-8.0.30-libxml212.patch681
1 files changed, 0 insertions, 681 deletions
diff --git a/php-8.0.30-libxml212.patch b/php-8.0.30-libxml212.patch
deleted file mode 100644
index 2fb4cd6..0000000
--- a/php-8.0.30-libxml212.patch
+++ /dev/null
@@ -1,681 +0,0 @@
-From fe8de9dc9194de70b32afd78b89d7cc8ca577b27 Mon Sep 17 00:00:00 2001
-From: Niels Dossche <7771979+nielsdos@users.noreply.github.com>
-Date: Fri, 17 Nov 2023 19:45:40 +0100
-Subject: [PATCH 1/4] Fix GH-12702: libxml2 2.12.0 issue building from src
-
-Fixes GH-12702.
-
-Co-authored-by: nono303 <github@nono303.net>
----
- ext/dom/document.c | 1 +
- ext/libxml/php_libxml.h | 1 +
- 2 files changed, 2 insertions(+)
-
-diff --git a/ext/dom/document.c b/ext/dom/document.c
-index 02522b5014..6d1b074085 100644
---- a/ext/dom/document.c
-+++ b/ext/dom/document.c
-@@ -23,6 +23,7 @@
- #if defined(HAVE_LIBXML) && defined(HAVE_DOM)
- #include "php_dom.h"
- #include <libxml/SAX.h>
-+#include <libxml/xmlsave.h>
- #ifdef LIBXML_SCHEMAS_ENABLED
- #include <libxml/relaxng.h>
- #include <libxml/xmlschemas.h>
-diff --git a/ext/libxml/php_libxml.h b/ext/libxml/php_libxml.h
-index d0ce7cec71..02717417a7 100644
---- a/ext/libxml/php_libxml.h
-+++ b/ext/libxml/php_libxml.h
-@@ -35,6 +35,7 @@ extern zend_module_entry libxml_module_entry;
-
- #include "zend_smart_str.h"
- #include <libxml/tree.h>
-+#include <libxml/parser.h>
-
- #define LIBXML_SAVE_NOEMPTYTAG 1<<2
-
---
-2.43.0
-
-From f344d24ed5d723a132f3a793eb2ee8204195067c Mon Sep 17 00:00:00 2001
-From: Niels Dossche <7771979+nielsdos@users.noreply.github.com>
-Date: Fri, 1 Dec 2023 18:03:35 +0100
-Subject: [PATCH 2/4] Fix libxml2 2.12 build due to API breaks
-
-See https://github.com/php/php-src/actions/runs/7062192818/job/19225478601
----
- ext/libxml/libxml.c | 14 ++++++++++----
- ext/soap/php_sdl.c | 2 +-
- 2 files changed, 11 insertions(+), 5 deletions(-)
-
-diff --git a/ext/libxml/libxml.c b/ext/libxml/libxml.c
-index 73486ae253..5700492f0a 100644
---- a/ext/libxml/libxml.c
-+++ b/ext/libxml/libxml.c
-@@ -481,7 +481,11 @@ static void _php_libxml_free_error(void *ptr)
- xmlResetError((xmlErrorPtr) ptr);
- }
-
--static void _php_list_set_error_structure(xmlErrorPtr error, const char *msg)
-+#if LIBXML_VERSION >= 21200
-+static void _php_list_set_error_structure(const xmlError *error, const char *msg)
-+#else
-+static void _php_list_set_error_structure(xmlError *error, const char *msg)
-+#endif
- {
- xmlError error_copy;
- int ret;
-@@ -732,7 +736,11 @@ PHP_LIBXML_API void php_libxml_ctx_warning(void *ctx, const char *msg, ...)
- va_end(args);
- }
-
-+#if LIBXML_VERSION >= 21200
-+PHP_LIBXML_API void php_libxml_structured_error_handler(void *userData, const xmlError *error)
-+#else
- PHP_LIBXML_API void php_libxml_structured_error_handler(void *userData, xmlErrorPtr error)
-+#endif
- {
- _php_list_set_error_structure(error, NULL);
-
-@@ -1035,11 +1043,9 @@ PHP_FUNCTION(libxml_use_internal_errors)
- /* {{{ Retrieve last error from libxml */
- PHP_FUNCTION(libxml_get_last_error)
- {
-- xmlErrorPtr error;
--
- ZEND_PARSE_PARAMETERS_NONE();
-
-- error = xmlGetLastError();
-+ const xmlError *error = xmlGetLastError();
-
- if (error) {
- object_init_ex(return_value, libxmlerror_class_entry);
-diff --git a/ext/soap/php_sdl.c b/ext/soap/php_sdl.c
-index e5e7f2f955..6060f63450 100644
---- a/ext/soap/php_sdl.c
-+++ b/ext/soap/php_sdl.c
-@@ -331,7 +331,7 @@ static void load_wsdl_ex(zval *this_ptr, char *struri, sdlCtx *ctx, int include)
- sdl_restore_uri_credentials(ctx);
-
- if (!wsdl) {
-- xmlErrorPtr xmlErrorPtr = xmlGetLastError();
-+ const xmlError *xmlErrorPtr = xmlGetLastError();
-
- if (xmlErrorPtr) {
- soap_error2(E_ERROR, "Parsing WSDL: Couldn't load from '%s' : %s", struri, xmlErrorPtr->message);
---
-2.43.0
-
-From 8e1a378b5e4d01c99c4654114e4cf4c0953b5b5a Mon Sep 17 00:00:00 2001
-From: Niels Dossche <7771979+nielsdos@users.noreply.github.com>
-Date: Sat, 29 Apr 2023 21:07:50 +0200
-Subject: [PATCH 3/4] Fix GH-11160: Few tests failed building with new libxml
- 2.11.0
-
-It's possible to categorise the failures into 2 categories:
- - Changed error message. In this case we either duplicate the test and
- modify the error message. Or if the change in error message is
- small, we use the EXPECTF matchers to make the test compatible with both
- old and new versions of libxml2.
- - Missing warnings. This is caused by a change in libxml2 where the
- parser started using SAX APIs internally [1]. In this case the
- error_type passed to php_libxml_internal_error_handler() changed from
- PHP_LIBXML_ERROR to PHP_LIBXML_CTX_WARNING because it internally
- started to use the SAX handlers instead of the generic handlers.
- However, for the SAX handlers the current input stack is empty, so
- nothing is actually printed. I fixed this by falling back to a
- regular warning without a filename & line number reference, which
- mimicks the old behaviour. Furthermore, this change now also shows
- an additional warning in a test which was previously hidden.
-
-[1] https://gitlab.gnome.org/GNOME/libxml2/-/commit/9a82b94a94bd310db426edd453b0f38c6c8f69f5
-
-Closes GH-11162.
----
- .../DOMDocument_loadXML_error2_gte2_11.phpt | 34 +++++++
- ...> DOMDocument_loadXML_error2_pre2_11.phpt} | 4 +
- .../DOMDocument_load_error2_gte2_11.phpt | 34 +++++++
- ...t => DOMDocument_load_error2_pre2_11.phpt} | 4 +
- ext/libxml/libxml.c | 2 +
- ext/libxml/tests/bug61367-read_2.phpt | 2 +-
- .../tests/libxml_disable_entity_loader_2.phpt | 2 +-
- ...set_external_entity_loader_variation2.phpt | 2 +
- ext/xml/tests/bug26614_libxml_gte2_11.phpt | 95 +++++++++++++++++++
- ...bxml.phpt => bug26614_libxml_pre2_11.phpt} | 1 +
- 10 files changed, 178 insertions(+), 2 deletions(-)
- create mode 100644 ext/dom/tests/DOMDocument_loadXML_error2_gte2_11.phpt
- rename ext/dom/tests/{DOMDocument_loadXML_error2.phpt => DOMDocument_loadXML_error2_pre2_11.phpt} (90%)
- create mode 100644 ext/dom/tests/DOMDocument_load_error2_gte2_11.phpt
- rename ext/dom/tests/{DOMDocument_load_error2.phpt => DOMDocument_load_error2_pre2_11.phpt} (90%)
- create mode 100644 ext/xml/tests/bug26614_libxml_gte2_11.phpt
- rename ext/xml/tests/{bug26614_libxml.phpt => bug26614_libxml_pre2_11.phpt} (96%)
-
-diff --git a/ext/dom/tests/DOMDocument_loadXML_error2_gte2_11.phpt b/ext/dom/tests/DOMDocument_loadXML_error2_gte2_11.phpt
-new file mode 100644
-index 0000000000..ff5ceb3fbe
---- /dev/null
-+++ b/ext/dom/tests/DOMDocument_loadXML_error2_gte2_11.phpt
-@@ -0,0 +1,34 @@
-+--TEST--
-+Test DOMDocument::loadXML() detects not-well formed XML
-+--SKIPIF--
-+<?php
-+if (LIBXML_VERSION < 21100) die('skip libxml2 test variant for version >= 2.11');
-+?>
-+--DESCRIPTION--
-+This test verifies the method detects attributes values not closed between " or '
-+Environment variables used in the test:
-+- XML_FILE: the xml file to load
-+- LOAD_OPTIONS: the second parameter to pass to the method
-+- EXPECTED_RESULT: the expected result
-+--CREDITS--
-+Antonio Diaz Ruiz <dejalatele@gmail.com>
-+--INI--
-+assert.bail=true
-+--EXTENSIONS--
-+dom
-+--ENV--
-+XML_FILE=/not_well_formed2.xml
-+LOAD_OPTIONS=0
-+EXPECTED_RESULT=0
-+--FILE_EXTERNAL--
-+domdocumentloadxml_test_method.inc
-+--EXPECTF--
-+Warning: DOMDocument::loadXML(): AttValue: " or ' expected in Entity, line: 4 in %s on line %d
-+
-+Warning: DOMDocument::loadXML(): internal error: xmlParseStartTag: problem parsing attributes in Entity, line: 4 in %s on line %d
-+
-+Warning: DOMDocument::loadXML(): Couldn't find end of Start Tag book line 4 in Entity, line: 4 in %s on line %d
-+
-+Warning: DOMDocument::loadXML(): Opening and ending tag mismatch: books line 3 and book in Entity, line: 7 in %s on line %d
-+
-+Warning: DOMDocument::loadXML(): Extra content at the end of the document in Entity, line: 8 in %s on line %d
-diff --git a/ext/dom/tests/DOMDocument_loadXML_error2.phpt b/ext/dom/tests/DOMDocument_loadXML_error2_pre2_11.phpt
-similarity index 90%
-rename from ext/dom/tests/DOMDocument_loadXML_error2.phpt
-rename to ext/dom/tests/DOMDocument_loadXML_error2_pre2_11.phpt
-index 6d56a317ed..0e36d20905 100644
---- a/ext/dom/tests/DOMDocument_loadXML_error2.phpt
-+++ b/ext/dom/tests/DOMDocument_loadXML_error2_pre2_11.phpt
-@@ -1,5 +1,9 @@
- --TEST--
- Test DOMDocument::loadXML() detects not-well formed XML
-+--SKIPIF--
-+<?php
-+if (LIBXML_VERSION >= 21100) die('skip libxml2 test variant for version < 2.11');
-+?>
- --DESCRIPTION--
- This test verifies the method detects attributes values not closed between " or '
- Environment variables used in the test:
-diff --git a/ext/dom/tests/DOMDocument_load_error2_gte2_11.phpt b/ext/dom/tests/DOMDocument_load_error2_gte2_11.phpt
-new file mode 100644
-index 0000000000..32b6bf1611
---- /dev/null
-+++ b/ext/dom/tests/DOMDocument_load_error2_gte2_11.phpt
-@@ -0,0 +1,34 @@
-+--TEST--
-+Test DOMDocument::load() detects not-well formed
-+--SKIPIF--
-+<?php
-+if (LIBXML_VERSION < 21100) die('skip libxml2 test variant for version >= 2.11');
-+?>
-+--DESCRIPTION--
-+This test verifies the method detects attributes values not closed between " or '
-+Environment variables used in the test:
-+- XML_FILE: the xml file to load
-+- LOAD_OPTIONS: the second parameter to pass to the method
-+- EXPECTED_RESULT: the expected result
-+--CREDITS--
-+Antonio Diaz Ruiz <dejalatele@gmail.com>
-+--INI--
-+assert.bail=true
-+--EXTENSIONS--
-+dom
-+--ENV--
-+XML_FILE=/not_well_formed2.xml
-+LOAD_OPTIONS=0
-+EXPECTED_RESULT=0
-+--FILE_EXTERNAL--
-+domdocumentload_test_method.inc
-+--EXPECTF--
-+Warning: DOMDocument::load(): AttValue: " or ' expected in %s on line %d
-+
-+Warning: DOMDocument::load(): internal error: xmlParseStartTag: problem parsing attributes in %s on line %d
-+
-+Warning: DOMDocument::load(): Couldn't find end of Start Tag book line 4 in %s on line %d
-+
-+Warning: DOMDocument::load(): Opening and ending tag mismatch: books line 3 and book in %s on line %d
-+
-+Warning: DOMDocument::load(): Extra content at the end of the document in %s on line %d
-diff --git a/ext/dom/tests/DOMDocument_load_error2.phpt b/ext/dom/tests/DOMDocument_load_error2_pre2_11.phpt
-similarity index 90%
-rename from ext/dom/tests/DOMDocument_load_error2.phpt
-rename to ext/dom/tests/DOMDocument_load_error2_pre2_11.phpt
-index f450cf1654..b97fff9d2f 100644
---- a/ext/dom/tests/DOMDocument_load_error2.phpt
-+++ b/ext/dom/tests/DOMDocument_load_error2_pre2_11.phpt
-@@ -1,5 +1,9 @@
- --TEST--
- Test DOMDocument::load() detects not-well formed XML
-+--SKIPIF--
-+<?php
-+if (LIBXML_VERSION >= 21100) die('skip libxml2 test variant for version < 2.11');
-+?>
- --DESCRIPTION--
- This test verifies the method detects attributes values not closed between " or '
- Environment variables used in the test:
-diff --git a/ext/libxml/libxml.c b/ext/libxml/libxml.c
-index 5700492f0a..554fcc34ff 100644
---- a/ext/libxml/libxml.c
-+++ b/ext/libxml/libxml.c
-@@ -529,6 +529,8 @@ static void php_libxml_ctx_error_level(int level, void *ctx, const char *msg)
- } else {
- php_error_docref(NULL, level, "%s in Entity, line: %d", msg, parser->input->line);
- }
-+ } else {
-+ php_error_docref(NULL, E_WARNING, "%s", msg);
- }
- }
-
-diff --git a/ext/libxml/tests/bug61367-read_2.phpt b/ext/libxml/tests/bug61367-read_2.phpt
-index ed6576aa75..b935261cb2 100644
---- a/ext/libxml/tests/bug61367-read_2.phpt
-+++ b/ext/libxml/tests/bug61367-read_2.phpt
-@@ -55,6 +55,6 @@ bool(true)
- int(4)
- bool(true)
-
--Warning: DOMDocument::loadXML(): I/O warning : failed to load external entity "file:///%s/test_bug_61367-read/bad" in %s on line %d
-+Warning: DOMDocument::loadXML(): %Sfailed to load external entity "file:///%s/test_bug_61367-read/bad" in %s on line %d
-
- Warning: Attempt to read property "nodeValue" on null in %s on line %d
-diff --git a/ext/libxml/tests/libxml_disable_entity_loader_2.phpt b/ext/libxml/tests/libxml_disable_entity_loader_2.phpt
-index caa7356ad3..d90f909ac2 100644
---- a/ext/libxml/tests/libxml_disable_entity_loader_2.phpt
-+++ b/ext/libxml/tests/libxml_disable_entity_loader_2.phpt
-@@ -38,6 +38,6 @@ bool(true)
- Deprecated: Function libxml_disable_entity_loader() is deprecated in %s on line %d
- bool(false)
-
--Warning: DOMDocument::loadXML(): I/O warning : failed to load external entity "%s" in %s on line %d
-+Warning: DOMDocument::loadXML(): %Sfailed to load external entity "%s" in %s on line %d
- bool(true)
- Done
-diff --git a/ext/libxml/tests/libxml_set_external_entity_loader_variation2.phpt b/ext/libxml/tests/libxml_set_external_entity_loader_variation2.phpt
-index 87894bcb91..ddaf9bfa50 100644
---- a/ext/libxml/tests/libxml_set_external_entity_loader_variation2.phpt
-+++ b/ext/libxml/tests/libxml_set_external_entity_loader_variation2.phpt
-@@ -39,6 +39,8 @@ echo "Done.\n";
- string(10) "-//FOO/BAR"
- string(%d) "%sfoobar.dtd"
-
-+Warning: DOMDocument::validate(): Failed to load external entity "-//FOO/BAR" in %s on line %d
-+
- Warning: DOMDocument::validate(): Could not load the external subset "foobar.dtd" in %s on line %d
- bool(false)
- bool(true)
-diff --git a/ext/xml/tests/bug26614_libxml_gte2_11.phpt b/ext/xml/tests/bug26614_libxml_gte2_11.phpt
-new file mode 100644
-index 0000000000..9a81b67686
---- /dev/null
-+++ b/ext/xml/tests/bug26614_libxml_gte2_11.phpt
-@@ -0,0 +1,95 @@
-+--TEST--
-+Bug #26614 (CDATA sections skipped on line count)
-+--EXTENSIONS--
-+xml
-+--SKIPIF--
-+<?php
-+if (!defined("LIBXML_VERSION")) die('skip libxml2 test');
-+if (LIBXML_VERSION < 21100) die('skip libxml2 test variant for version >= 2.11');
-+?>
-+--FILE--
-+<?php
-+/*
-+this test works fine with Expat but fails with libxml
-+which we now use as default
-+
-+further investigation has shown that not only line count
-+is skipped on CDATA sections but that libxml does also
-+show different column numbers and byte positions depending
-+on context and in opposition to what one would expect to
-+see and what good old Expat reported just fine ...
-+*/
-+
-+$xmls = array();
-+
-+// Case 1: CDATA Sections
-+$xmls["CDATA"] ='<?xml version="1.0" encoding="iso-8859-1" ?>
-+<data>
-+<![CDATA[
-+multi
-+line
-+CDATA
-+block
-+]]>
-+</data>';
-+
-+// Case 2: replace some characters so that we get comments instead
-+$xmls["Comment"] ='<?xml version="1.0" encoding="iso-8859-1" ?>
-+<data>
-+<!-- ATA[
-+multi
-+line
-+CDATA
-+block
-+-->
-+</data>';
-+
-+// Case 3: replace even more characters so that only textual data is left
-+$xmls["Text"] ='<?xml version="1.0" encoding="iso-8859-1" ?>
-+<data>
-+-!-- ATA[
-+multi
-+line
-+CDATA
-+block
-+---
-+</data>';
-+
-+function startElement($parser, $name, $attrs) {
-+ printf("<$name> at line %d, col %d (byte %d)\n",
-+ xml_get_current_line_number($parser),
-+ xml_get_current_column_number($parser),
-+ xml_get_current_byte_index($parser));
-+}
-+
-+function endElement($parser, $name) {
-+ printf("</$name> at line %d, col %d (byte %d)\n",
-+ xml_get_current_line_number($parser),
-+ xml_get_current_column_number($parser),
-+ xml_get_current_byte_index($parser));
-+}
-+
-+function characterData($parser, $data) {
-+ // dummy
-+}
-+
-+foreach ($xmls as $desc => $xml) {
-+ echo "$desc\n";
-+ $xml_parser = xml_parser_create();
-+ xml_set_element_handler($xml_parser, "startElement", "endElement");
-+ xml_set_character_data_handler($xml_parser, "characterData");
-+ if (!xml_parse($xml_parser, $xml, true))
-+ echo "Error: ".xml_error_string(xml_get_error_code($xml_parser))."\n";
-+ xml_parser_free($xml_parser);
-+}
-+?>
-+--EXPECTF--
-+CDATA
-+<DATA> at line 2, col %d (byte 50)
-+</DATA> at line 9, col %d (byte 96)
-+Comment
-+<DATA> at line 2, col %d (byte 50)
-+</DATA> at line 9, col %d (byte 96)
-+Text
-+<DATA> at line 2, col %d (byte 50)
-+</DATA> at line 9, col %d (byte 96)
-diff --git a/ext/xml/tests/bug26614_libxml.phpt b/ext/xml/tests/bug26614_libxml_pre2_11.phpt
-similarity index 96%
-rename from ext/xml/tests/bug26614_libxml.phpt
-rename to ext/xml/tests/bug26614_libxml_pre2_11.phpt
-index b6c0b87581..90283850d2 100644
---- a/ext/xml/tests/bug26614_libxml.phpt
-+++ b/ext/xml/tests/bug26614_libxml_pre2_11.phpt
-@@ -4,6 +4,7 @@ Bug #26614 (CDATA sections skipped on line count)
- <?php
- require_once("skipif.inc");
- if (!defined("LIBXML_VERSION")) die('skip libxml2 test');
-+if (LIBXML_VERSION >= 21100) die('skip libxml2 test variant for version < 2.11');
- ?>
- --FILE--
- <?php
---
-2.43.0
-
-From 09f3b08ff356e9408dce778567e7592af6b970f2 Mon Sep 17 00:00:00 2001
-From: Niels Dossche <7771979+nielsdos@users.noreply.github.com>
-Date: Wed, 29 Nov 2023 20:49:29 +0100
-Subject: [PATCH 4/4] Test fixes for libxml2 2.12.0
-
----
- ext/dom/tests/DOMDocument_loadXML_error1.phpt | 4 +++
- .../DOMDocument_loadXML_error1_gte2_12.phpt | 26 ++++++++++++++++
- .../DOMDocument_loadXML_error2_gte2_11.phpt | 2 +-
- .../DOMDocument_loadXML_error2_gte2_12.phpt | 30 +++++++++++++++++++
- ext/dom/tests/DOMDocument_load_error1.phpt | 4 +++
- .../DOMDocument_load_error1_gte2_12.phpt | 26 ++++++++++++++++
- .../DOMDocument_load_error2_gte2_11.phpt | 2 +-
- .../DOMDocument_load_error2_gte2_12.phpt | 30 +++++++++++++++++++
- ext/xml/tests/bug81351.phpt | 4 +--
- ext/xml/tests/xml_error_string_basic.phpt | 6 ++--
- 10 files changed, 127 insertions(+), 7 deletions(-)
- create mode 100644 ext/dom/tests/DOMDocument_loadXML_error1_gte2_12.phpt
- create mode 100644 ext/dom/tests/DOMDocument_loadXML_error2_gte2_12.phpt
- create mode 100644 ext/dom/tests/DOMDocument_load_error1_gte2_12.phpt
- create mode 100644 ext/dom/tests/DOMDocument_load_error2_gte2_12.phpt
-
-diff --git a/ext/dom/tests/DOMDocument_loadXML_error1.phpt b/ext/dom/tests/DOMDocument_loadXML_error1.phpt
-index 4d3b81db79..0549d67630 100644
---- a/ext/dom/tests/DOMDocument_loadXML_error1.phpt
-+++ b/ext/dom/tests/DOMDocument_loadXML_error1.phpt
-@@ -1,5 +1,9 @@
- --TEST--
- Test DOMDocument::loadXML() detects not-well formed XML
-+--SKIPIF--
-+<?php
-+if (LIBXML_VERSION >= 21200) die('skip libxml2 test variant for version < 2.12');
-+?>
- --DESCRIPTION--
- This test verifies the method detects an opening and ending tag mismatch
- Environment variables used in the test:
-diff --git a/ext/dom/tests/DOMDocument_loadXML_error1_gte2_12.phpt b/ext/dom/tests/DOMDocument_loadXML_error1_gte2_12.phpt
-new file mode 100644
-index 0000000000..e1ded0ffad
---- /dev/null
-+++ b/ext/dom/tests/DOMDocument_loadXML_error1_gte2_12.phpt
-@@ -0,0 +1,26 @@
-+--TEST--
-+Test DOMDocument::loadXML() detects not-well formed XML
-+--SKIPIF--
-+<?php
-+if (LIBXML_VERSION < 21200) die('skip libxml2 test variant for version >= 2.12');
-+?>
-+--DESCRIPTION--
-+This test verifies the method detects an opening and ending tag mismatch
-+Environment variables used in the test:
-+- XML_FILE: the xml file to load
-+- LOAD_OPTIONS: the second parameter to pass to the method
-+- EXPECTED_RESULT: the expected result
-+--CREDITS--
-+Antonio Diaz Ruiz <dejalatele@gmail.com>
-+--EXTENSIONS--
-+dom
-+--ENV--
-+XML_FILE=/not_well_formed.xml
-+LOAD_OPTIONS=0
-+EXPECTED_RESULT=0
-+--FILE_EXTERNAL--
-+domdocumentloadxml_test_method.inc
-+--EXPECTF--
-+Warning: DOMDocument::load%r(XML){0,1}%r(): Opening and ending tag mismatch: title line 5 and book %s
-+
-+Warning: DOMDocument::load%r(XML){0,1}%r(): %rexpected '>'|Opening and ending tag mismatch: book line (4|5) and books%r %s
-diff --git a/ext/dom/tests/DOMDocument_loadXML_error2_gte2_11.phpt b/ext/dom/tests/DOMDocument_loadXML_error2_gte2_11.phpt
-index ff5ceb3fbe..f52d334813 100644
---- a/ext/dom/tests/DOMDocument_loadXML_error2_gte2_11.phpt
-+++ b/ext/dom/tests/DOMDocument_loadXML_error2_gte2_11.phpt
-@@ -2,7 +2,7 @@
- Test DOMDocument::loadXML() detects not-well formed XML
- --SKIPIF--
- <?php
--if (LIBXML_VERSION < 21100) die('skip libxml2 test variant for version >= 2.11');
-+if (LIBXML_VERSION < 21100 || LIBXML_VERSION >= 21200) die('skip libxml2 test variant for version >= 2.11 && <= 2.12');
- ?>
- --DESCRIPTION--
- This test verifies the method detects attributes values not closed between " or '
-diff --git a/ext/dom/tests/DOMDocument_loadXML_error2_gte2_12.phpt b/ext/dom/tests/DOMDocument_loadXML_error2_gte2_12.phpt
-new file mode 100644
-index 0000000000..6a3ff5841f
---- /dev/null
-+++ b/ext/dom/tests/DOMDocument_loadXML_error2_gte2_12.phpt
-@@ -0,0 +1,30 @@
-+--TEST--
-+Test DOMDocument::loadXML() detects not-well formed XML
-+--SKIPIF--
-+<?php
-+if (LIBXML_VERSION < 21200) die('skip libxml2 test variant for version >= 2.12');
-+?>
-+--DESCRIPTION--
-+This test verifies the method detects attributes values not closed between " or '
-+Environment variables used in the test:
-+- XML_FILE: the xml file to load
-+- LOAD_OPTIONS: the second parameter to pass to the method
-+- EXPECTED_RESULT: the expected result
-+--CREDITS--
-+Antonio Diaz Ruiz <dejalatele@gmail.com>
-+--EXTENSIONS--
-+dom
-+--ENV--
-+XML_FILE=/not_well_formed2.xml
-+LOAD_OPTIONS=0
-+EXPECTED_RESULT=0
-+--FILE_EXTERNAL--
-+domdocumentloadxml_test_method.inc
-+--EXPECTF--
-+Warning: DOMDocument::loadXML(): AttValue: " or ' expected in Entity, line: 4 in %s on line %d
-+
-+Warning: DOMDocument::loadXML(): internal error: xmlParseStartTag: problem parsing attributes in Entity, line: 4 in %s on line %d
-+
-+Warning: DOMDocument::loadXML(): Couldn't find end of Start Tag book line 4 in Entity, line: 4 in %s on line %d
-+
-+Warning: DOMDocument::loadXML(): Opening and ending tag mismatch: books line 3 and book in Entity, line: 7 in %s on line %d
-diff --git a/ext/dom/tests/DOMDocument_load_error1.phpt b/ext/dom/tests/DOMDocument_load_error1.phpt
-index 8ac181d769..4416f5f6fe 100644
---- a/ext/dom/tests/DOMDocument_load_error1.phpt
-+++ b/ext/dom/tests/DOMDocument_load_error1.phpt
-@@ -1,5 +1,9 @@
- --TEST--
- Test DOMDocument::load() detects not-well formed XML
-+--SKIPIF--
-+<?php
-+if (LIBXML_VERSION >= 21200) die('skip libxml2 test variant for version < 2.12');
-+?>
- --DESCRIPTION--
- This test verifies the method detects an opening and ending tag mismatch
- Environment variables used in the test:
-diff --git a/ext/dom/tests/DOMDocument_load_error1_gte2_12.phpt b/ext/dom/tests/DOMDocument_load_error1_gte2_12.phpt
-new file mode 100644
-index 0000000000..183c8406fd
---- /dev/null
-+++ b/ext/dom/tests/DOMDocument_load_error1_gte2_12.phpt
-@@ -0,0 +1,26 @@
-+--TEST--
-+Test DOMDocument::load() detects not-well formed XML
-+--SKIPIF--
-+<?php
-+if (LIBXML_VERSION < 21200) die('skip libxml2 test variant for version >= 2.12');
-+?>
-+--DESCRIPTION--
-+This test verifies the method detects an opening and ending tag mismatch
-+Environment variables used in the test:
-+- XML_FILE: the xml file to load
-+- LOAD_OPTIONS: the second parameter to pass to the method
-+- EXPECTED_RESULT: the expected result
-+--CREDITS--
-+Antonio Diaz Ruiz <dejalatele@gmail.com>
-+--EXTENSIONS--
-+dom
-+--ENV--
-+XML_FILE=/not_well_formed.xml
-+LOAD_OPTIONS=0
-+EXPECTED_RESULT=0
-+--FILE_EXTERNAL--
-+domdocumentload_test_method.inc
-+--EXPECTF--
-+Warning: DOMDocument::load%r(XML){0,1}%r(): Opening and ending tag mismatch: title line 5 and book %s
-+
-+Warning: DOMDocument::load%r(XML){0,1}%r(): %rexpected '>'|Opening and ending tag mismatch: book line (4|5) and books%r %s
-diff --git a/ext/dom/tests/DOMDocument_load_error2_gte2_11.phpt b/ext/dom/tests/DOMDocument_load_error2_gte2_11.phpt
-index 32b6bf1611..4d9f992b3b 100644
---- a/ext/dom/tests/DOMDocument_load_error2_gte2_11.phpt
-+++ b/ext/dom/tests/DOMDocument_load_error2_gte2_11.phpt
-@@ -2,7 +2,7 @@
- Test DOMDocument::load() detects not-well formed
- --SKIPIF--
- <?php
--if (LIBXML_VERSION < 21100) die('skip libxml2 test variant for version >= 2.11');
-+if (LIBXML_VERSION < 21100 || LIBXML_VERSION >= 21200) die('skip libxml2 test variant for version >= 2.11 && <= 2.12');
- ?>
- --DESCRIPTION--
- This test verifies the method detects attributes values not closed between " or '
-diff --git a/ext/dom/tests/DOMDocument_load_error2_gte2_12.phpt b/ext/dom/tests/DOMDocument_load_error2_gte2_12.phpt
-new file mode 100644
-index 0000000000..4fadf41736
---- /dev/null
-+++ b/ext/dom/tests/DOMDocument_load_error2_gte2_12.phpt
-@@ -0,0 +1,30 @@
-+--TEST--
-+Test DOMDocument::load() detects not-well formed
-+--SKIPIF--
-+<?php
-+if (LIBXML_VERSION < 21200) die('skip libxml2 test variant for version >= 2.12');
-+?>
-+--DESCRIPTION--
-+This test verifies the method detects attributes values not closed between " or '
-+Environment variables used in the test:
-+- XML_FILE: the xml file to load
-+- LOAD_OPTIONS: the second parameter to pass to the method
-+- EXPECTED_RESULT: the expected result
-+--CREDITS--
-+Antonio Diaz Ruiz <dejalatele@gmail.com>
-+--EXTENSIONS--
-+dom
-+--ENV--
-+XML_FILE=/not_well_formed2.xml
-+LOAD_OPTIONS=0
-+EXPECTED_RESULT=0
-+--FILE_EXTERNAL--
-+domdocumentload_test_method.inc
-+--EXPECTF--
-+Warning: DOMDocument::load(): AttValue: " or ' expected in %s on line %d
-+
-+Warning: DOMDocument::load(): internal error: xmlParseStartTag: problem parsing attributes in %s on line %d
-+
-+Warning: DOMDocument::load(): Couldn't find end of Start Tag book line 4 in %s on line %d
-+
-+Warning: DOMDocument::load(): Opening and ending tag mismatch: books line 3 and book in %s on line %d
-diff --git a/ext/xml/tests/bug81351.phpt b/ext/xml/tests/bug81351.phpt
-index 19e4ca590b..dc934001be 100644
---- a/ext/xml/tests/bug81351.phpt
-+++ b/ext/xml/tests/bug81351.phpt
-@@ -23,6 +23,6 @@ $code = xml_get_error_code($parser);
- $error = xml_error_string($code);
- echo "xml_parse returned $success, xml_get_error_code = $code, xml_error_string = $error\r\n";
- ?>
----EXPECT--
-+--EXPECTF--
- xml_parse returned 1, xml_get_error_code = 0, xml_error_string = No error
--xml_parse returned 0, xml_get_error_code = 5, xml_error_string = Invalid document end
-+%rxml_parse returned 0, xml_get_error_code = 5, xml_error_string = Invalid document end|xml_parse returned 0, xml_get_error_code = 77, xml_error_string = Tag not finished%r
-diff --git a/ext/xml/tests/xml_error_string_basic.phpt b/ext/xml/tests/xml_error_string_basic.phpt
-index e72fa68bd1..9020415f1f 100644
---- a/ext/xml/tests/xml_error_string_basic.phpt
-+++ b/ext/xml/tests/xml_error_string_basic.phpt
-@@ -25,9 +25,9 @@ foreach ($xmls as $xml) {
- xml_parser_free($xml_parser);
- }
- ?>
----EXPECT--
--int(5)
--string(20) "Invalid document end"
-+--EXPECTF--
-+int(%r5|77%r)
-+string(%d) %r"Invalid document end"|"Tag not finished"%r
- int(47)
- string(35) "Processing Instruction not finished"
- int(57)
---
-2.43.0
-