All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stefan Beller <sbeller@google.com>
To: Michael Haggerty <mhagger@alum.mit.edu>
Cc: Junio C Hamano <gitster@pobox.com>,
	Brad King <brad.king@kitware.com>,
	Jonathan Nieder <jrnieder@gmail.com>,
	Ronnie Sahlberg <ronniesahlberg@gmail.com>,
	git@vger.kernel.org
Subject: Re: [PATCH 1/2] t1400: add some more tests of "update-ref --stdin"'s verify command
Date: Wed, 10 Dec 2014 16:10:54 -0800	[thread overview]
Message-ID: <20141211001054.GA14446@google.com> (raw)
In-Reply-To: <1418255272-5875-2-git-send-email-mhagger@alum.mit.edu>

On Thu, Dec 11, 2014 at 12:47:51AM +0100, Michael Haggerty wrote:
> Two of the tests fail because
> 
>     verify refs/heads/foo
> 
> with no argument (not even zeros) actually *deletes* refs/heads/foo.
> This problem will be fixed in the next commit.
> 
> Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
> ---

Reviewed-By: Stefan Beller <sbeller@google.com>

> The two failing tests have to restore the $m reference when they're
> done because otherwise the bug deletes it, causing subsequent tests
> to fail.
> 
>  t/t1400-update-ref.sh | 92 +++++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 92 insertions(+)
> 
> diff --git a/t/t1400-update-ref.sh b/t/t1400-update-ref.sh
> index 7b4707b..6a3cdd1 100755
> --- a/t/t1400-update-ref.sh
> +++ b/t/t1400-update-ref.sh
> @@ -619,6 +619,52 @@ test_expect_success 'stdin update/create/verify combination works' '
>  	test_must_fail git rev-parse --verify -q $c
>  '
>  
> +test_expect_success 'stdin verify succeeds for correct value' '
> +	git rev-parse $m >expect &&
> +	echo "verify $m $m" >stdin &&
> +	git update-ref --stdin <stdin &&
> +	git rev-parse $m >actual &&
> +	test_cmp expect actual
> +'
> +
> +test_expect_success 'stdin verify succeeds for missing reference' '
> +	echo "verify refs/heads/missing $Z" >stdin &&
> +	git update-ref --stdin <stdin &&
> +	test_must_fail git rev-parse --verify -q refs/heads/missing
> +'
> +
> +test_expect_success 'stdin verify treats no value as missing' '
> +	echo "verify refs/heads/missing" >stdin &&
> +	git update-ref --stdin <stdin &&
> +	test_must_fail git rev-parse --verify -q refs/heads/missing
> +'
> +
> +test_expect_success 'stdin verify fails for wrong value' '
> +	git rev-parse $m >expect &&
> +	echo "verify $m $m~1" >stdin &&
> +	test_must_fail git update-ref --stdin <stdin &&
> +	git rev-parse $m >actual &&
> +	test_cmp expect actual
> +'
> +
> +test_expect_success 'stdin verify fails for mistaken null value' '
> +	git rev-parse $m >expect &&
> +	echo "verify $m $Z" >stdin &&
> +	test_must_fail git update-ref --stdin <stdin &&
> +	git rev-parse $m >actual &&
> +	test_cmp expect actual
> +'
> +
> +test_expect_failure 'stdin verify fails for mistaken empty value' '
> +	M=$(git rev-parse $m) &&
> +	test_when_finished "git update-ref $m $M" &&
> +	git rev-parse $m >expect &&
> +	echo "verify $m" >stdin &&
> +	test_must_fail git update-ref --stdin <stdin &&
> +	git rev-parse $m >actual &&
> +	test_cmp expect actual
> +'
> +
>  test_expect_success 'stdin update refs works with identity updates' '
>  	cat >stdin <<-EOF &&
>  	update $a $m $m
> @@ -938,6 +984,52 @@ test_expect_success 'stdin -z update/create/verify combination works' '
>  	test_must_fail git rev-parse --verify -q $c
>  '
>  
> +test_expect_success 'stdin -z verify succeeds for correct value' '
> +	git rev-parse $m >expect &&
> +	printf $F "verify $m" "$m" >stdin &&
> +	git update-ref -z --stdin <stdin &&
> +	git rev-parse $m >actual &&
> +	test_cmp expect actual
> +'
> +
> +test_expect_success 'stdin -z verify succeeds for missing reference' '
> +	printf $F "verify refs/heads/missing" "$Z" >stdin &&
> +	git update-ref -z --stdin <stdin &&
> +	test_must_fail git rev-parse --verify -q refs/heads/missing
> +'
> +
> +test_expect_success 'stdin -z verify treats no value as missing' '
> +	printf $F "verify refs/heads/missing" "" >stdin &&
> +	git update-ref -z --stdin <stdin &&
> +	test_must_fail git rev-parse --verify -q refs/heads/missing
> +'
> +
> +test_expect_success 'stdin -z verify fails for wrong value' '
> +	git rev-parse $m >expect &&
> +	printf $F "verify $m" "$m~1" >stdin &&
> +	test_must_fail git update-ref -z --stdin <stdin &&
> +	git rev-parse $m >actual &&
> +	test_cmp expect actual
> +'
> +
> +test_expect_success 'stdin -z verify fails for mistaken null value' '
> +	git rev-parse $m >expect &&
> +	printf $F "verify $m" "$Z" >stdin &&
> +	test_must_fail git update-ref -z --stdin <stdin &&
> +	git rev-parse $m >actual &&
> +	test_cmp expect actual
> +'
> +
> +test_expect_failure 'stdin -z verify fails for mistaken empty value' '
> +	M=$(git rev-parse $m) &&
> +	test_when_finished "git update-ref $m $M" &&
> +	git rev-parse $m >expect &&
> +	printf $F "verify $m" "" >stdin &&
> +	test_must_fail git update-ref -z --stdin <stdin &&
> +	git rev-parse $m >actual &&
> +	test_cmp expect actual
> +'
> +
>  test_expect_success 'stdin -z update refs works with identity updates' '
>  	printf $F "update $a" "$m" "$m" "update $b" "$m" "$m" "update $c" "$Z" "" >stdin &&
>  	git update-ref -z --stdin <stdin &&
> -- 
> 2.1.3
> 

  reply	other threads:[~2014-12-11  0:11 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-12-10 23:47 [PATCH 0/2] Fix a bug with update-ref "verify" and no oldvalue Michael Haggerty
2014-12-10 23:47 ` [PATCH 1/2] t1400: add some more tests of "update-ref --stdin"'s verify command Michael Haggerty
2014-12-11  0:10   ` Stefan Beller [this message]
2014-12-11 16:19   ` Brad King
2014-12-10 23:47 ` [PATCH 2/2] update-ref: fix "verify" command with missing <oldvalue> Michael Haggerty
2014-12-11  0:21   ` Stefan Beller
2014-12-11 16:19   ` Brad King

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20141211001054.GA14446@google.com \
    --to=sbeller@google.com \
    --cc=brad.king@kitware.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=jrnieder@gmail.com \
    --cc=mhagger@alum.mit.edu \
    --cc=ronniesahlberg@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.