Re: [PATCH 06/15] t6120: add a test to cover inner conditions in 'git name-rev's name_rev()
- From
SZEDER Gábor <szeder.dev@gmail.com>
- Date
- Sep 20, 2019, 15:44 UTC
- Message-ID
- <20190920154451.GB32332@szeder.dev>
- In-Reply-To
- <2e18a216-f6f8-2307-2524-a2e1f44b26c7@gmail.com>
On Fri, Sep 20, 2019 at 11:14:56AM -0400, Derrick Stolee wrote:
Show 8 quoted lines
> On 9/19/2019 5:47 PM, SZEDER Gábor wrote: > > These conditions are not covered properly in the test suite. As far > > as purely test coverage goes, they are all executed several times over > > in 't6120-describe.sh'. However, they don't directly influence the > > command's output, because the repository used in that test script > > contains several branches and tags pointing somewhere into the middle > > of the commit DAG, and thus result in a better name for the > > to-be-named commit.
Show 26 quoted lines
> > diff --git a/t/t6120-describe.sh b/t/t6120-describe.sh > > index 07e6793e84..2a0f2204c4 100755 > > --- a/t/t6120-describe.sh > > +++ b/t/t6120-describe.sh > > @@ -421,4 +421,47 @@ test_expect_success 'describe complains about missing object' ' > > test_must_fail git describe $ZERO_OID > > ' > > > > +# -----------master > > +# / / > > +# A----------M2 > > +# \ / > > +# \---M1-C > > +# \ / > > +# B > > +test_expect_success 'test' ' > > + git init repo && > > + ( > > + cd repo && > > + > > + echo A >file && > > + git add file && > > + git commit -m A && > > + A=$(git rev-parse HEAD) && > > Is it not enough to do something like test_commit here?
No, because 'test_commit' adds branches and tags pointing to commits somewhere in the middle of the history, and those will serve as better starting point for the resulting name.
Show 28 quoted lines
> > +
> > + git checkout --detach &&
> > + echo B >file &&
> > + git commit -m B file &&
> > + B=$(git rev-parse HEAD) &&
> > +
> > + git checkout $A &&
> > + git merge --no-ff $B && # M1
> > +
> > + echo C >file &&
> > + git commit -m C file &&
> > +
> > + git checkout $A &&
> > + git merge --no-ff HEAD@{1} && # M2
> > +
> > + git checkout master &&
> > + git merge --no-ff HEAD@{1} &&
> > +
> > + git log --graph --oneline &&
> > +
> > + echo "$B master^2^2~1^2" >expect &&
> > + git name-rev $B >actual &&
>
> This matches your description.
>
> Thanks,
> -Stolee
>