Re: XML::Parser-2.47 - make test failure with Expat-2.7.0
"\"Douglas R. Reno\"" ([email protected] via lfs-support Mailing List) <[email protected]> Mon, 31 Mar 2025 11:25:35 -0500
| Newsgroups | gmane.linux.lfs.support |
|---|---|
| Message-ID | <[email protected]> |
On 3/19/25 11:37 AM, Douglas R. Reno wrote: > On 3/19/25 2:08 AM, Wayne Blaszczyk ([email protected] via > lfs-support Mailing List) wrote: >> Hi All, >> >> I'm getting a make test failure when rebuilding XML::Parser-2.47 >> after installing Expat-2.7.0. >> >> >> lfs@lfs05 [ ~/XML-Parser-2.47 ]$ make test >> make[1]: Entering directory '/home/lfs/XML-Parser-2.47/Expat' >> "/usr/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- Expat.bs >> ../blib/arch/auto/XML/Parser/Expat/Expat.bs 644 >> Manifying 1 pod document >> make[1]: Leaving directory '/home/lfs/XML-Parser-2.47/Expat' >> PERL_DL_NONLAZY=1 "/usr/bin/perl" "-MExtUtils::Command::MM" >> "-MTest::Harness" "-e" "undef *Test::Harness::Switches; >> test_harness(0, 'blib/lib', 'blib/arch')" t/*.t >> t/astress.t ........... ok >> t/cdata.t ............. ok >> t/decl.t .............. ok >> t/defaulted.t ......... ok >> t/encoding.t .......... ok >> t/external_ent.t ...... Couldn't load LWP based external entity handler >> Switching to file-based external entity handler >> (To avoid this message, use NoLWP option to XML::Parser) >> t/external_ent.t ...... ok >> t/file.t .............. ok >> t/file_open_scalar.t .. ok >> t/finish.t ............ ok >> t/namespaces.t ........ ok >> t/parament.t .......... 1/13 Couldn't load LWP based external entity >> handler >> Switching to file-based external entity handler >> (To avoid this message, use NoLWP option to XML::Parser) >> t/parament.t .......... ok >> t/partial.t ........... Failed 1/3 subtests >> t/skip.t .............. ok >> t/stream.t ............ ok >> t/styles.t ............ ok >> >> Test Summary Report >> ------------------- >> t/partial.t (Wstat: 0 Tests: 3 Failed: 1) >> Failed test: 3 >> Files=15, Tests=140, 1 wallclock secs ( 0.03 usr 0.01 sys + 0.38 >> cusr 0.05 csys = 0.47 CPU) >> Result: FAIL >> Failed 1/15 test programs. 1/140 subtests failed. >> make: *** [Makefile:972: test_dynamic] Error 255 >> lfs@lfs05 [ ~/XML-Parser-2.47 ]$ >> >> Any thoughts? >> >> Thanks, >> Wayne. > > Hi Wayne, > > This looks like a regression caused by expat-2.7.0. I've brought it to > upstream at https://github.com/cpan-authors/XML-Parser/issues/104 and > did some additional digging for them, since upstream hasn't made any > commits in over two years. > > Test #3 is a string comparison, attempting to get the value of > &draft.day out of samples/REC-xml-19980210.xml (which is equal to 10). > The string that it's actually getting is... empty. > > In case anyone else needs to get verbose diagnostics on a perl test > suite, you can run "make test TEST_VERBOSE=1" to get additional > details. If you add in print statements to debug the test like I did, > this is the only way you'll be able to see the output of your statements! > > - Doug > Hi Wayne, I wanted to follow up here and note that the problem has been fixed in expat-2.7.1, which was put into LFS earlier this morning. I would recommend installing expat-2.7.1 on your system and trying again! The underlying cause of the issue was that Expat 2.7.0 inadvertently changed the event pointer behavior for the XML_GetCurrentByteCount, XML_GetCurrentByteIndex, XML_GetCurrentColumnNumber, XML_GetCurrentLineNumber, and XML_GetInputContext functions. The XML_GetInputContext function was called by the Perl XML Parser module, and the event pointer was always a few characters off - which resulted in the strings never being returned for comparison in that test. That test though showed other serious problems occurring within the XML Parser module as well as Expat 2.7.0 as well though, because any program that called XML_GetInputContext would either get no data at all, or get irrelevant/malformed data from the XML parser. Thank you for reporting this issue to us! - Doug -- http://lists.linuxfromscratch.org/sympa/info/lfs-support Unsubscribe: See the above information page