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

[PATCH 2/8] t1300: modernize part of script

From
MÅMartin Ågren <martin.agren@gmail.com>
Date
Nov 13, 2019, 18:55 UTC
Message-ID
<37e2b121d5946cfacb3fc4d2721770e496f7b752.1573670565.git.martin.agren@gmail.com>
In-Reply-To
<cover.1573670565.git.martin.agren@gmail.com>

Create `.git/config` and `expect` files inside `test_expect_success`, either inside the one existing test that uses the file, or in a new "setup" step before several tests that use it.

Redirect using `>output` rather than `> output`. Use `<<-\EOF" with heredocs rather than just `<< EOF` and use `q_to_tab` to create properly indented input and output files.

This commit does not modernize the whole script, but just some of it, around the point where a later commit will add new content.

Signed-off-by: Martin Ågren <martin.agren@gmail.com>
---
 t/t1300-config.sh | 138 ++++++++++++++++++++++------------------------
 1 file changed, 65 insertions(+), 73 deletions(-)
diff --git a/t/t1300-config.sh b/t/t1300-config.sh
index 983a0a1583..a38cc143a1 100755
--- a/t/t1300-config.sh
+++ b/t/t1300-config.sh
@@ -321,15 +321,14 @@ test_expect_success 'hierarchical section value' '
 	test_cmp expect .git/config
 '
 
-cat > expect << EOF
-beta.noindent=sillyValue
-nextsection.nonewline=wow2 for me
-123456.a123=987
-version.1.2.3eX.alpha=beta
-EOF
-
 test_expect_success 'working --list' '
-	git config --list > output &&
+	cat >expect <<-\EOF &&
+	beta.noindent=sillyValue
+	nextsection.nonewline=wow2 for me
+	123456.a123=987
+	version.1.2.3eX.alpha=beta
+	EOF
+	git config --list >output &&
 	test_cmp expect output
 '
 test_expect_success '--list without repo produces empty output' '
@@ -337,55 +336,53 @@ test_expect_success '--list without repo produces empty output' '
 	test_must_be_empty output
 '
 
-cat > expect << EOF
-beta.noindent
-nextsection.nonewline
-123456.a123
-version.1.2.3eX.alpha
-EOF
-
 test_expect_success '--name-only --list' '
+	cat >expect <<-\EOF &&
+	beta.noindent
+	nextsection.nonewline
+	123456.a123
+	version.1.2.3eX.alpha
+	EOF
 	git config --name-only --list >output &&
 	test_cmp expect output
 '
 
-cat > expect << EOF
-beta.noindent sillyValue
-nextsection.nonewline wow2 for me
-EOF
-
 test_expect_success '--get-regexp' '
+	cat >expect <<-\EOF &&
+	beta.noindent sillyValue
+	nextsection.nonewline wow2 for me
+	EOF
 	git config --get-regexp in >output &&
 	test_cmp expect output
 '
 
-cat > expect << EOF
-beta.noindent
-nextsection.nonewline
-EOF
-
 test_expect_success '--name-only --get-regexp' '
+	cat >expect <<-\EOF &&
+	beta.noindent
+	nextsection.nonewline
+	EOF
 	git config --name-only --get-regexp in >output &&
 	test_cmp expect output
 '
 
-cat > expect << EOF
-wow2 for me
-wow4 for you
-EOF
-
 test_expect_success '--add' '
+	cat >expect <<-\EOF &&
+	wow2 for me
+	wow4 for you
+	EOF
 	git config --add nextsection.nonewline "wow4 for you" &&
-	git config --get-all nextsection.nonewline > output &&
+	git config --get-all nextsection.nonewline >output &&
 	test_cmp expect output
 '
 
-cat > .git/config << EOF
-[novalue]
-	variable
-[emptyvalue]
-	variable =
-EOF
+test_expect_success 'setup config file with no/empty values' '
+	q_to_tab >.git/config <<-\EOF
+	[novalue]
+		Qvariable
+	[emptyvalue]
+		Qvariable =
+	EOF
+'
 
 test_expect_success 'get variable with no value' '
 	git config --get novalue.variable ^$
@@ -395,38 +392,33 @@ test_expect_success 'get variable with empty value' '
 	git config --get emptyvalue.variable ^$
 '
 
-echo novalue.variable > expect
-
 test_expect_success 'get-regexp variable with no value' '
-	git config --get-regexp novalue > output &&
+	echo novalue.variable >expect &&
+	git config --get-regexp novalue >output &&
 	test_cmp expect output
 '
 
-echo 'novalue.variable true' > expect
-
 test_expect_success 'get-regexp --bool variable with no value' '
-	git config --bool --get-regexp novalue > output &&
+	echo "novalue.variable true" >expect &&
+	git config --bool --get-regexp novalue >output &&
 	test_cmp expect output
 '
 
-echo 'emptyvalue.variable ' > expect
-
 test_expect_success 'get-regexp variable with empty value' '
-	git config --get-regexp emptyvalue > output &&
+	echo "emptyvalue.variable " >expect &&
+	git config --get-regexp emptyvalue >output &&
 	test_cmp expect output
 '
 
-echo true > expect
-
 test_expect_success 'get bool variable with no value' '
-	git config --bool novalue.variable > output &&
+	echo true >expect &&
+	git config --bool novalue.variable >output &&
 	test_cmp expect output
 '
 
-echo false > expect
-
 test_expect_success 'get bool variable with empty value' '
-	git config --bool emptyvalue.variable > output &&
+	echo false >expect &&
+	git config --bool emptyvalue.variable >output &&
 	test_cmp expect output
 '
 
@@ -435,34 +427,34 @@ test_expect_success 'no arguments, but no crash' '
 	test_i18ngrep usage output
 '
 
-cat > .git/config << EOF
-[a.b]
-	c = d
-EOF
-
-cat > expect << EOF
-[a.b]
-	c = d
-[a]
-	x = y
-EOF
+test_expect_success 'setup simple config file' '
+	q_to_tab >.git/config <<-\EOF
+	[a.b]
+		Qc = d
+	EOF
+'
 
 test_expect_success 'new section is partial match of another' '
+	q_to_tab >expect <<-\EOF &&
+	[a.b]
+		Qc = d
+	[a]
+		Qx = y
+	EOF
 	git config a.x y &&
 	test_cmp expect .git/config
 '
 
-cat > expect << EOF
-[a.b]
-	c = d
-[a]
-	x = y
-	b = c
-[b]
-	x = y
-EOF
-
 test_expect_success 'new variable inserts into proper section' '
+	q_to_tab >expect <<-\EOF &&
+	[a.b]
+		Qc = d
+	[a]
+		Qx = y
+		Qb = c
+	[b]
+		Qx = y
+	EOF
 	git config b.x y &&
 	git config a.b c &&
 	test_cmp expect .git/config
-- 
2.24.0
Previous: Martin ÅgrenNext: Junio C Hamano
Message 3 of 23 in “builtin/config: canonicalize "value_regex" with `--type=bool[-or-int]`”
  1. 0/8 builtin/config: canonicalize "value_regex" with `--type=bool[-or-int]`Martin Ågren, Nov 13, 2019
  2. 1/8 config: make `git_parse_maybe_bool_text()` publicMartin Ågren, Nov 13, 2019
  3. 2/8 t1300: modernize part of scriptMartin Ågren, Nov 13, 2019
  4. Junio C HamanoNov 21, 2019
  5. 3/8 builtin/config: extract `handle_value_regex()` from `get_value()`Martin Ågren, Nov 13, 2019
  6. Junio C HamanoNov 21, 2019
  7. Martin ÅgrenNov 21, 2019
  8. 4/8 builtin/config: collect "value_regexp" data in a structMartin Ågren, Nov 13, 2019
  9. Junio C HamanoNov 21, 2019
  10. Martin ÅgrenNov 21, 2019
  11. Junio C HamanoNov 22, 2019
  12. 5/8 builtin/config: canonicalize "value_regex" with `--type=bool`Martin Ågren, Nov 13, 2019
  13. Junio C HamanoNov 21, 2019
  14. 6/8 builtin/config: canonicalize "value_regex" with `--type=bool-or-int`Martin Ågren, Nov 13, 2019
  15. 7/8 builtin/config: warn if "value_regex" doesn't canonicalize as booleanMartin Ågren, Nov 13, 2019
  16. Junio C HamanoNov 21, 2019
  17. Martin ÅgrenNov 21, 2019
  18. 8/8 builtin/config: die if "value_regex" doesn't canonicalize as booleanMartin Ågren, Nov 13, 2019
  19. Junio C HamanoNov 14, 2019
  20. Martin ÅgrenNov 14, 2019
  21. Jeff KingNov 14, 2019
  22. Martin ÅgrenNov 14, 2019
  23. Jeff KingNov 14, 2019

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.