Subject: Re: bug#74428: tests/printf/printf-cov failure on macOS

From: Bernhard Voelker <[email-masked]>
Date: Mon, 9 Dec 2024 22:41:46 +0100

On 12/6/24 14:24, Pádraig Brady wrote:
> On 06/12/2024 07:13, Bernhard Voelker wrote:
>> On 11/19/24 19:31, Pádraig Brady wrote:
>>> OK I've adjusted our test to use \u00032 instead,
>>
>> The bug report was talking about Macos only, but now I'm seeing this failure also
>> on openSUSE for Leap 16.0 on x86_64 [1] and aarch64 [2].
>>
>> Using coreutils-9.5 (which has gnulib 259829e78), glibc-2.40.
>>
>> [1] https://build.opensuse.org/public/build/Base:System/16.0/x86_64/coreutils/_log
>>        also saved/attached as 'cu-tests-printf-cov-x86_64.log.xz'.
>>
>> [2] https://build.opensuse.org/public/build/Base:System/16.0/aarch64/coreutils/_log
>>        also saved/attached as 'cu-tests-printf-cov-aarch64.log.xz'.
>>
>> Here an excerpt from the latter aarch64 build log:
>>      ...
>>      [   93s] checking for iconv... yes
>>      [   94s] checking for working iconv... no
>>      [   94s] checking whether iconv is compatible with its POSIX signature... yes
>>      ...
>>      [  376s] FAIL: tests/printf/printf-cov
>>      [  376s] =============================
>>      ...
>>      [  376s] U-bad-hex...
>>      [  376s] u4...
>>      [  376s] printf: test u4: stdout mismatch, comparing u4.1 (expected) and u4.O (actual)
>>      [  376s] *** u4.1	Thu Dec  5 21:06:59 2024
>>      [  376s] --- u4.O	Thu Dec  5 21:06:59 2024
>>      [  376s] ***************
>>      [  376s] *** 1 ****
>>      [  376s] ! 0
>>      [  376s] \ No newline at end of file
>>      [  376s] --- 1 ----
>>      [  376s] ! \u0030
>>      [  376s] \ No newline at end of file
>>      [  376s] U8...
>>      [  376s] printf: test U8: stdout mismatch, comparing U8.1 (expected) and U8.O (actual)
>>      [  376s] *** U8.1	Thu Dec  5 21:06:59 2024
>>      [  376s] --- U8.O	Thu Dec  5 21:06:59 2024
>>      [  376s] ***************
>>      [  376s] *** 1 ****
>>      [  376s] ! 0
>>      [  376s] \ No newline at end of file
>>      [  376s] --- 1 ----
>>      [  376s] ! \u0030
>>      [  376s] \ No newline at end of file
>>      [  376s] u-invalid...
>>      ...
>>      [  376s] FAIL tests/printf/printf-cov.pl (exit status: 1)
>>
>> Is this an FP on more platforms than Macos now, or another issue like wrong iconv() selection?
>
> Interesting.
> Can you put some debugging code in unicode_to_mb() to indicate the path taken?

     97	  /* Test whether the utf8_to_local converter is available at all.  */
     98	  if (!is_utf8)
     99	    {
    100	#if HAVE_ICONV
    101	      if (utf8_to_local == (iconv_t)(-1)) {
    102	        fprintf (stderr, "iconv function not usable: '%s'\n", callback_arg);
    103	        return failure (code, N_("iconv function not usable"), callback_arg); }
    104	#else
    105	      fprintf (stderr, "iconv function not available: '%s'\n", callback_arg);
    106	      return failure (code, N_("iconv function not available"), callback_arg);
    107	#endif
    108	    }

We're running into "iconv function not available" (line 105) there.
Compressed 'config.log' attached.

> Perhaps this is a glibc-2.40 issue (I've only tested on 2.39 as of now).

I have other systems with glibc-2.40 already ... without a problem there.

Have a nice day,
Berny