diff options
Diffstat (limited to 't/t3600-rm.sh')
-rwxr-xr-x | t/t3600-rm.sh | 49 |
1 files changed, 31 insertions, 18 deletions
diff --git a/t/t3600-rm.sh b/t/t3600-rm.sh index b1ee622ef7..79c06adf1f 100755 --- a/t/t3600-rm.sh +++ b/t/t3600-rm.sh @@ -59,15 +59,16 @@ test_expect_success \ echo "other content" > foo git rm --cached foo' -test_expect_failure \ - 'Test that git rm --cached foo fails if the index matches neither the file nor HEAD' \ - 'echo content > 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 rm --cached 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' \ @@ -81,7 +82,7 @@ test_expect_success \ test_expect_success \ 'Post-check that foo exists but is not in index after git rm foo' \ - '[ -f foo ] && ! git ls-files --error-unmatch foo' + '[ -f foo ] && test_must_fail git ls-files --error-unmatch foo' test_expect_success \ 'Pre-check that bar exists and is in index before "git rm bar"' \ @@ -93,7 +94,7 @@ test_expect_success \ test_expect_success \ 'Post-check that bar does not exist and is not in index after "git rm -f bar"' \ - '! [ -f bar ] && ! git ls-files --error-unmatch bar' + '! [ -f bar ] && test_must_fail git ls-files --error-unmatch bar' test_expect_success \ 'Test that "git rm -- -q" succeeds (remove a file that looks like an option)' \ @@ -106,9 +107,9 @@ embedded'" if test "$test_failed_remove" = y; then chmod a-w . -test_expect_failure \ +test_expect_success \ 'Test that "git rm -f" fails if its rm fails' \ - 'git rm -f baz' + 'test_must_fail git rm -f baz' chmod 775 . else test_expect_success 'skipping removal failure (perhaps running as root?)' : @@ -150,7 +151,7 @@ test_expect_success 'Re-add foo and baz' ' test_expect_success 'Modify foo -- rm should refuse' ' echo >>foo && - ! git rm foo baz && + test_must_fail git rm foo baz && test -f foo && test -f baz && git ls-files --error-unmatch foo baz @@ -160,8 +161,8 @@ test_expect_success 'Modified foo -- rm -f should work' ' git rm -f foo baz && test ! -f foo && test ! -f baz && - ! git ls-files --error-unmatch foo && - ! git ls-files --error-unmatch bar + test_must_fail git ls-files --error-unmatch foo && + test_must_fail git ls-files --error-unmatch bar ' test_expect_success 'Re-add foo and baz for HEAD tests' ' @@ -172,7 +173,7 @@ test_expect_success 'Re-add foo and baz for HEAD tests' ' ' test_expect_success 'foo is different in index from HEAD -- rm should refuse' ' - ! git rm foo baz && + test_must_fail git rm foo baz && test -f foo && test -f baz && git ls-files --error-unmatch foo baz @@ -182,8 +183,8 @@ test_expect_success 'but with -f it should work.' ' git rm -f foo baz && test ! -f foo && test ! -f baz && - ! git ls-files --error-unmatch foo - ! git ls-files --error-unmatch baz + test_must_fail git ls-files --error-unmatch foo + test_must_fail git ls-files --error-unmatch baz ' test_expect_success 'Recursive test setup' ' @@ -194,14 +195,14 @@ test_expect_success 'Recursive test setup' ' ' test_expect_success 'Recursive without -r fails' ' - ! git rm frotz && + test_must_fail git rm frotz && test -d frotz && test -f frotz/nitfol ' test_expect_success 'Recursive with -r but dirty' ' echo qfwfq >>frotz/nitfol - ! git rm -r frotz && + test_must_fail git rm -r frotz && test -d frotz && test -f frotz/nitfol ' @@ -212,8 +213,20 @@ test_expect_success 'Recursive with -r -f' ' ! test -d frotz ' -test_expect_failure 'Remove nonexistent file returns nonzero exit status' ' - git rm nonexistent +test_expect_success 'Remove nonexistent file returns nonzero exit status' ' + test_must_fail git rm nonexistent +' + +test_expect_success 'Call "rm" from outside the work tree' ' + mkdir repo && + cd repo && + git init && + echo something > somefile && + git add somefile && + git commit -m "add a file" && + (cd .. && + git --git-dir=repo/.git --work-tree=repo rm somefile) && + test_must_fail git ls-files --error-unmatch somefile ' test_done |