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