Skip Menu |

This queue is for tickets about the MarpaX-ESLIF-ECMA404 CPAN distribution.

Report information
The Basics
Id: 124137
Status: resolved
Priority: 0/
Queue: MarpaX-ESLIF-ECMA404

People
Owner: Nobody in particular
Requestors: SREZIC [...] cpan.org
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: 0.008
Fixed in: 0.010



Subject: t/test.t fails on FreeBSD
On FreeBSD systems (9, 10, 11, 12) I observe the following failure: ... # ########################################################### # Testing inline JSON data # ########################################################### # ######################################################### # Testing files as per https://github.com/nst/JSONTestSuite # ######################################################### # Failed test 'ko / i_string_UTF8_surrogate_U+D800.json (Invalid character)' # at t/test.t line 155. # Failed test 'ko / i_string_not_in_unicode_range.json (Invalid character)' # at t/test.t line 155. # Failed test 'ko / string_1_invalid_codepoint.json (Invalid character)' # at t/test.t line 155. # Failed test 'ko / string_2_invalid_codepoints.json (Invalid character)' # at t/test.t line 155. # Failed test 'ko / string_3_invalid_codepoints.json (Invalid character)' # at t/test.t line 155. # Looks like you failed 5 tests of 356. t/test.t ............... Dubious, test returned 5 (wstat 1280, 0x500) Failed 5/356 subtests ...
iconv (used by MarpaX::ESLIF behing the scene, iconv API of course - not the command-line) is remarquably buggy on FreeBSD: it even cannot detect correctly an invalid UTF-8 character!... $ uconv -f UTF-8 -t UTF-32 ./.cpan/build/MarpaX-ESLIF-ECMA404-0.008-Ac3HWT/t/test_parsing/i_string_not_in_unicode_range.json > /dev/null; echo $? Conversion to Unicode from codepage failed at input byte position 2. Bytes: f4 Error: Illegal character found 1 $ iconv -f UTF-8 -t UTF-32 ./.cpan/build/MarpaX-ESLIF-ECMA404-0.008-Ac3HWT/t/test_parsing/i_string_not_in_unicode_range.json > /dev/null; echo $? 0 The fact the MarpaX::ESLIF does not use ICU (which provides coherent cross-platform results) is because it is not easy to ship it with MarpaX::ESLIF. This is a concern for the perl bindings of MarpaX::ESLIF only, not the c library in general. Anyway, iconv on FreeBSD is nothing else but unreliable and I will modify the test to take that into account.
(or it is FreeBSD that is correct and GNU's iconv not correct - a question of POSIX compliance - anyway give me some time to thinl more about this - I envisage to built in ICU if possible - to be ctd)