Re: [PATCH v2 1/3] stash: add test to ensure reflog --rewrite --updatref behavior
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Feb 23, 2022, 21:27 UTC
- Message-ID
- <xmqq4k4ptgsv.fsf@gitster.g>
- In-Reply-To
- <220223.864k4q6jpr.gmgdl@evledraar.gmail.com>
Ævar Arnfjörð Bjarmason <avarab@gmail.com> writes:
Show 20 quoted lines
> This test was already a bit broken in needing the preceding tests, but > it will break now if REFFILES isn't true, which you can reproduce > e.g. with: > > ./t3903-stash.sh --run=1-16,18-50 -vixd > > Perhaps the least sucky solution to that is: > > diff --git a/t/t3903-stash.sh b/t/t3903-stash.sh > index ec9cc5646d6..1d11c9bda20 100755 > --- a/t/t3903-stash.sh > +++ b/t/t3903-stash.sh > @@ -205,13 +205,19 @@ test_expect_success 'drop stash reflog updates refs/stash with rewrite' ' > cat >expect <<-EOF && > $(test_oid zero) $oid > EOF > - test_cmp expect actual > + test_cmp expect actual && > + >dropped-stash > '
If "git stash drop", invoked in earlier part of this test before the precontext, fails, then test_cmp would fail and we leave dropped-stash untouched, even though we did run "git stash drop" already.
Why does the next test need to depend on what has happened earlier?
Show 13 quoted lines
> test_expect_success 'stash pop' ' > git reset --hard && > git stash pop && > - test 9 = $(cat file) && > + if test -e dropped-stash > + then > + test 9 = $(cat file) > + else > + test 3 = $(cat file) > + fi && > test 1 = $(git show :file) && > test 1 = $(git show HEAD:file) && > test 0 = $(git stash list | wc -l)