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

Re: [PATCHv4 06/15] t3600 (rm): add lots of missing &&

From
Elijah Newren <newren@gmail.com>
Date
Oct 3, 2010, 02:47 UTC
Message-ID
<AANLkTi=oyCFLYuBa6CPCC4PpDt6aPe1wXz98M_F+qary@mail.gmail.com>
In-Reply-To
<20101001104823.GD6816@burratino>
On Fri, Oct 1, 2010 at 4:48 AM, Jonathan Nieder <jrnieder@gmail.com> wrote:
Show 70 quoted lines
> Elijah Newren wrote:
>
>> Also delete unnecessary, failing code and add some test_when_finished
>> calls to make sure tests clean up after themselves.
>
> I don't understand this one.
>
> If tests clean up after themselves, each will restore some pristine
> state as though (at least as far as the other tests care) it had never
> run at all, right?
>
>> --- a/t/t3600-rm.sh
>> +++ b/t/t3600-rm.sh
>> @@ -38,37 +38,33 @@ test_expect_success \
>>
>>  test_expect_success \
>>      'Test that git rm --cached foo succeeds if the index matches the file' \
>> -    'echo content > foo
>> -     git add foo
>> +    'echo content > foo &&
>> +     git add foo &&
>>       git rm --cached foo'
>
> Before this runs: foo is empty, absent from index.
> After it runs: foo has content, still absent from index.
> Requires: nothing.
>
>>  test_expect_success \
>>      'Test that git rm --cached foo succeeds if the index matches the file' \
>> -    'echo content > foo
>> -     git add foo
>> -     git commit -m foo
>> -     echo "other content" > foo
>> +    'echo content > foo &&
>> +     git add foo &&
>> +     git commit -m foo &&
>> +     echo "other content" > foo &&
>> +     test_when_finished "git checkout HEAD -- foo" &&
>>       git rm --cached foo'
>
> Before this runs: foo has content, absent from index.
> After this runs (without patch): foo has other content, absent from index.
> After this runs (with patch): foo has content, matching index.
> Requires: nothing.
>
>>  test_expect_success \
>>      'Test that git rm --cached foo fails if the index matches neither the file nor HEAD' '
>> -     echo content > foo
>> -     git add foo
>> -     git commit -m foo
>> -     echo "other content" > foo
>> -     git add foo
>> -     echo "yet another content" > foo
>> +     echo "other content" > foo &&
>> +     git add foo &&
>> +     echo "yet another content" > foo &&
>> +     test_when_finished "git checkout HEAD -- foo" &&
>>       test_must_fail git rm --cached foo
>>  '
>
> Before this runs: see above.
> After this runs (without patch): foo has yet another content, absent from index.
> After this runs (with patch): foo has content, matching index.
> Requires (without patch): nothing.
> Requires (with patch): HEAD:foo is content.
>
> [etc]
>
> So if I understand correctly, this sacrifices the ability to
> skip individual tests.  What does one gain in return?

Good eye. It does remove failing code and add correct && chaining, but yes, it will fail if you skip sufficiently many individual tests. I believe my original patch submission (http://article.gmane.org/gmane.comp.version-control.git/157080) does not suffer from this same problem. Should I revert to it?

Elijah
Previous: Jonathan NiederNext: Elijah Newren
Message 24 of 51 in “[PATCHv4 00/15] Add missing &&'s in the testsuite”
  1. Elijah NewrenSep 26, 2010
  2. 01/15 t3020 (ls-files-error-unmatch): remove stray '1' from end of fileElijah Newren, Sep 26, 2010
  3. 02/15 t4017 (diff-retval): replace manual exit code check with test_expect_codeElijah Newren, Sep 26, 2010
  4. Junio C HamanoSep 29, 2010
  5. Ævar Arnfjörð BjarmasonSep 29, 2010
  6. Jonathan NiederOct 1, 2010
  7. Ævar Arnfjörð BjarmasonOct 1, 2010
  8. Jonathan NiederOct 1, 2010
  9. Junio C HamanoOct 1, 2010
  10. test-lib: make test_expect_code a test commandÆvar Arnfjörð Bjarmason, Oct 1, 2010
  11. Sverre RabbelierOct 1, 2010
  12. Ævar Arnfjörð BjarmasonOct 1, 2010
  13. Sverre RabbelierOct 1, 2010
  14. test-lib: make test_expect_code a test commandÆvar Arnfjörð Bjarmason, Oct 1, 2010
  15. Jonathan NiederOct 1, 2010
  16. 03/15 t100[12] (read-tree-m-2way, read_tree_m_u_2way): add missing &&Elijah Newren, Sep 26, 2010
  17. Junio C HamanoSep 29, 2010
  18. Jonathan NiederOct 1, 2010
  19. 04/15 t4002 (diff-basic): use test_might_fail for commands that might failElijah Newren, Sep 26, 2010
  20. Jonathan NiederOct 1, 2010
  21. 05/15 t4202 (log): Replace '<git-command> || :' with test_might_failElijah Newren, Sep 26, 2010
  22. 06/15 t3600 (rm): add lots of missing &&Elijah Newren, Sep 26, 2010
  23. Jonathan NiederOct 1, 2010
  24. Elijah NewrenOct 3, 2010
  25. 07/15 t4019 (diff-wserror): add lots of missing &&Elijah Newren, Sep 26, 2010
  26. Junio C HamanoSep 29, 2010
  27. Elijah NewrenOct 3, 2010
  28. Jonathan NiederOct 1, 2010
  29. 08/15 t4026 (color): remove unneeded and unchained commandElijah Newren, Sep 26, 2010
  30. 09/15 t5602 (clone-remote-exec): add missing &&Elijah Newren, Sep 26, 2010
  31. Junio C HamanoSep 29, 2010
  32. Jonathan NiederOct 1, 2010
  33. Elijah NewrenOct 3, 2010
  34. 10/15 t6016 (rev-list-graph-simplify-history): add missing &&Elijah Newren, Sep 26, 2010
  35. Jonathan NiederSep 27, 2010
  36. 11/15 t7001 (mv): add missing &&Elijah Newren, Sep 26, 2010
  37. 12/15 t7601 (merge-pull-config): add missing &&Elijah Newren, Sep 26, 2010
  38. 13/15 t7800 (difftool): add missing &&Elijah Newren, Sep 26, 2010
  39. Jonathan NiederOct 1, 2010
  40. 14/15 Add missing &&'s throughout the testsuiteElijah Newren, Sep 26, 2010
  41. Junio C HamanoSep 29, 2010
  42. Ævar Arnfjörð BjarmasonOct 1, 2010
  43. Jonathan NiederOct 1, 2010
  44. 15/15 Replace "unset VAR" with "unset VAR;" in testsuite as per t/READMEElijah Newren, Sep 26, 2010
  45. Junio C HamanoSep 29, 2010
  46. Ævar Arnfjörð BjarmasonSep 29, 2010
  47. Elijah NewrenSep 29, 2010
  48. Junio C HamanoSep 30, 2010
  49. Elijah NewrenSep 30, 2010
  50. Jonathan NiederOct 1, 2010
  51. Sverre RabbelierOct 1, 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.