Hi Keith,

Keith Thompson <[email protected]> writes:

> I built coreutils v9.12 from the git repo on Ubuntu 26.04.1.
> Three tests failed with "make check":
>
> $ grep FAIL tests/test-suite.log
> # XFAIL: 0
> # FAIL:  3
> FAIL: tests/cksum/sum-sysv
> FAIL tests/cksum/sum-sysv.sh (exit status: 1)
> FAIL: tests/cp/copy-FMR
> FAIL tests/cp/copy-FMR.sh (exit status: 1)
> FAIL: tests/cp/sparse-extents-2
> FAIL tests/cp/sparse-extents-2.sh (exit status: 1)
>
> System information:
>
> $ uname -a
> Linux bomb20 7.0.0-38-generic #38-Ubuntu SMP PREEMPT_DYNAMIC Fri Sep
> 4 09:10:14 UTC 2026 x86_64 GNU/Linux
> $ cat /etc/lsb-release
> DISTRIB_ID=Ubuntu
> DISTRIB_RELEASE=26.04
> DISTRIB_CODENAME=resolute
> DISTRIB_DESCRIPTION="Ubuntu 26.04.1 LTS"

Thanks for the report.

Looking at the parts that fail. For tests/cksum/sum-sysv.sh:

    + perl -e 'use warnings'
    + perl -e '$s = chr(255) x 65537; foreach (1..257) {print $s}'
    + sum -s
    + cat
    + compare exp out
    + compare_dev_null_ exp out
    + test 2 = 2
    + test xexp = x/dev/null
    + test xout = x/dev/null
    + return 2
    + case $? in
    + compare_ exp out
    + LC_ALL=C
    + diff -u exp out
    --- exp     2026-10-04 22:00:21.770375228 -0700
    +++ out     2026-10-04 22:00:21.768375204 -0700
    @@ -1 +1 @@
    -65535 32897
    +1798 65794

For tests/cp/copy-FMR.sh:

    + perl -e 'for (1..600) { sysseek (*STDOUT, 4096, 1)' -e '&& syswrite 
(*STDOUT, "a" x 1024) or die "$!"}'
    syswrite() isn't allowed on :utf8 handles at -e line 1.
    + fail=1

And for tests/cp/sparse-extents-2.sh:

    + perl -e '$n = 1 * 1024; *F = *STDOUT;' -e 'for (1..1) { sysseek (*F, $n, 
1)' -e '&& syswrite (*F, chr($_)x$n) or die "$!"}'
    syswrite() isn't allowed on :utf8 handles at -e line 2.
    + fail=1

So, thankfully, I don't think these are actual issues. Do you have the
PERL_UNICODE environment variable defined? I could reproduce the errors
by running this:

    $ PERL_UNICODE=S make -j 16 check

You can also see the difference like this:

    $ printenv PERL_UNICODE
    $ perl -e 'print join ("\n", PerlIO::get_layers (STDOUT)) . "\n"'
    unix
    perlio
    $ PERL_UNICODE=S perl -e 'print join ("\n", PerlIO::get_layers (STDOUT)) . 
"\n"'
    unix
    perlio
    utf8

If not, perhaps there is another way to get this behavior?

Collin



Reply via email to