git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v3 0/6] completion: test consolidations
@ 2012-11-18 10:51 Felipe Contreras
  2012-11-18 10:51 ` [PATCH v3 1/6] completion: add comment for test_completion() Felipe Contreras
                   ` (6 more replies)
  0 siblings, 7 replies; 9+ messages in thread
From: Felipe Contreras @ 2012-11-18 10:51 UTC (permalink / raw)
  To: git; +Cc: Junio C Hamano, Felipe Contreras

These started from a discussion with SZEDER, but then I realized there were
many improvements possible.

Changes since v2:

 * Updated comments and commit messages

Changes since v1:

 * A lot more cleanups

Felipe Contreras (6):
  completion: add comment for test_completion()
  completion: standardize final space marker in tests
  completion: simplify tests using test_completion_long()
  completion: consolidate test_completion*() tests
  completion: refactor __gitcomp related tests
  completion: simplify __gitcomp() test helper

 t/t9902-completion.sh | 133 +++++++++++++++++++-------------------------------
 1 file changed, 51 insertions(+), 82 deletions(-)

-- 
1.8.0

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [PATCH v3 1/6] completion: add comment for test_completion()
  2012-11-18 10:51 [PATCH v3 0/6] completion: test consolidations Felipe Contreras
@ 2012-11-18 10:51 ` Felipe Contreras
  2012-11-18 10:51 ` [PATCH v3 2/6] completion: standardize final space marker in tests Felipe Contreras
                   ` (5 subsequent siblings)
  6 siblings, 0 replies; 9+ messages in thread
From: Felipe Contreras @ 2012-11-18 10:51 UTC (permalink / raw)
  To: git; +Cc: Junio C Hamano, Felipe Contreras

So that it's easier to understand what it does.

Also, make sure we pass only the first argument for completion.
Shouldn't cause any functional changes because run_completion only
checks $1.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
---
 t/t9902-completion.sh | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/t/t9902-completion.sh b/t/t9902-completion.sh
index 8fa025f..2276a37 100755
--- a/t/t9902-completion.sh
+++ b/t/t9902-completion.sh
@@ -54,10 +54,14 @@ run_completion ()
 	__git_wrap__git_main && print_comp
 }
 
+# Test high-level completion
+# Arguments are:
+# 1: current command line
+# 2: expected completion
 test_completion ()
 {
 	test $# -gt 1 && echo "$2" > expected
-	run_completion "$@" &&
+	run_completion "$1" &&
 	test_cmp expected out
 }
 
-- 
1.8.0

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v3 2/6] completion: standardize final space marker in tests
  2012-11-18 10:51 [PATCH v3 0/6] completion: test consolidations Felipe Contreras
  2012-11-18 10:51 ` [PATCH v3 1/6] completion: add comment for test_completion() Felipe Contreras
@ 2012-11-18 10:51 ` Felipe Contreras
  2012-11-18 10:51 ` [PATCH v3 3/6] completion: simplify tests using test_completion_long() Felipe Contreras
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 9+ messages in thread
From: Felipe Contreras @ 2012-11-18 10:51 UTC (permalink / raw)
  To: git; +Cc: Junio C Hamano, Felipe Contreras

The rest of the code uses ' Z$'. Lets use that for
test_completion_long() as well.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
---
 t/t9902-completion.sh | 27 +++++++++++++--------------
 1 file changed, 13 insertions(+), 14 deletions(-)

diff --git a/t/t9902-completion.sh b/t/t9902-completion.sh
index 2276a37..f4c7342 100755
--- a/t/t9902-completion.sh
+++ b/t/t9902-completion.sh
@@ -66,11 +66,10 @@ test_completion ()
 }
 
 # Like test_completion, but reads expectation from stdin,
-# which is convenient when it is multiline. We also process "_" into
-# spaces to make test vectors more readable.
+# which is convenient when it is multiline.
 test_completion_long ()
 {
-	tr _ " " >expected &&
+	sed -e 's/Z$//' > expected &&
 	test_completion "$1"
 }
 
