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

[PATCH] completion: clean up __gitcomp() tests

From
SZEDER Gábor <szeder@ira.uka.de>
Date
Oct 17, 2012, 17:54 UTC
Message-ID
<20121017175428.GF2156@goldbirke>
In-Reply-To
<20121017175040.GE2156@goldbirke>

Clean up two issues in the tests I added in 74a8c849 (tests: add tests for the __gitcomp() completion helper function, 2012-04-17):

 - The COMPREPLY array is created using 'local -a' while in a
   subshell.  However, the local keyword should only be used in a
   shell function, and a variable created in a subshell is by
   definition local to that subshell.  Use 'declare -a' instead.
 - The contents of the COMPREPLY array is written through an IFS
   fiddling + echo + redirection combo, although there is the
   print_comp() helper function for exactly this purpose.
Signed-off-by: SZEDER Gábor <szeder@ira.uka.de>
---
 t/t9902-completion.sh | 27 ++++++++++-----------------
 1 file changed, 10 insertions(+), 17 deletions(-)
diff --git a/t/t9902-completion.sh b/t/t9902-completion.sh
index cbd0fb66..cc375ed0 100755
--- a/t/t9902-completion.sh
+++ b/t/t9902-completion.sh
@@ -70,8 +70,6 @@ test_completion_long ()
 	test_completion "$1"
 }
 
-newline=$'\n'
-
 test_expect_success '__gitcomp - trailing space - options' '
 	sed -e "s/Z$//" >expected <<-\EOF &&
 	--reuse-message=Z
@@ -79,12 +77,11 @@ test_expect_success '__gitcomp - trailing space - options' '
 	--reset-author Z
 	EOF
 	(
-		local -a COMPREPLY &&
+		declare -a COMPREPLY &&
 		cur="--re" &&
 		__gitcomp "--dry-run --reuse-message= --reedit-message=
 				--reset-author" &&
-		IFS="$newline" &&
-		echo "${COMPREPLY[*]}" > out
+		print_comp
 	) &&
 	test_cmp expected out
 '
@@ -97,12 +94,11 @@ test_expect_success '__gitcomp - trailing space - config keys' '
 	browser.Z
 	EOF
 	(
-		local -a COMPREPLY &&
+		declare -a COMPREPLY &&
 		cur="br" &&
 		__gitcomp "branch. branch.autosetupmerge
 				branch.autosetuprebase browser." &&
-		IFS="$newline" &&
-		echo "${COMPREPLY[*]}" > out
+		print_comp
 	) &&
 	test_cmp expected out
 '
@@ -113,12 +109,11 @@ test_expect_success '__gitcomp - option parameter' '
 	resolve Z
 	EOF
 	(
-		local -a COMPREPLY &&
+		declare -a COMPREPLY &&
 		cur="--strategy=re" &&
 		__gitcomp "octopus ours recursive resolve subtree
 			" "" "re" &&
-		IFS="$newline" &&
-		echo "${COMPREPLY[*]}" > out
+		print_comp
 	) &&
 	test_cmp expected out
 '
@@ -129,12 +124,11 @@ test_expect_success '__gitcomp - prefix' '
 	branch.maint.mergeoptions Z
 	EOF
 	(
-		local -a COMPREPLY &&
+		declare -a COMPREPLY &&
 		cur="branch.me" &&
 		__gitcomp "remote merge mergeoptions rebase
 			" "branch.maint." "me" &&
-		IFS="$newline" &&
-		echo "${COMPREPLY[*]}" > out
+		print_comp
 	) &&
 	test_cmp expected out
 '
@@ -145,12 +139,11 @@ test_expect_success '__gitcomp - suffix' '
 	branch.maint.Z
 	EOF
 	(
-		local -a COMPREPLY &&
+		declare -a COMPREPLY &&
 		cur="branch.me" &&
 		__gitcomp "master maint next pu
 			" "branch." "ma" "." &&
-		IFS="$newline" &&
-		echo "${COMPREPLY[*]}" > out
+		print_comp
 	) &&
 	test_cmp expected out
 '
-- 
1.8.0.rc0.83.gc8e1777
Previous: SZEDER GáborNext: Felipe Contreras
Message 9 of 14 in “completion: refactor and zsh wrapper”
  1. 0/3 completion: refactor and zsh wrapperFelipe Contreras, Oct 14, 2012
  2. 1/3 completion: add new __gitcompadd helperFelipe Contreras, Oct 14, 2012
  3. SZEDER GáborOct 17, 2012
  4. Felipe ContrerasOct 22, 2012
  5. SZEDER GáborOct 30, 2012
  6. 2/3 tests: use __gitcompadd to simplify completion testsFelipe Contreras, Oct 14, 2012
  7. Felipe ContrerasOct 16, 2012
  8. SZEDER GáborOct 17, 2012
  9. completion: clean up __gitcomp() testsSZEDER Gábor, Oct 17, 2012
  10. Felipe ContrerasOct 17, 2012
  11. Felipe ContrerasOct 17, 2012
  12. 3/3 completion: add new zsh completionFelipe Contreras, Oct 14, 2012
  13. Felipe ContrerasOct 15, 2012
  14. Matthieu MoyOct 15, 2012

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.