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

[PATCH 4/7] t0004 (unwritable files): simplify error handling

From
Jonathan Nieder <jrnieder@gmail.com>
Date
Sep 7, 2010, 01:50 UTC
Message-ID
<20100907015017.GE1182@burratino>
In-Reply-To
<20100907014135.GA1182@burratino>
Instead of
	... normal test script ...
	status=$?
	... cleanup ...
	(exit $status)

set up cleanup commands with test_when_finished. This makes the test script a little shorter, and more importantly, it ensures errors during cleanup are reported.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
---
 t/t0004-unwritable.sh |   52 +++++++++++++-----------------------------------
 1 files changed, 14 insertions(+), 38 deletions(-)
diff --git a/t/t0004-unwritable.sh b/t/t0004-unwritable.sh
index 2342ac5..3e6a334 100755
--- a/t/t0004-unwritable.sh
+++ b/t/t0004-unwritable.sh
@@ -16,53 +16,29 @@ test_expect_success setup '
 '
 
 test_expect_success POSIXPERM 'write-tree should notice unwritable repository' '
-
-	(
-		chmod a-w .git/objects .git/objects/?? &&
-		test_must_fail git write-tree
-	)
-	status=$?
-	chmod 775 .git/objects .git/objects/??
-	(exit $status)
-
+	test_when_finished "chmod 775 .git/objects .git/objects/??" &&
+	chmod a-w .git/objects .git/objects/?? &&
+	test_must_fail git write-tree
 '
 
 test_expect_success POSIXPERM 'commit should notice unwritable repository' '
-
-	(
-		chmod a-w .git/objects .git/objects/?? &&
-		test_must_fail git commit -m second
-	)
-	status=$?
-	chmod 775 .git/objects .git/objects/??
-	(exit $status)
-
+	test_when_finished "chmod 775 .git/objects .git/objects/??" &&
+	chmod a-w .git/objects .git/objects/?? &&
+	test_must_fail git commit -m second
 '
 
 test_expect_success POSIXPERM 'update-index should notice unwritable repository' '
-
-	(
-		echo 6O >file &&
-		chmod a-w .git/objects .git/objects/?? &&
-		test_must_fail git update-index file
-	)
-	status=$?
-	chmod 775 .git/objects .git/objects/??
-	(exit $status)
-
+	test_when_finished "chmod 775 .git/objects .git/objects/??" &&
+	echo 6O >file &&
+	chmod a-w .git/objects .git/objects/?? &&
+	test_must_fail git update-index file
 '
 
 test_expect_success POSIXPERM 'add should notice unwritable repository' '
-
-	(
-		echo b >file &&
-		chmod a-w .git/objects .git/objects/?? &&
-		test_must_fail git add file
-	)
-	status=$?
-	chmod 775 .git/objects .git/objects/??
-	(exit $status)
-
+	test_when_finished "chmod 775 .git/objects .git/objects/??" &&
+	echo b >file &&
+	chmod a-w .git/objects .git/objects/?? &&
+	test_must_fail git add file
 '
 
 test_done
-- 
1.7.2.3
Previous: Brad KingNext: Jonathan Nieder
Message 10 of 27 in “Several tests: cd inside subshell instead of around”
  1. Several tests: cd inside subshell instead of aroundJens Lehmann, Sep 6, 2010
  2. Jonathan NiederSep 6, 2010
  3. Jens LehmannSep 6, 2010
  4. 0/7 Re: [PATCH] Several tests: cd inside subshell instead of aroundJonathan Nieder, Sep 7, 2010
  5. 1/7 tests: subshell indentation stylefixJonathan Nieder, Sep 7, 2010
  6. Jonathan NiederSep 7, 2010
  7. 2/7 t1450 (fsck): remove dangling objectsJonathan Nieder, Sep 7, 2010
  8. 3/7 t2105 (gitfile): add missing &&Jonathan Nieder, Sep 7, 2010
  9. Brad KingSep 7, 2010
  10. 4/7 t0004 (unwritable files): simplify error handlingJonathan Nieder, Sep 7, 2010
  11. 5/7 t1302 (core.repositoryversion): style tweaksJonathan Nieder, Sep 7, 2010
  12. Nguyen Thai Ngoc DuySep 7, 2010
  13. 6/7 t1303 (config): style tweaksJonathan Nieder, Sep 7, 2010
  14. Jeff KingSep 7, 2010
  15. Junio C HamanoSep 7, 2010
  16. Jonathan NiederSep 7, 2010
  17. guarding everything with test_expect_success (Re: [PATCH 6/7] t1303 (config): style tweaks)Jonathan Nieder, Sep 7, 2010
  18. Jeff KingSep 7, 2010
  19. Jonathan NiederSep 7, 2010
  20. 7/7 t2016 (checkout -p): use printf for multiline y/n inputJonathan Nieder, Sep 7, 2010
  21. Thomas RastSep 7, 2010
  22. Jonathan NiederSep 7, 2010
  23. Junio C HamanoSep 6, 2010
  24. Jonathan NiederSep 7, 2010
  25. Junio C HamanoSep 7, 2010
  26. Jonathan NiederSep 7, 2010
  27. t1020: Get rid of 'cd "$HERE"' at the start of each testJens Lehmann, Sep 7, 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.