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

[PATCH 11/11] t7001: move cleanup code from outside the tests into them

From
shubham verma <shubhunic@gmail.com>
Date
Sep 25, 2020, 17:02 UTC
Message-ID
<20200925170256.11490-12-shubhunic@gmail.com>
In-Reply-To
<20200925170256.11490-1-shubhunic@gmail.com>
From: Shubham Verma <shubhunic@gmail.com>

Let's use test_when_finished() to include cleanup code inside the tests, as it's cleaner and safer to not have any code outside the tests.

Signed-off-by: shubham verma <shubhunic@gmail.com>
---
 t/t7001-mv.sh | 25 +++++++++++--------------
 1 file changed, 11 insertions(+), 14 deletions(-)
diff --git a/t/t7001-mv.sh b/t/t7001-mv.sh
index 7bb4a7b759..b4d04ceaf8 100755
--- a/t/t7001-mv.sh
+++ b/t/t7001-mv.sh
@@ -32,6 +32,7 @@ test_expect_success 'commiting the change' '
 '
 
 test_expect_success 'checking the commit' '
+	test_when_finished "rmdir path1" &&
 	git diff-tree -r -M --name-status  HEAD^ HEAD >actual &&
 	grep "^R100..*path1/COPYING..*path0/COPYING" actual
 '
@@ -43,6 +44,7 @@ test_expect_success 'mv --dry-run does not move file' '
 '
 
 test_expect_success 'checking -k on non-existing file' '
+	test_when_finished "rm -f idontexist path0/idontexist" &&
 	git mv -k idontexist path0
 '
 
@@ -55,6 +57,7 @@ test_expect_success 'checking -k on untracked file' '
 
 test_expect_success 'checking -k on multiple untracked files' '
 	: > untracked2 &&
+	test_when_finished "rm -f untracked2 path0/untracked2" &&
 	git mv -k untracked1 untracked2 path0 &&
 	test -f untracked1 &&
 	test -f untracked2 &&
@@ -64,18 +67,14 @@ test_expect_success 'checking -k on multiple untracked files' '
 
 test_expect_success 'checking -f on untracked file with existing target' '
 	: > path0/untracked1 &&
+	test_when_finished "rm -f untracked1 path0/untracked1" &&
+	test_when_finished "rm -f .git/index.lock" &&
 	test_must_fail git mv -f untracked1 path0 &&
 	test ! -f .git/index.lock &&
 	test -f untracked1 &&
 	test -f path0/untracked1
 '
 
-# clean up the mess in case bad things happen
-rm -f idontexist untracked1 untracked2 \
-     path0/idontexist path0/untracked1 path0/untracked2 \
-     .git/index.lock
-rmdir path1
-
 test_expect_success 'moving to absent target with trailing slash' '
 	test_must_fail git mv path0/COPYING no-such-dir/ &&
 	test_must_fail git mv path0/COPYING no-such-dir// &&
@@ -149,10 +148,12 @@ test_expect_success 'do not move directory over existing directory' '
 '
 
 test_expect_success 'move into "."' '
+	test_when_finished "rm -fr path?" &&
 	git mv path1/path2/ .
 '
 
 test_expect_success "Michael Cassar's test case" '
+	test_when_finished "rm -fr papers partA" &&
 	rm -fr .git papers partA &&
 	git init &&
 	mkdir -p papers/unsorted papers/all-papers partA &&
@@ -168,8 +169,6 @@ test_expect_success "Michael Cassar's test case" '
 	git ls-tree -r $T | verbose grep partA/outline.txt
 '
 
-rm -fr papers partA path?
-
 test_expect_success "Sergey Vlasov's test case" '
 	rm -fr .git &&
 	git init &&
@@ -230,6 +229,7 @@ test_expect_success 'git mv to move multiple sources into a directory' '
 '
 
 test_expect_success 'git mv should not change sha1 of moved cache entry' '
+	test_when_finished "rm -f dirty dirty2" &&
 	rm -fr .git &&
 	git init &&
 	echo 1 >dirty &&
@@ -242,8 +242,6 @@ test_expect_success 'git mv should not change sha1 of moved cache entry' '
 	test "$entry" = "$(git ls-files --stage dirty | cut -f 1)"
 '
 
-rm -f dirty dirty2
-
 # NB: This test is about the error message
 # as well as the failure.
 test_expect_success 'git mv error on conflicted file' '
@@ -262,6 +260,7 @@ test_expect_success 'git mv error on conflicted file' '
 '
 
 test_expect_success 'git mv should overwrite symlink to a file' '
+	test_when_finished "rm -f moved symlink" &&
 	rm -fr .git &&
 	git init &&
 	echo 1 >moved &&
@@ -276,9 +275,8 @@ test_expect_success 'git mv should overwrite symlink to a file' '
 	git diff-files --quiet
 '
 
-rm -f moved symlink
-
 test_expect_success 'git mv should overwrite file with a symlink' '
+	test_when_finished "rm -f symlink" &&
 	rm -fr .git &&
 	git init &&
 	echo 1 >moved &&
@@ -292,11 +290,10 @@ test_expect_success 'git mv should overwrite file with a symlink' '
 '
 
 test_expect_success SYMLINKS 'check moved symlink' '
+	test_when_finished "rm -f moved" &&
 	test -h moved
 '
 
-rm -f moved symlink
-
 test_expect_success 'setup submodule' '
 	git commit -m initial &&
 	git reset --hard &&
-- 
2.25.1
Previous: shubham vermaNext: Eric Sunshine
Message 22 of 27 in “Modernizing the t7001 test script”
  1. 00/11 Modernizing the t7001 test scriptshubham verma, Sep 25, 2020
  2. 01/11 t7001: convert tests from the old style to the current styleshubham verma, Sep 25, 2020
  3. Eric SunshineSep 25, 2020
  4. 02/11 t7001: use TAB instead of spacesshubham verma, Sep 25, 2020
  5. Eric SunshineSep 25, 2020
  6. 03/11 t7001: remove unnecessary blank linesshubham verma, Sep 25, 2020
  7. Eric SunshineSep 25, 2020
  8. Junio C HamanoSep 25, 2020
  9. 04/11 t7001: change the style for cd according to subshellshubham verma, Sep 25, 2020
  10. Eric SunshineSep 25, 2020
  11. 05/11 t7001: remove whitespace after redirect operatorsshubham verma, Sep 25, 2020
  12. 06/11 t7001: change (cd <path> && git foo) to (git -C <path> foo)shubham verma, Sep 25, 2020
  13. Eric SunshineSep 25, 2020
  14. 07/11 t7001: use ': >' rather than 'touch'shubham verma, Sep 25, 2020
  15. Eric SunshineSep 25, 2020
  16. Junio C HamanoSep 25, 2020
  17. 08/11 t7001: put each command on a separate lineshubham verma, Sep 25, 2020
  18. Eric SunshineSep 25, 2020
  19. 09/11 t7001: use here-docs instead of echoshubham verma, Sep 25, 2020
  20. Junio C HamanoSep 25, 2020
  21. 10/11 t7001: use `test` rather than `[`shubham verma, Sep 25, 2020
  22. 11/11 t7001: move cleanup code from outside the tests into themshubham verma, Sep 25, 2020
  23. Eric SunshineSep 25, 2020
  24. Junio C HamanoSep 25, 2020
  25. Eric SunshineSep 25, 2020
  26. Shubham VermaOct 1, 2020
  27. Junio C HamanoDec 22, 2020

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.