git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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

From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Date
Jul 20, 2010, 18:43 UTC
Message-ID
<AANLkTil5eq2radUKvle7Ez48CDRfb8dvWcEobXzGaKNA@mail.gmail.com>
In-Reply-To
<7v1vaym27n.fsf@alter.siamese.dyndns.org>
On Tue, Jul 20, 2010 at 18:34, Junio C Hamano <gitster@pobox.com> wrote:
Show 32 quoted lines
> Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:
>
>> On Tue, Jul 20, 2010 at 18:00, Junio C Hamano <gitster@pobox.com> wrote:
>>
>>>    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".

An individual test would pass, yes. But if test or grep are segfaulting we're going to bail out horribly eventually anyway, so I don't think it's worth the effort to guard them with test_must_fail, and I wouldn't write tests to do that. I'd just use !.

That's what we seem to be doing in the tests so far, i.e. test_must_fail is reserved for git commands only.

Previous: Junio C HamanoNext: Jonathan Nieder
Message 15 of 40 in “t/t3700: convert two uses of negation operator '!' to use test_must_fail”
  1. t/t3700: convert two uses of negation operator '!' to use test_must_failBrandon Casey, Jul 20, 2010
  2. Ævar Arnfjörð BjarmasonJul 20, 2010
  3. Brandon CaseyJul 20, 2010
  4. Jared HanceJul 20, 2010
  5. t/README: clarify test_must_fail descriptionBrandon Casey, Jul 20, 2010
  6. Junio C HamanoJul 20, 2010
  7. Ævar Arnfjörð BjarmasonJul 20, 2010
  8. Jared HanceJul 20, 2010
  9. Convert "! git" to "test_must_fail" git.Jared Hance, Jul 20, 2010
  10. Brandon CaseyJul 20, 2010
  11. Jonathan NiederJul 20, 2010
  12. Brandon CaseyJul 20, 2010
  13. Convert "! git" to "test_must_fail git"Jared Hance, Jul 20, 2010
  14. Junio C HamanoJul 20, 2010
  15. Ævar Arnfjörð BjarmasonJul 20, 2010
  16. Jonathan NiederJul 20, 2010
  17. Ævar Arnfjörð BjarmasonJul 20, 2010
  18. Brandon CaseyJul 20, 2010
  19. Ævar Arnfjörð BjarmasonJul 20, 2010
  20. t/: work around one-shot variable assignment with test_must_failBrandon Casey, Jul 20, 2010
  21. Erick MattosJul 20, 2010
  22. Brandon CaseyJul 21, 2010
  23. Erick MattosJul 22, 2010
  24. Ævar Arnfjörð BjarmasonJul 20, 2010
  25. Ævar Arnfjörð BjarmasonJul 20, 2010
  26. Jonathan NiederJul 21, 2010
  27. Ævar Arnfjörð BjarmasonJul 21, 2010
  28. Jonathan NiederJul 21, 2010
  29. Ævar Arnfjörð BjarmasonJul 21, 2010
  30. git name-rev for fun and profit (Re: [PATCH] t/: work around one-shot variable assignment with test_must_fail)Jonathan Nieder, Jul 21, 2010
  31. Ævar Arnfjörð BjarmasonJul 21, 2010
  32. Junio C HamanoJul 21, 2010
  33. Erick MattosJul 22, 2010
  34. Brandon CaseyJul 22, 2010
  35. Brandon CaseyJul 20, 2010
  36. Ævar Arnfjörð BjarmasonJul 20, 2010
  37. Ævar Arnfjörð BjarmasonJul 20, 2010
  38. gitweb: clarify search results page when no matching commit foundJonathan Nieder, Jul 21, 2010
  39. Jakub NarebskiJul 21, 2010
  40. gitweb: clarify search results page when no matching commit foundJonathan Nieder, Jul 21, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.