@@ -252,24 +251,24 @@ test_expect_success 'setup for ref completion' '
 
 test_expect_success 'checkout completes ref names' '
 	test_completion_long "git checkout m" <<-\EOF
-	master_
-	mybranch_
-	mytag_
+	master Z
+	mybranch Z
+	mytag Z
 	EOF
 '
 
 test_expect_success 'show completes all refs' '
 	test_completion_long "git show m" <<-\EOF
-	master_
-	mybranch_
-	mytag_
+	master Z
+	mybranch Z
+	mytag Z
 	EOF
 '
 
 test_expect_success '<ref>: completes paths' '
 	test_completion_long "git show mytag:f" <<-\EOF
-	file1_
-	file2_
+	file1 Z
+	file2 Z
 	EOF
 '
 
@@ -278,7 +277,7 @@ test_expect_success 'complete tree filename with spaces' '
 	git add . &&
 	git commit -m spaces &&
 	test_completion_long "git show HEAD:nam" <<-\EOF
-	name with spaces_
+	name with spaces Z
 	EOF
 '
 
@@ -287,8 +286,8 @@ test_expect_failure 'complete tree filename with metacharacters' '
 	git add . &&
 	git commit -m meta &&
 	test_completion_long "git show HEAD:nam" <<-\EOF
-	name with ${meta}_
-	name with spaces_
+	name with ${meta} Z
+	name with spaces Z
 	EOF
 '
 
-- 
1.8.0

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v3 3/6] completion: simplify tests using test_completion_long()
  2012-11-18 10:51 [PATCH v3 0/6] completion: test consolidations Felipe Contreras
  2012-11-18 10:51 ` [PATCH v3 1/6] completion: add comment for test_completion() Felipe Contreras
  2012-11-18 10:51 ` [PATCH v3 2/6] completion: standardize final space marker in tests Felipe Contreras
@ 2012-11-18 10:51 ` Felipe Contreras
  2012-11-18 10:51 ` [PATCH v3 4/6] completion: consolidate test_completion*() tests Felipe Contreras
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 9+ messages in thread
From: Felipe Contreras @ 2012-11-18 10:51 UTC (permalink / raw)
  To: git; +Cc: Junio C Hamano, Felipe Contreras

No need to duplicate that functionality.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
---
 t/t9902-completion.sh | 9 +++------
 1 file changed, 3 insertions(+), 6 deletions(-)

diff --git a/t/t9902-completion.sh b/t/t9902-completion.sh
index f4c7342..6a250ad 100755
--- a/t/t9902-completion.sh
+++ b/t/t9902-completion.sh
@@ -172,7 +172,7 @@ test_expect_success 'basic' '
 '
 
 test_expect_success 'double dash "git" itself' '
-	sed -e "s/Z$//" >expected <<-\EOF &&
+	test_completion_long "git --" <<-\EOF
 	--paginate Z
 	--no-pager Z
 	--git-dir=
@@ -187,11 +187,10 @@ test_expect_success 'double dash "git" itself' '
 	--no-replace-objects Z
 	--help Z
 	EOF
-	test_completion "git --"
 '
 
 test_expect_success 'double dash "git checkout"' '
-	sed -e "s/Z$//" >expected <<-\EOF &&
+	test_completion_long "git checkout --" <<-\EOF
 	--quiet Z
 	--ours Z
 	--theirs Z
@@ -202,17 +201,15 @@ test_expect_success 'double dash "git checkout"' '
 	--orphan Z
 	--patch Z
 	EOF
-	test_completion "git checkout --"
 '
 
 test_expect_success 'general options' '
 	test_completion "git --ver" "--version " &&
 	test_completion "git --hel" "--help " &&
