From: Junio C Hamano Date: Fri, 25 Jan 2013 04:19:30 GMT Subject: Re: [PATCH] t9902: protect test from stray build artifacts Message-ID: <7vr4l97v3h.fsf@alter.siamese.dyndns.org> In-Reply-To: <7vvcal7vhg.fsf@alter.siamese.dyndns.org> Junio C Hamano writes: > Jeff King writes: > >> This looks good to me. >> >> The only thing I might add is a test just to double-check that "git help >> -a" is parsed correctly. Like: >> >> test_expect_success 'command completion works without test harness' ' >> GIT_TESTING_COMMAND_COMPLETION= run_completion "git bun" && >> grep "^bundle\$" out >> ' >> >> (we know we are running bash here, so the one-shot variable is OK to be >> used with a function). > > I think you meant "^bundle $" there, but don't we have the same > problem when there is an end-user subcommand "git bunny"? > > Ahh, ok, we show one element per line and just make sure "bundle" > is there, and we do not care what other buns appear in the output. > > Will squash in, then. Not so quick, though. The lower level "read from help -a" is only run once and its output kept in a two-level cache hierarchy; we need to reset both. It starts to look a bit too intimately tied to the implementation of what is being tested for my taste, though. t/t9902-completion.sh | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/t/t9902-completion.sh b/t/t9902-completion.sh index adc1372..bb6ee1a 100755 --- a/t/t9902-completion.sh +++ b/t/t9902-completion.sh @@ -286,4 +286,14 @@ test_expect_success 'send-email' ' test_completion "git send-email ma" "master " ' +# This is better to be at the end, as it resets the state by tweaking +# the internals. +test_expect_success 'help -a read correctly by command list generator' ' + __git_all_commands= && + __git_porcelain_commands= && + GIT_TESTING_COMMAND_COMPLETION= && + run_completion "git bun" && + grep "^bundle $" out +' + test_done -- 1.8.1.1.525.gdace530