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

Re: [PATCH v2 1/9] completion: add file completion tests

From
Junio C Hamano <gitster@pobox.com>
Date
Apr 27, 2013, 21:24 UTC
Message-ID
<7vehdvu0og.fsf@alter.siamese.dyndns.org>
In-Reply-To
<1367093407-8898-2-git-send-email-felipe.contreras@gmail.com>
Felipe Contreras <felipe.contreras@gmail.com> writes:
Show 19 quoted lines
> The commit fea16b4 (git-completion.bash: add support for path
> completion) introduced quite a few changes, without the usual tests.
>
> Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
> ---
>  t/t9902-completion.sh | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 68 insertions(+)
>
> diff --git a/t/t9902-completion.sh b/t/t9902-completion.sh
> index 6d9d141..385e1e4 100755
> --- a/t/t9902-completion.sh
> +++ b/t/t9902-completion.sh
> @@ -347,4 +347,72 @@ test_expect_success 'send-email' '
>  	test_completion "git send-email ma" "master "
>  '
>  
> +test_expect_success 'complete files' '
> +	git init tmp && cd tmp &&
> +	test_when_finished "cd .. && rm -rf tmp" &&
Hmm, this construct is not very nice.

Later part of the code can be modified carelessly and chdir around even more, and "cd .." may end up at an unexpected place. Can't this be done in a way to make later reviews of patches that come after this change lands doable without looking at the whole 70 lines? For example, if the test ran the whole "these are done in a subdirectry" part, starting from the "cd tmp", inside a subshell, and "rm -rf tmp" is done in the original shell that ran "git init tmp" to create it, it would make it much harder to make mistakes for anybody who add new code to the body of the test to affect the clean-up part.

> +
> +	echo "expected" > .gitignore &&
> +	echo "out" >> .gitignore &&
Style: we tend to omit SP between redireciton operator and targets.
Show 62 quoted lines
> +	git add .gitignore &&
> +	test_completion "git commit " ".gitignore" &&
> +
> +	git commit -m ignore &&
> +
> +	touch new &&
> +	test_completion "git add " "new" &&
> +
> +	git add new &&
> +	git commit -a -m new &&
> +	test_completion "git add " "" &&
> +
> +	git mv new modified &&
> +	echo modify > modified &&
> +	test_completion "git add " "modified" &&
> +
> +	touch untracked &&
> +
> +	: TODO .gitignore should not be here &&
> +	test_completion "git rm " <<-\EOF &&
> +	.gitignore
> +	modified
> +	EOF
> +
> +	test_completion "git clean " "untracked" &&
> +
> +	: TODO .gitignore should not be here &&
> +	test_completion "git mv " <<-\EOF &&
> +	.gitignore
> +	modified
> +	EOF
> +
> +	mkdir dir &&
> +	touch dir/file-in-dir &&
> +	git add dir/file-in-dir &&
> +	git commit -m dir &&
> +
> +	mkdir untracked-dir &&
> +
> +	: TODO .gitignore should not be here &&
> +	test_completion "git mv modified " <<-\EOF &&
> +	.gitignore
> +	dir
> +	modified
> +	untracked
> +	untracked-dir
> +	EOF
> +
> +	test_completion "git commit " "modified" &&
> +
> +	: TODO .gitignore should not be here &&
> +	test_completion "git ls-files " <<-\EOF
> +	.gitignore
> +	dir
> +	modified
> +	EOF
> +
> +	touch momified &&
> +	test_completion "git add mom" "momified"
> +'
> +
>  test_done
Previous: Felipe ContrerasNext: Felipe Contreras
Message 3 of 15 in “completion: general cleanups”
  1. 0/9 completion: general cleanupsFelipe Contreras, Apr 27, 2013
  2. 1/9 completion: add file completion testsFelipe Contreras, Apr 27, 2013
  3. Junio C HamanoApr 27, 2013
  4. 2/9 completion: document tilde expansion failure in testsFelipe Contreras, Apr 27, 2013
  5. 3/9 completion; remove unuseful commentsFelipe Contreras, Apr 27, 2013
  6. 4/9 completion: use __gitcompadd for __gitcomp_fileFelipe Contreras, Apr 27, 2013
  7. 5/9 completion: refactor diff_index wrappersFelipe Contreras, Apr 27, 2013
  8. Junio C HamanoApr 27, 2013
  9. 6/9 completion: refactor __git_complete_index_file()Felipe Contreras, Apr 27, 2013
  10. 7/9 completion: add hack to enable file mode in bash < 4Felipe Contreras, Apr 27, 2013
  11. 8/9 completion: add space after completed filenameFelipe Contreras, Apr 27, 2013
  12. 9/9 completion: remove __git_index_file_list_filter()Felipe Contreras, Apr 27, 2013
  13. Eric SunshineApr 28, 2013
  14. Felipe ContrerasApr 28, 2013
  15. Junio C HamanoApr 27, 2013

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.