Subject: Re: [PATCHv3 2/5] t3301: Verify that 'git notes' removes empty notes by default

From: Junio C Hamano <[email-masked]>
Date: Fri, 07 Nov 2014 09:48:00 -0800

Johan Herland <[email-masked]> writes:

> Add test cases documenting the current behavior when trying to
> add/append/edit empty notes. This is in preparation for adding
> --allow-empty; to allow empty notes to be stored.
>
> Improved-by: Eric Sunshine <[email-masked]>
> Improved-by: Junio C Hamano <[email-masked]>
> Signed-off-by: Johan Herland <[email-masked]>
> ---
>  t/t3301-notes.sh | 27 +++++++++++++++++++++++++++
>  1 file changed, 27 insertions(+)
>
> diff --git a/t/t3301-notes.sh b/t/t3301-notes.sh
> index cfd67ff..33f0558 100755
> --- a/t/t3301-notes.sh
> +++ b/t/t3301-notes.sh
> @@ -1239,4 +1239,31 @@ test_expect_success 'git notes get-ref (--ref)' '
>  	test "$(GIT_NOTES_REF=refs/notes/bar git notes --ref=baz get-ref)" = "refs/notes/baz"
>  '
>  
> +test_expect_success 'setup testing of empty notes' '
> +	git config --unset core.notesRef &&

Use "test_unconfig" instead?

If the previous test failed (or a different topic that touches this
same script is merged to change what the previous test leaves), this
configuration variable may not be set, and "config --unset" may
fail.

> +	test_commit 16th &&
> +	empty_blob=$(git hash-object -w /dev/null)
> +'
> +
> +while read cmd
> +do
> +	test_expect_success "'git notes $cmd' removes empty note" "
> +		test_might_fail git notes remove HEAD &&
> +		MSG= git notes $cmd &&
> +		test_must_fail git notes list HEAD
> +	"
> +done <<\EOF
> +add
> +add -F /dev/null
> +add -m ""
> +add -c "$empty_blob"
> +add -C "$empty_blob"
> +append
> +append -F /dev/null
> +append -m ""
> +append -c "$empty_blob"
> +append -C "$empty_blob"
> +edit
> +EOF
> +
>  test_done