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

[PATCH v2 2/5] t1500: test_rev_parse: facilitate future test enhancements

From
Eric Sunshine <sunshine@sunshineco.com>
Date
May 17, 2016, 19:36 UTC
Message-ID
<20160517193630.10379-3-sunshine@sunshineco.com>
In-Reply-To
<20160517193630.10379-1-sunshine@sunshineco.com>

Tests run by test_rev_parse() are nearly identical; each invokes git-rev-parse with a single option and compares the result against an expected value. Such duplication makes it onerous to extend the tests since any change needs to be repeated in each test. Avoid the duplication by parameterizing the test and driving it via a for-loop.

Signed-off-by: Eric Sunshine <sunshine@sunshineco.com>
---
 t/t1500-rev-parse.sh | 44 +++++++++++++++++---------------------------
 1 file changed, 17 insertions(+), 27 deletions(-)
diff --git a/t/t1500-rev-parse.sh b/t/t1500-rev-parse.sh
index 0194f54..c84f5c3 100755
--- a/t/t1500-rev-parse.sh
+++ b/t/t1500-rev-parse.sh
@@ -3,38 +3,28 @@
 test_description='test git rev-parse'
 . ./test-lib.sh
 
-test_rev_parse() {
+# usage: label is-bare is-inside-git is-inside-work prefix git-dir
+test_rev_parse () {
 	name=$1
 	shift
 
-	test_expect_success "$name: is-bare-repository" \
-	"test '$1' = \"\$(git rev-parse --is-bare-repository)\""
-	shift
-	[ $# -eq 0 ] && return
-
-	test_expect_success "$name: is-inside-git-dir" \
-	"test '$1' = \"\$(git rev-parse --is-inside-git-dir)\""
-	shift
-	[ $# -eq 0 ] && return
-
-	test_expect_success "$name: is-inside-work-tree" \
-	"test '$1' = \"\$(git rev-parse --is-inside-work-tree)\""
-	shift
-	[ $# -eq 0 ] && return
-
-	test_expect_success "$name: prefix" \
-	"test '$1' = \"\$(git rev-parse --show-prefix)\""
-	shift
-	[ $# -eq 0 ] && return
-
-	test_expect_success "$name: git-dir" \
-	"test '$1' = \"\$(git rev-parse --git-dir)\""
-	shift
-	[ $# -eq 0 ] && return
+	for o in is-bare-repository \
+		 is-inside-git-dir \
+		 is-inside-work-tree \
+		 show-prefix \
+		 git-dir
+	do
+		test $# -eq 0 && break
+		expect="$1"
+		test_expect_success "$name: $o" '
+			echo "$expect" >expect &&
+			git rev-parse --$o >actual &&
+			test_cmp expect actual
+		'
+		shift
+	done
 }
 
-# label is-bare is-inside-git is-inside-work prefix git-dir
-
 ROOT=$(pwd)
 
 test_expect_success 'setup' '
-- 
2.8.2.703.g78b384c
Previous: Eric SunshineNext: SZEDER Gábor
Message 3 of 16 in “modernize t1500”
  1. 0/5 modernize t1500Eric Sunshine, May 17, 2016
  2. 1/5 t1500: be considerate to future potential testsEric Sunshine, May 17, 2016
  3. 2/5 t1500: test_rev_parse: facilitate future test enhancementsEric Sunshine, May 17, 2016
  4. SZEDER GáborMay 18, 2016
  5. Eric SunshineMay 18, 2016
  6. Eric SunshineMay 18, 2016
  7. 3/5 t1500: avoid changing working directory outside of testsEric Sunshine, May 17, 2016
  8. Junio C HamanoMay 17, 2016
  9. Eric SunshineMay 17, 2016
  10. Jeff KingMay 17, 2016
  11. Eric SunshineMay 17, 2016
  12. Junio C HamanoMay 17, 2016
  13. SZEDER GáborMay 17, 2016
  14. Eric SunshineMay 18, 2016
  15. 4/5 t1500: avoid setting configuration options outside of testsEric Sunshine, May 17, 2016
  16. 5/5 t1500: avoid setting environment variables outside of testsEric Sunshine, May 17, 2016

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.