Thread (7 messages) 7 messages, 3 authors, 2016-06-15

Re: [PATCH] t/t3700: convert two uses of negation operator '!' to use test_must_fail

From: Ævar Arnfjörð Bjarmason <hidden>
Date: 2016-06-15 22:49:09

On Tue, Jul 20, 2010 at 16:38, Jared Hance [off-list ref] wrote:
On Tue, Jul 20, 2010 at 11:32:33AM -0500, Brandon Casey wrote:
quoted
I think you have misunderstood the explanation of test_must_fail.  The
paragraph you quoted actually recommends using test_must_fail instead
of "! <git-command>".

It says:

   Use this instead of "! <git-command>" to fail when git commands
   segfault.

Or with a slight rewording:

   Use test_must_fail instead of "! <git-command>" since test_must_fail
   will fail when <git-command> segfaults.
I think the wording of description of test_must_fail is slightly
ambiguous. I read it to mean that:

   Use test_must_fail only when you are testing to see if git will
   segfault.
I've interpreted it to mean that as well, but it's starting to look
like a good example of a garden path sentence.

Anyway, it looks like we're wrong and Brandon was right. But I'm going
to submit a doc patch to t/README. Here's the existing use of !
v.s. test_must_fail:

    $ cat *.sh | grep -c 'test_must_fail git'
    863
    $ cat *sh | grep -c '! git '
    30

I.e. ! is only used to negate non-git commands like test.

The example in the comments for test_must_fail in test-lib.sh backs this up:

    # Writing this as "! git checkout ../outerspace" is wrong, because
    # the failure could be due to a segv.  We want a controlled failure.
Rather than:

   Use test_must_fail to be safe from git segfaults.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help