-	sed -e "s/Z$//" >expected <<-\EOF &&
+	test_completion_long "git --exe" <<-\EOF &&
 	--exec-path Z
 	--exec-path=
 	EOF
-	test_completion "git --exe" &&
 	test_completion "git --htm" "--html-path " &&
 	test_completion "git --pag" "--paginate " &&
 	test_completion "git --no-p" "--no-pager " &&
-- 
1.8.0

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v3 4/6] completion: consolidate test_completion*() tests
  2012-11-18 10:51 [PATCH v3 0/6] completion: test consolidations Felipe Contreras
                   ` (2 preceding siblings ...)
  2012-11-18 10:51 ` [PATCH v3 3/6] completion: simplify tests using test_completion_long() Felipe Contreras
@ 2012-11-18 10:51 ` Felipe Contreras
  2012-11-18 10:51 ` [PATCH v3 5/6] completion: refactor __gitcomp related tests Felipe Contreras
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 9+ messages in thread
From: Felipe Contreras @ 2012-11-18 10:51 UTC (permalink / raw)
  To: git; +Cc: Junio C Hamano, Felipe Contreras

No need to have two versions; if a second argument is specified, use
that, otherwise use stdin.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
---
 t/t9902-completion.sh | 30 +++++++++++++-----------------
 1 file changed, 13 insertions(+), 17 deletions(-)

diff --git a/t/t9902-completion.sh b/t/t9902-completion.sh
index 6a250ad..90a9a91 100755
--- a/t/t9902-completion.sh
+++ b/t/t9902-completion.sh
@@ -60,19 +60,15 @@ run_completion ()
 # 2: expected completion
 test_completion ()
 {
-	test $# -gt 1 && echo "$2" > expected
+	if [ $# -gt 1 ]; then
+		echo "$2" > expected
+	else
+		sed -e 's/Z$//' > expected
+	fi &&
 	run_completion "$1" &&
 	test_cmp expected out
 }
 
-# Like test_completion, but reads expectation from stdin,
-# which is convenient when it is multiline.
-test_completion_long ()
-{
-	sed -e 's/Z$//' > expected &&
-	test_completion "$1"
-}
-
 newline=$'\n'
 
 test_expect_success '__gitcomp - trailing space - options' '
@@ -172,7 +168,7 @@ test_expect_success 'basic' '
 '
 
 test_expect_success 'double dash "git" itself' '
-	test_completion_long "git --" <<-\EOF
+	test_completion "git --" <<-\EOF
 	--paginate Z
 	--no-pager Z
 	--git-dir=
@@ -190,7 +186,7 @@ test_expect_success 'double dash "git" itself' '
 '
 
 test_expect_success 'double dash "git checkout"' '
-	test_completion_long "git checkout --" <<-\EOF
+	test_completion "git checkout --" <<-\EOF
 	--quiet Z
 	--ours Z
 	--theirs Z
@@ -206,7 +202,7 @@ test_expect_success 'double dash "git checkout"' '
 test_expect_success 'general options' '
 	test_completion "git --ver" "--version " &&
 	test_completion "git --hel" "--help " &&
-	test_completion_long "git --exe" <<-\EOF &&
+	test_completion "git --exe" <<-\EOF &&
 	--exec-path Z
 	--exec-path=
 	EOF
@@ -247,7 +243,7 @@ test_expect_success 'setup for ref completion' '
 '
 
 test_expect_success 'checkout completes ref names' '
-	test_completion_long "git checkout m" <<-\EOF
+	test_completion "git checkout m" <<-\EOF
 	master Z
 	mybranch Z
 	mytag Z
@@ -255,7 +251,7 @@ test_expect_success 'checkout completes ref names' '
 '
 
 test_expect_success 'show completes all refs' '
-	test_completion_long "git show m" <<-\EOF
+	test_completion "git show m" <<-\EOF
 	master Z
 	mybranch Z
 	mytag Z
@@ -263,7 +259,7 @@ test_expect_success 'show completes all refs' '
 '
 
 test_expect_success '<ref>: completes paths' '
-	test_completion_long "git show mytag:f" <<-\EOF
+	test_completion "git show mytag:f" <<-\EOF
 	file1 Z
 	file2 Z
 	EOF
@@ -273,7 +269,7 @@ test_expect_success 'complete tree filename with spaces' '
 	echo content >"name with spaces" &&
 	git add . &&
 	git commit -m spaces &&
-	test_completion_long "git show HEAD:nam" <<-\EOF
+	test_completion "git show HEAD:nam" <<-\EOF
 	name with spaces Z
 	EOF
 '
@@ -282,7 +278,7 @@ test_expect_failure 'complete tree filename with metacharacters' '
 	echo content >"name with \${meta}" &&
 	git add . &&
 	git commit -m meta &&
-	test_completion_long "git show HEAD:nam" <<-\EOF
+	test_completion "git show HEAD:nam" <<-\EOF
 	name with ${meta} Z
 	name with spaces Z
 	EOF
-- 
1.8.0

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v3 5/6] completion: refactor __gitcomp related tests
  2012-11-18 10:51 [PATCH v3 0/6] completion: test consolidations Felipe Contreras
                   ` (3 preceding siblings ...)
  2012-11-18 10:51 ` [PATCH v3 4/6] completion: consolidate test_completion*() tests Felipe Contreras
