Thread (18 messages) flat view 18 messages, 5 authors, 2016-06-15

Re: [PATCH] t/README: clarify test_must_fail description

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:49:09

Possibly related (same subject, not in this thread)

Ævar Arnfjörð Bjarmason [off-list ref] writes:
On Tue, Jul 20, 2010 at 18:00, Junio C Hamano [off-list ref] wrote:
quoted
   Run a git command and ensure it fails in a controlled way.  Use
   this instead of "! <git-command>".  When git-command dies due to a
   segfault, test_must_fail diagnoses it as an error; "! <git-command>"
   treats it as just another expected failure. letting such a bug go
   unnoticed.
To add to that:

    Don't use test_must_fail to negate the return values of commands
    on the system like grep, sed etc. If we can't trust that the core
    utilities won't randomly segfault we might as well die horribly.
I think you are being incoherent.  If we can't trust system "grep" and it
randomly segfaults, then a test:

    git some-command >actual &&
    ! grep string-that-should-not-be-in-the-output actual

would _pass_ when the command segfaults.  I do agree with you that "We
might as well die horribly", and the way you do so is by protecting the
test with test_must_fail, like this:

    git some-command >actual &&
    test_must_fail grep string-that-should-not-be-in-the-output actual

Having said that, as we _do_ trust system tools to a certain degree, we do
not care very deeply about this.  IOW, I wouldn't want to see a patch that
rewrites "! grep" to "test_must_fail grep".

Thanks.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help