I'll put this as in-discussion for a bit before committing it.
1 patch for repository darcs-unstable@darcs.net:screened:
Sat Sep 27 15:30:18 BST 2014 Ganesh Sittampalam <ganesh@earth.li>
* remove the broken sigPIPE test
This test was introduced in 2006 to assert that darcs shouldn't exit with an
error if stdout disappears while it's running (e.g. darcs changes | head).
It looks like at some point this test stopped being useful, because it wasn't
actually producing enough output to actually fail, e.g. because of buffering
on the other side of the pipe.
It also seems that at some point darcs did start exiting with an error in this
scenario. This may have been due to GHC library changes in the handling of
EPIPE - see GHC bugs #1619 and #2699 for some context.
Then the output format of 'darcs changes' was changed by "show patch hash in UI",
which tipped the amount of output back over the edge and caused the test to
fail.
In general the typical behaviour for UNIX commands is to exit with an error
when their output pipe disappears. The exit code is typically 141 because the
command receives SIGPIPE. In our either darcs or the GHC runtime or both are
ignoring SIGPIPE, so the eventual exit code is 2 (see Darcs.Util.SignalHandler).
I think this behaviour is fairly reasonable so I am just deleting the test.
Attachments
|