* [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