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