diff options
Diffstat (limited to 'php-8.0.30-libxml212.patch')
-rw-r--r-- | php-8.0.30-libxml212.patch | 681 |
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 - |