@ 2012-11-18 10:51 ` Felipe Contreras
  2012-11-18 10:51 ` [PATCH v3 6/6] completion: simplify __gitcomp() test helper Felipe Contreras
  2012-11-19 20:34 ` [PATCH v3 0/6] completion: test consolidations Junio C Hamano
  6 siblings, 0 replies; 9+ messages in thread
From: Felipe Contreras @ 2012-11-18 10:51 UTC (permalink / raw)
  To: git; +Cc: Junio C Hamano, Felipe Contreras

Lots of duplicated code removed!

No functional changes.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
---
 t/t9902-completion.sh | 76 ++++++++++++++++++---------------------------------
 1 file changed, 27 insertions(+), 49 deletions(-)

diff --git a/t/t9902-completion.sh b/t/t9902-completion.sh
index 90a9a91..fba632f 100755
--- a/t/t9902-completion.sh
+++ b/t/t9902-completion.sh
@@ -71,87 +71,65 @@ test_completion ()
 
 newline=$'\n'
 
-test_expect_success '__gitcomp - trailing space - options' '
-	sed -e "s/Z$//" >expected <<-\EOF &&
-	--reuse-message=Z
-	--reedit-message=Z
-	--reset-author Z
-	EOF
+# Test __gitcomp
+# Arguments are:
+# 1: current word (cur)
+# -: the rest are passed to __gitcomp
+test_gitcomp ()
+{
+	sed -e 's/Z$//' > expected &&
 	(
 		local -a COMPREPLY &&
-		cur="--re" &&
-		__gitcomp "--dry-run --reuse-message= --reedit-message=
-				--reset-author" &&
+		cur="$1" &&
+		shift &&
+		__gitcomp "$@" &&
 		IFS="$newline" &&
 		echo "${COMPREPLY[*]}" > out
 	) &&
 	test_cmp expected out
+}
+
+test_expect_success '__gitcomp - trailing space - options' '
+	test_gitcomp "--re" "--dry-run --reuse-message= --reedit-message=
+		--reset-author" <<-EOF
+	--reuse-message=Z
+	--reedit-message=Z
+	--reset-author Z
+	EOF
 '
 
 test_expect_success '__gitcomp - trailing space - config keys' '
-	sed -e "s/Z$//" >expected <<-\EOF &&
+	test_gitcomp "br" "branch. branch.autosetupmerge
+		branch.autosetuprebase browser." <<-\EOF
 	branch.Z
 	branch.autosetupmerge Z
 	branch.autosetuprebase Z
 	browser.Z
 	EOF
-	(
-		local -a COMPREPLY &&
-		cur="br" &&
-		__gitcomp "branch. branch.autosetupmerge
-				branch.autosetuprebase browser." &&
-		IFS="$newline" &&
-		echo "${COMPREPLY[*]}" > out
-	) &&
-	test_cmp expected out
 '
 
 test_expect_success '__gitcomp - option parameter' '
-	sed -e "s/Z$//" >expected <<-\EOF &&
+	test_gitcomp "--strategy=re" "octopus ours recursive resolve subtree" \
+		"" "re" <<-\EOF
 	recursive Z
 	resolve Z
 	EOF
-	(
-		local -a COMPREPLY &&
-		cur="--strategy=re" &&
-		__gitcomp "octopus ours recursive resolve subtree
-			" "" "re" &&
-		IFS="$newline" &&
-		echo "${COMPREPLY[*]}" > out
-	) &&
-	test_cmp expected out
 '
 
 test_expect_success '__gitcomp - prefix' '
-	sed -e "s/Z$//" >expected <<-\EOF &&
+	test_gitcomp "branch.me" "remote merge mergeoptions rebase" \
+		"branch.maint." "me" <<-\EOF
 	branch.maint.merge Z
 	branch.maint.mergeoptions Z
 	EOF
-	(
-		local -a COMPREPLY &&
-		cur="branch.me" &&
-		__gitcomp "remote merge mergeoptions rebase
-			" "branch.maint." "me" &&
-		IFS="$newline" &&
-		echo "${COMPREPLY[*]}" > out
-	) &&
-	test_cmp expected out
 '
 
 test_expect_success '__gitcomp - suffix' '
-	sed -e "s/Z$//" >expected <<-\EOF &&
+	test_gitcomp "branch.me" "master maint next pu" "branch." \
+		"ma" "." <<-\EOF
 	branch.master.Z
 	branch.maint.Z
 	EOF
-	(
-		local -a COMPREPLY &&
-		cur="branch.me" &&
-		__gitcomp "master maint next pu
-			" "branch." "ma" "." &&
-		IFS="$newline" &&
-		echo "${COMPREPLY[*]}" > out
-	) &&
-	test_cmp expected out
 '
 
 test_expect_success 'basic' '
-- 
1.8.0

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [PATCH v3 6/6] completion: simplify __gitcomp() test helper
  2012-11-18 10:51 [PATCH v3 0/6] completion: test consolidations Felipe Contreras
                   ` (4 preceding siblings ...)
  2012-11-18 10:51 ` [PATCH v3 5/6] completion: refactor __gitcomp related tests Felipe Contreras
@ 2012-11-18 10:51 ` Felipe Contreras
  2012-11-19 20:34 ` [PATCH v3 0/6] completion: test consolidations Junio C Hamano
  6 siblings, 0 replies; 9+ messages in thread
From: Felipe Contreras @ 2012-11-18 10:51 UTC (permalink / raw)
  To: git; +Cc: Junio C Hamano, Felipe Contreras

By using print_comp as suggested by SZEDER Gábor.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
---
 t/t9902-completion.sh | 15 +++++----------
 1 file changed, 5 insertions(+), 10 deletions(-)

diff --git a/t/t9902-completion.sh b/t/t9902-completion.sh
index fba632f..42db3da 100755
--- a/t/t9902-completion.sh
+++ b/t/t9902-completion.sh
@@ -69,23 +69,18 @@ test_completion ()
 	test_cmp expected out
 }
 
-newline=$'\n'
-
 # Test __gitcomp
 # Arguments are:
 # 1: current word (cur)
 # -: the rest are passed to __gitcomp
 test_gitcomp ()
 {
+	local -a COMPREPLY &&
 	sed -e 's/Z$//' > expected &&
-	(
-		local -a COMPREPLY &&
-		cur="$1" &&
-		shift &&
-		__gitcomp "$@" &&
-		IFS="$newline" &&
-		echo "${COMPREPLY[*]}" > out
-	) &&
+	cur="$1" &&
+	shift &&
+	__gitcomp "$@" &&
+	print_comp &&
 	test_cmp expected out
 }
 
-- 
1.8.0

^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH v3 0/6] completion: test consolidations
  2012-11-18 10:51 [PATCH v3 0/6] completion: test consolidations Felipe Contreras
                   ` (5 preceding siblings ...)
  2012-11-18 10:51 ` [PATCH v3 6/6] completion: simplify __gitcomp() test helper Felipe Contreras
@ 2012-11-19 20:34 ` Junio C Hamano
  2012-11-19 22:58   ` Felipe Contreras
  6 siblings, 1 reply; 9+ messages in thread
From: Junio C Hamano @ 2012-11-19 20:34 UTC (permalink / raw)
  To: SZEDER Gábor; +Cc: git, Felipe Contreras

Felipe Contreras <felipe.contreras@gmail.com> writes:

> These started from a discussion with SZEDER, but then I realized there were
> many improvements possible.

Thanks; I'd loop him in and wait for his acks/reviews.

>
> Changes since v2:
>
>  * Updated comments and commit messages
>
> Changes since v1:
>
>  * A lot more cleanups
>
> Felipe Contreras (6):
>   completion: add comment for test_completion()
>   completion: standardize final space marker in tests
>   completion: simplify tests using test_completion_long()
>   completion: consolidate test_completion*() tests
>   completion: refactor __gitcomp related tests
>   completion: simplify __gitcomp() test helper
>
>  t/t9902-completion.sh | 133 +++++++++++++++++++-------------------------------
>  1 file changed, 51 insertions(+), 82 deletions(-)

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH v3 0/6] completion: test consolidations
  2012-11-19 20:34 ` [PATCH v3 0/6] completion: test consolidations Junio C Hamano
