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

Re: [PATCH v4 1/5] stash: improve option parsing test coverage

From
Junio C Hamano <gitster@pobox.com>
Date
Mar 29, 2018, 19:39 UTC
Message-ID
<xmqqr2o2658t.fsf@gitster-ct.c.googlers.com>
In-Reply-To
<20180328222129.22192-2-joel@teichroeb.net>
Joel Teichroeb <joel@teichroeb.net> writes:
Show 27 quoted lines
> In preparation for converting the stash command incrementally to
> a builtin command, this patch improves test coverage of the option
> parsing. Both for having too many paramerters, or too few.
>
> Signed-off-by: Joel Teichroeb <joel@teichroeb.net>
> ---
>  t/t3903-stash.sh | 16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
>
> diff --git a/t/t3903-stash.sh b/t/t3903-stash.sh
> index aefde7b17..8a666c60c 100755
> --- a/t/t3903-stash.sh
> +++ b/t/t3903-stash.sh
> @@ -84,6 +84,17 @@ test_expect_success 'apply stashed changes (including index)' '
>  	test 1 = $(git show HEAD:file)
>  '
>  
> +test_expect_success 'giving too many ref agruments does nothing' '
> +
> +	for type in apply drop pop show "branch stash-branch"
> +	do
> +		test-chmtime =123456789 file &&
> +		test_must_fail git stash $type stash@{0} stash@{1} 2>err &&
> +		test_i18ngrep "Too many" err &&
> +		test 123456789 = $(test-chmtime -v +0 file | sed 's/[^0-9].*$//') || return 1
> +	done
> +'

This is done with "file" whose contents are all different in HEAD, the index and the working tree. If the command tries to "push" by mistake, it will touch the timestamp of "file" and fail the test. That is a reasonable thing to check.

What do stash@{0} and stash{1} record at this point? Would they touch that "file" if the command tries to "apply" or "pop" by mistake? Perhaps it deserves a bit of in-code comment here.

As "drop" or "show" would not touch the working tree anyway, the test for timestamp seems pointless, even though grepping for "Too many" would be a reasonable test.

Previous: Eric SunshineNext: Joel Teichroeb
Message 4 of 11 in “Convert some stash functionality to a builtin”
  1. 0/5 Convert some stash functionality to a builtinJoel Teichroeb, Mar 28, 2018
  2. 1/5 stash: improve option parsing test coverageJoel Teichroeb, Mar 28, 2018
  3. Eric SunshineMar 29, 2018
  4. Junio C HamanoMar 29, 2018
  5. 3/5 stash: convert drop and clear to builtinJoel Teichroeb, Mar 28, 2018
  6. Junio C HamanoMar 30, 2018
  7. 2/5 stash: convert apply to builtinJoel Teichroeb, Mar 28, 2018
  8. Junio C HamanoMar 29, 2018
  9. Joel TeichroebMar 31, 2018
  10. 5/5 stash: convert pop to builtinJoel Teichroeb, Mar 28, 2018
  11. 4/5 stash: convert branch to builtinJoel Teichroeb, Mar 28, 2018

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.