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

[PATCHv5 16/16] Introduce portable_unset and use it to ensure proper && chaining

From
Elijah Newren <newren@gmail.com>
Date
Oct 3, 2010, 05:10 UTC
Message-ID
<1286082644-31595-17-git-send-email-newren@gmail.com>
In-Reply-To
<1286082644-31595-1-git-send-email-newren@gmail.com>
Signed-off-by: Elijah Newren <newren@gmail.com>
---
 t/t0001-init.sh   |   28 ++++++++++++++--------------
 t/t7006-pager.sh  |   10 +++++-----
 t/t7502-commit.sh |    4 ++--
 t/test-lib.sh     |    4 ++++
 4 files changed, 25 insertions(+), 21 deletions(-)
diff --git a/t/t0001-init.sh b/t/t0001-init.sh
index 9d4539f..c1b6ac2 100755
--- a/t/t0001-init.sh
+++ b/t/t0001-init.sh
@@ -25,7 +25,7 @@ check_config () {
 
 test_expect_success 'plain' '
 	(
-		unset GIT_DIR GIT_WORK_TREE
+		portable_unset GIT_DIR GIT_WORK_TREE &&
 		mkdir plain &&
 		cd plain &&
 		git init
@@ -35,7 +35,7 @@ test_expect_success 'plain' '
 
 test_expect_success 'plain with GIT_WORK_TREE' '
 	if (
-		unset GIT_DIR
+		portable_unset GIT_DIR &&
 		mkdir plain-wt &&
 		cd plain-wt &&
 		GIT_WORK_TREE=$(pwd) git init
@@ -48,7 +48,7 @@ test_expect_success 'plain with GIT_WORK_TREE' '
 
 test_expect_success 'plain bare' '
 	(
-		unset GIT_DIR GIT_WORK_TREE GIT_CONFIG
+		portable_unset GIT_DIR GIT_WORK_TREE GIT_CONFIG &&
 		mkdir plain-bare-1 &&
 		cd plain-bare-1 &&
 		git --bare init
@@ -58,7 +58,7 @@ test_expect_success 'plain bare' '
 
 test_expect_success 'plain bare with GIT_WORK_TREE' '
 	if (
-		unset GIT_DIR GIT_CONFIG
+		portable_unset GIT_DIR GIT_CONFIG &&
 		mkdir plain-bare-2 &&
 		cd plain-bare-2 &&
 		GIT_WORK_TREE=$(pwd) git --bare init
@@ -72,7 +72,7 @@ test_expect_success 'plain bare with GIT_WORK_TREE' '
 test_expect_success 'GIT_DIR bare' '
 
 	(
-		unset GIT_CONFIG
+		portable_unset GIT_CONFIG &&
 		mkdir git-dir-bare.git &&
 		GIT_DIR=git-dir-bare.git git init
 	) &&
@@ -82,7 +82,7 @@ test_expect_success 'GIT_DIR bare' '
 test_expect_success 'init --bare' '
 
 	(
-		unset GIT_DIR GIT_WORK_TREE GIT_CONFIG
+		portable_unset GIT_DIR GIT_WORK_TREE GIT_CONFIG &&
 		mkdir init-bare.git &&
 		cd init-bare.git &&
 		git init --bare
@@ -93,7 +93,7 @@ test_expect_success 'init --bare' '
 test_expect_success 'GIT_DIR non-bare' '
 
 	(
-		unset GIT_CONFIG
+		portable_unset GIT_CONFIG &&
 		mkdir non-bare &&
 		cd non-bare &&
 		GIT_DIR=.git git init
@@ -104,7 +104,7 @@ test_expect_success 'GIT_DIR non-bare' '
 test_expect_success 'GIT_DIR & GIT_WORK_TREE (1)' '
 
 	(
-		unset GIT_CONFIG
+		portable_unset GIT_CONFIG &&
 		mkdir git-dir-wt-1.git &&
 		GIT_WORK_TREE=$(pwd) GIT_DIR=git-dir-wt-1.git git init
 	) &&
@@ -114,7 +114,7 @@ test_expect_success 'GIT_DIR & GIT_WORK_TREE (1)' '
 test_expect_success 'GIT_DIR & GIT_WORK_TREE (2)' '
 
 	if (
-		unset GIT_CONFIG
+		portable_unset GIT_CONFIG &&
 		mkdir git-dir-wt-2.git &&
 		GIT_WORK_TREE=$(pwd) GIT_DIR=git-dir-wt-2.git git --bare init
 	)
@@ -127,7 +127,7 @@ test_expect_success 'GIT_DIR & GIT_WORK_TREE (2)' '
 test_expect_success 'reinit' '
 
 	(
-		unset GIT_CONFIG GIT_WORK_TREE GIT_CONFIG
+		portable_unset GIT_CONFIG GIT_WORK_TREE GIT_CONFIG &&
 
 		mkdir again &&
 		cd again &&
@@ -175,8 +175,8 @@ test_expect_success 'init with init.templatedir set' '
 		git config -f "$test_config"  init.templatedir "${HOME}/templatedir-source" &&
 		mkdir templatedir-set &&
 		cd templatedir-set &&
-		unset GIT_CONFIG_NOGLOBAL &&
-		unset GIT_TEMPLATE_DIR &&
+		portable_unset GIT_CONFIG_NOGLOBAL &&
+		portable_unset GIT_TEMPLATE_DIR &&
 		NO_SET_GIT_TEMPLATE_DIR=t &&
 		export NO_SET_GIT_TEMPLATE_DIR &&
 		git init
@@ -187,7 +187,7 @@ test_expect_success 'init with init.templatedir set' '
 test_expect_success 'init --bare/--shared overrides system/global config' '
 	(
 		test_config="$HOME"/.gitconfig &&
-		unset GIT_CONFIG_NOGLOBAL &&
+		portable_unset GIT_CONFIG_NOGLOBAL &&
 		git config -f "$test_config" core.bare false &&
 		git config -f "$test_config" core.sharedRepository 0640 &&
 		mkdir init-bare-shared-override &&
@@ -202,7 +202,7 @@ test_expect_success 'init --bare/--shared overrides system/global config' '
 test_expect_success 'init honors global core.sharedRepository' '
 	(
 		test_config="$HOME"/.gitconfig &&
-		unset GIT_CONFIG_NOGLOBAL &&
+		portable_unset GIT_CONFIG_NOGLOBAL &&
 		git config -f "$test_config" core.sharedRepository 0666 &&
 		mkdir shared-honor-global &&
 		cd shared-honor-global &&
diff --git a/t/t7006-pager.sh b/t/t7006-pager.sh
index fb744e3..4c5da2e 100755
--- a/t/t7006-pager.sh
+++ b/t/t7006-pager.sh
@@ -41,7 +41,7 @@ else
 fi
 
 test_expect_success 'setup' '
-	unset GIT_PAGER GIT_PAGER_IN_USE;
+	portable_unset GIT_PAGER GIT_PAGER_IN_USE &&
 	test_might_fail git config --unset core.pager &&
 
 	PAGER="cat >paginated.out" &&
@@ -254,7 +254,7 @@ test_default_pager() {
 	parse_args "$@"
 
 	$test_expectation SIMPLEPAGERTTY "$cmd - default pager is used by default" "
-		unset PAGER GIT_PAGER;
+		portable_unset PAGER GIT_PAGER &&
 		test_might_fail git config --unset core.pager &&
 		rm -f default_pager_used ||
 		cleanup_fail &&
@@ -277,7 +277,7 @@ test_PAGER_overrides() {
 	parse_args "$@"
 
 	$test_expectation TTY "$cmd - PAGER overrides default pager" "
-		unset GIT_PAGER;
+		portable_unset GIT_PAGER &&
 		test_might_fail git config --unset core.pager &&
 		rm -f PAGER_used ||
 		cleanup_fail &&
@@ -305,7 +305,7 @@ test_core_pager() {
 	parse_args "$@"
 
 	$test_expectation TTY "$cmd - repository-local core.pager setting $used_if_wanted" "
-		unset GIT_PAGER;
+		portable_unset GIT_PAGER &&
 		rm -f core.pager_used ||
 		cleanup_fail &&
 
@@ -333,7 +333,7 @@ test_pager_subdir_helper() {
 	parse_args "$@"
 
 	$test_expectation TTY "$cmd - core.pager $used_if_wanted from subdirectory" "
-		unset GIT_PAGER;
+		portable_unset GIT_PAGER &&
 		rm -f core.pager_used &&
 		rm -fr sub ||
 		cleanup_fail &&
diff --git a/t/t7502-commit.sh b/t/t7502-commit.sh
index b6b9802..028b101 100755
--- a/t/t7502-commit.sh
+++ b/t/t7502-commit.sh
@@ -252,8 +252,8 @@ test_expect_success 'committer is automatic' '
 
 	echo >>negative &&
 	(
-		unset GIT_COMMITTER_EMAIL
-		unset GIT_COMMITTER_NAME
+		portable_unset GIT_COMMITTER_EMAIL &&
+		portable_unset GIT_COMMITTER_NAME &&
 		# must fail because there is no change
 		test_must_fail git commit -e -m "sample"
 	) &&
diff --git a/t/test-lib.sh b/t/test-lib.sh
index d86edcd..1f8d488 100644
--- a/t/test-lib.sh
+++ b/t/test-lib.sh
@@ -268,6 +268,10 @@ remove_cr () {
 	tr '\015' Q | sed -e 's/Q$//'
 }
 
+portable_unset () {
+	unset $* || true
+}
+
 test_tick () {
 	if test -z "${test_tick+set}"
 	then
-- 
1.7.3.1.66.gab790
Previous: Junio C HamanoNext: Jonathan Nieder
Message 28 of 32 in “[PATCHv5 00/16] Add missing &&'s in the testsuite”
  1. Elijah NewrenOct 3, 2010
  2. 01/16 test-lib: make test_expect_code a test commandElijah Newren, Oct 3, 2010
  3. Jonathan NiederOct 3, 2010
  4. Elijah NewrenOct 3, 2010
  5. 02/16 t3020 (ls-files-error-unmatch): remove stray '1' from end of fileElijah Newren, Oct 3, 2010
  6. 03/16 t4017 (diff-retval): replace manual exit code check with test_expect_codeElijah Newren, Oct 3, 2010
  7. Jonathan NiederOct 3, 2010
  8. Elijah NewrenOct 3, 2010
  9. 04/16 t100[12] (read-tree-m-2way, read_tree_m_u_2way): add missing &&Elijah Newren, Oct 3, 2010
  10. 05/16 t4002 (diff-basic): use test_might_fail for commands that might failElijah Newren, Oct 3, 2010
  11. 06/16 t4202 (log): Replace '<git-command> || :' with test_might_failElijah Newren, Oct 3, 2010
  12. 07/16 t3600 (rm): add lots of missing &&Elijah Newren, Oct 3, 2010
  13. Jonathan NiederOct 3, 2010
  14. Elijah NewrenOct 3, 2010
  15. 08/16 t4019 (diff-wserror): add lots of missing &&Elijah Newren, Oct 3, 2010
  16. Jonathan NiederOct 3, 2010
  17. Ævar Arnfjörð BjarmasonOct 4, 2010
  18. 09/16 t4026 (color): remove unneeded and unchained commandElijah Newren, Oct 3, 2010
  19. 10/16 t5602 (clone-remote-exec): add missing &&Elijah Newren, Oct 3, 2010
  20. 11/16 t6016 (rev-list-graph-simplify-history): add missing &&Elijah Newren, Oct 3, 2010
  21. 12/16 t7001 (mv): add missing &&Elijah Newren, Oct 3, 2010
  22. 13/16 t7601 (merge-pull-config): add missing &&Elijah Newren, Oct 3, 2010
  23. 14/16 t7800 (difftool): add missing &&Elijah Newren, Oct 3, 2010
  24. 15/16 Add missing &&'s throughout the testsuiteElijah Newren, Oct 3, 2010
  25. Jonathan NiederOct 3, 2010
  26. Elijah NewrenOct 3, 2010
  27. Junio C HamanoOct 3, 2010
  28. 16/16 Introduce portable_unset and use it to ensure proper && chainingElijah Newren, Oct 3, 2010
  29. Jonathan NiederOct 3, 2010
  30. Elijah NewrenOct 3, 2010
  31. Junio C HamanoOct 3, 2010
  32. Jonathan NiederOct 3, 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.