Re: [PATCH] t/: work around one-shot variable assignment with test_must_fail

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



btw, this works and is a definite improvement.

-Brandon

Junio C Hamano wrote:
> Brandon Casey <casey@xxxxxxxxxxxxxxx> writes:
> 
>> No time to investigate, but here is an example patch and the
>> results of running the affected tests.  Looks like reflog may
>> be creating a reflog when it is not supposed to.
> 
> Your later analysis is correct; "git reflog show <branch>" does not
> complain when there is no reflog for <branch>, which might or might not be
> a bug.
> 
> Because these tests are not about behaviour of "git reflog show" command,
> let's do this for now.
> 
> Thanks.
> 
> -- >8 --
> Subject: tests: correct "does reflog exist" tests
> 
> These two tests were not about how "git reflog show <branch>" exits when
> there is no reflog, but were about whether "checkout" and "branch" create
> or not create reflog when creating a new <branch>, update the tests to
> check it in a more direct way, namely using "git rev-parse --verify".
> 
> Also lose tests based on "test -f .git/logs/refs/heads/<branch>" from
> nearby, to avoid exposing this particular implementation detail
> unnecessarily.
> 
> ---
>  t/t2017-checkout-orphan.sh |   47 +++++++------------------------------------
>  t/t3200-branch.sh          |   13 ++---------
>  2 files changed, 11 insertions(+), 49 deletions(-)
> 
> diff --git a/t/t2017-checkout-orphan.sh b/t/t2017-checkout-orphan.sh
> index 81cb393..2d2f63f 100755
> --- a/t/t2017-checkout-orphan.sh
> +++ b/t/t2017-checkout-orphan.sh
> @@ -68,65 +68,34 @@ test_expect_success '--orphan makes reflog by default' '
>  	git checkout master &&
>  	git config --unset core.logAllRefUpdates &&
>  	git checkout --orphan delta &&
> -	! test -f .git/logs/refs/heads/delta &&
> -	(
> -		PAGER= &&
> -		export PAGER &&
> -		test_must_fail git reflog show delta
> -	) &&
> +	test_must_fail git rev-parse --verify delta@{0} &&
>  	git commit -m Delta &&
> -	test -f .git/logs/refs/heads/delta &&
> -	PAGER= git reflog show delta
> +	git rev-parse --verify delta@{0}
>  '
>  
>  test_expect_success '--orphan does not make reflog when core.logAllRefUpdates = false' '
>  	git checkout master &&
>  	git config core.logAllRefUpdates false &&
>  	git checkout --orphan epsilon &&
> -	! test -f .git/logs/refs/heads/epsilon &&
> -	(
> -		PAGER= &&
> -		export PAGER &&
> -		test_must_fail git reflog show epsilon
> -	) &&
> +	test_must_fail git rev-parse --verify epsilon@{0} &&
>  	git commit -m Epsilon &&
> -	! test -f .git/logs/refs/heads/epsilon &&
> -	(
> -		PAGER= &&
> -		export PAGER &&
> -		test_must_fail git reflog show epsilon
> -	)
> +	test_must_fail git rev-parse --verify epsilon@{0}
>  '
>  
>  test_expect_success '--orphan with -l makes reflog when core.logAllRefUpdates = false' '
>  	git checkout master &&
>  	git checkout -l --orphan zeta &&
> -	test -f .git/logs/refs/heads/zeta &&
> -	(
> -		PAGER= &&
> -		export PAGER &&
> -		test_must_fail git reflog show zeta
> -	) &&
> +	test_must_fail git rev-parse --verify zeta@{0} &&
>  	git commit -m Zeta &&
> -	PAGER= git reflog show zeta
> +	git rev-parse --verify zeta@{0}
>  '
>  
>  test_expect_success 'giving up --orphan not committed when -l and core.logAllRefUpdates = false deletes reflog' '
>  	git checkout master &&
>  	git checkout -l --orphan eta &&
> -	test -f .git/logs/refs/heads/eta &&
> -	(
> -		PAGER= &&
> -		export PAGER &&
> -		test_must_fail git reflog show eta
> -	) &&
> +	test_must_fail git rev-parse --verify eta@{0} &&
>  	git checkout master &&
> -	! test -f .git/logs/refs/heads/eta &&
> -	(
> -		PAGER= &&
> -		export PAGER &&
> -		test_must_fail git reflog show eta
> -	)
> +	test_must_fail git rev-parse --verify eta@{0}
>  '
>  
>  test_expect_success '--orphan is rejected with an existing name' '
> diff --git a/t/t3200-branch.sh b/t/t3200-branch.sh
> index bf7747d..f54a533 100755
> --- a/t/t3200-branch.sh
> +++ b/t/t3200-branch.sh
> @@ -228,28 +228,21 @@ test_expect_success 'checkout -b makes reflog by default' '
>  	git checkout master &&
>  	git config --unset core.logAllRefUpdates &&
>  	git checkout -b alpha &&
> -	test -f .git/logs/refs/heads/alpha &&
> -	PAGER= git reflog show alpha
> +	git rev-parse --verify alpha@{0}
>  '
>  
>  test_expect_success 'checkout -b does not make reflog when core.logAllRefUpdates = false' '
>  	git checkout master &&
>  	git config core.logAllRefUpdates false &&
>  	git checkout -b beta &&
> -	! test -f .git/logs/refs/heads/beta &&
> -	(
> -		PAGER= &&
> -		export PAGER &&
> -		test_must_fail git reflog show beta
> -	)
> +	test_must_fail git rev-parse --verify beta@{0}
>  '
>  
>  test_expect_success 'checkout -b with -l makes reflog when core.logAllRefUpdates = false' '
>  	git checkout master &&
>  	git checkout -lb gamma &&
>  	git config --unset core.logAllRefUpdates &&
> -	test -f .git/logs/refs/heads/gamma &&
> -	PAGER= git reflog show gamma
> +	git rev-parse --verify gamma@{0}
>  '
>  
>  test_expect_success 'avoid ambiguous track' '

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]