Subject: [PATCHv6 07/16] t3600 (rm): add lots of missing &&

From: Elijah Newren <[email-masked]>
Date: Sun, 3 Oct 2010 14:00:05 -0600

Also replace failing code with similar clean-up to set the appropriate
state the test needs.

Signed-off-by: Elijah Newren <[email-masked]>
---
May be worth considering an alternative; from
http://thread.gmane.org/gmane.comp.version-control.git/157827/focus=157896:

>On Sun, Oct 3, 2010 at 8:28 AM, Jonathan Nieder <[email-masked]> wrote:
>>>  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
>>> +     git checkout HEAD -- foo &&
>> [...]
>>
>> Why not
>>        -       echo content > foo
>>        -       git add foo
>>        -       git commit -m foo
>>        +       echo content > foo &&
>>        +       git add foo &&
>>        +       git commit --allow-empty -m foo &&
>> ?
>
> What advantage does using these three commands have over 'git checkout
> HEAD -- foo'?  Perhaps I'm missing something, but I don't see it.
> It's three commands to one, and the tests don't depend on foo starting
> with contents of 'content'; just that foo matches HEAD to start.

Is there an advantage of the three-command version I'm just missing, or
do people just prefer it?

 t/t3600-rm.sh |   38 +++++++++++++++++---------------------
 1 files changed, 17 insertions(+), 21 deletions(-)

diff --git a/t/t3600-rm.sh b/t/t3600-rm.sh
index b26cabd..9660ae0 100755
--- 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'
 
 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 &&
      git rm --cached foo'
 
 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
+     git checkout HEAD -- foo &&
+     echo "other content" > foo &&
+     git add foo &&
+     echo "yet another content" > foo &&
      test_must_fail git rm --cached foo
 '
 
 test_expect_success \
     'Test that git rm --cached -f foo works in case where --cached only did not' \
-    'echo content > foo
-     git add foo
-     git commit -m foo
-     echo "other content" > foo
-     git add foo
-     echo "yet another content" > foo
+    'git checkout HEAD -- foo &&
+     echo "other content" > foo &&
+     git add foo &&
+     echo "yet another content" > foo &&
      git rm --cached -f foo'
 
 test_expect_success \
@@ -170,7 +166,7 @@ test_expect_success 'but with -f it should work.' '
 	git rm -f foo baz &&
 	test ! -f foo &&
 	test ! -f baz &&
-	test_must_fail git ls-files --error-unmatch foo
+	test_must_fail git ls-files --error-unmatch foo &&
 	test_must_fail git ls-files --error-unmatch baz
 '
 
@@ -183,7 +179,7 @@ test_expect_success 'refuse to remove cached empty file with modifications' '
 
 test_expect_success 'remove intent-to-add file without --force' '
 	echo content >intent-to-add &&
-	git add -N intent-to-add
+	git add -N intent-to-add &&
 	git rm --cached intent-to-add
 '
 
@@ -201,7 +197,7 @@ test_expect_success 'Recursive without -r fails' '
 '
 
 test_expect_success 'Recursive with -r but dirty' '
-	echo qfwfq >>frotz/nitfol
+	echo qfwfq >>frotz/nitfol &&
 	test_must_fail git rm -r frotz &&
 	test -d frotz &&
 	test -f frotz/nitfol
-- 
1.7.3.1.66.gab790