Re: [PATCH 2/5] completion: fix args of run_completion() test helper
From: SZEDER Gábor <hidden>
Date: 2016-06-15 22:54:53
On Fri, Sep 28, 2012 at 11:04:05AM -0700, Junio C Hamano wrote:
SZEDER Gábor [off-list ref] writes:quoted
To simulate the the user hit 'git <TAB>, one of the completion tests
s/the the/that the/
quoted
sets up the rather strange command line git "" i.e. the second word on the command line consists of two double quotes. However, this is not what happens for real, because after 'git <TAB>' the second word on the command line is just an empty string. Luckily, the test works nevertheless. Fix this by passing the command line to run_completion() as separate words. Signed-off-by: SZEDER Gábor <redacted> --- t/t9902-completion.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)diff --git a/t/t9902-completion.sh b/t/t9902-completion.sh index e7657537..f5e68834 100755 --- a/t/t9902-completion.sh +++ b/t/t9902-completion.sh@@ -49,7 +49,7 @@ run_completion () { local -a COMPREPLY _words local _cword - _words=( $1 ) + _words=( "$@" ) (( _cword = ${#_words[@]} - 1 )) __git_wrap__git_main && print_comp }@@ -57,7 +57,7 @@ run_completion () test_completion () { test $# -gt 1 && echo "$2" > expected - run_completion "$@" && + run_completion $1 && test_cmp expected out }I can understand the other three hunks, but this one is fishy. Shouldn't "$1" be inside a pair of dq? I.e. + run_completion "$1" &&
No. $1 holds all words on the command line. If it was between a pair of dq, then the whole command line would be passed to the completion script as a single word.
quoted
@@ -147,7 +147,7 @@ test_expect_success '__gitcomp - suffix' ' ' test_expect_success 'basic' ' - run_completion "git \"\"" && + run_completion git "" && # built-in grep -q "^add \$" out && # script@@ -155,7 +155,7 @@ test_expect_success 'basic' ' # plumbing ! grep -q "^ls-files \$" out && - run_completion "git f" && + run_completion git f && ! grep -q -v "^f" out '