@ 2012-11-19 22:58   ` Felipe Contreras
  0 siblings, 0 replies; 9+ messages in thread
From: Felipe Contreras @ 2012-11-19 22:58 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: SZEDER Gábor, git

On Mon, Nov 19, 2012 at 9:34 PM, Junio C Hamano <gitster@pobox.com> wrote:
> Felipe Contreras <felipe.contreras@gmail.com> writes:
>
>> These started from a discussion with SZEDER, but then I realized there were
>> many improvements possible.
>
> Thanks; I'd loop him in and wait for his acks/reviews.

I thought my series-cc-cmd would add him. Maybe I'm using a version of
'git send-email' that doesn't have that.

Either way, we already know what he will say, to the previous series
he said he was against consolidation of test scripts. So I don't see
how the situation would change.

Cheers.

-- 
Felipe Contreras

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2012-11-19 22:58 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-11-18 10:51 [PATCH v3 0/6] completion: test consolidations Felipe Contreras
2012-11-18 10:51 ` [PATCH v3 1/6] completion: add comment for test_completion() Felipe Contreras
2012-11-18 10:51 ` [PATCH v3 2/6] completion: standardize final space marker in tests Felipe Contreras
2012-11-18 10:51 ` [PATCH v3 3/6] completion: simplify tests using test_completion_long() Felipe Contreras
2012-11-18 10:51 ` [PATCH v3 4/6] completion: consolidate test_completion*() tests Felipe Contreras
2012-11-18 10:51 ` [PATCH v3 5/6] completion: refactor __gitcomp related tests Felipe Contreras
2012-11-18 10:51 ` [PATCH v3 6/6] completion: simplify __gitcomp() test helper Felipe Contreras
2012-11-19 20:34 ` [PATCH v3 0/6] completion: test consolidations Junio C Hamano
2012-11-19 22:58   ` Felipe Contreras

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).