Hi Bruno,

Bruno Haible via GNU coreutils General Discussion <[email protected]>
writes:

> + timeout 10 env '--default-signal=PIPE' /bin/sh -c '(env date +%s 2>full.err 
> >/dev/full)'
> + test 1 '=' 124
> + grep -E 'No space left on device' full.err
> + fail=1

The issue here, and likely for the other cases, is that Musl's fclose
returns without indicating an error. See the following output:

    # glibc
    $ ltrace -e fclose ./src/date > /dev/full
    date->fclose(0x7f2cfdf7f5c0) = -1
    date: write error: No space left on device
    +++ exited (status 1) +++

    # musl, not sure why '-e' is broken here...
    $ ltrace -e fclose ./src/date > /dev/full
    Assertion failed: bp->libsym == NULL (proc.c: breakpoint_for_symbol: 768)
    Aborted                    (core dumped) ltrace -e fclose ./src/date > 
/dev/full
    $ ltrace ./src/date 2>&1 > /dev/full | grep fclose
    fclose(0x7fc6c8363280) = 0

This, along with ferror (stdout) returning 1, causes close_stream to set
errno to zero. Which leads to this test failing since strerror (errno)
will not be printed.

I'm not sure what the proper fix would be here.

Collin

Reply via email to