On 24/08/15 09:59AM, Patrick Steinhardt wrote: > While our object format tests for git-init(1) exercise tests with all > known formats in t0001, the tests for the ref format don't. This leads > to some missing test coverage for interesting cases, like whether or not > a non-default ref storage format causes us to bump the repository format > version. We also don't test for the precedence of the `--ref-format=` > and the `GIT_DEFAULT_REF_FORMAT=` environment variable. Makes sense to plug these test gaps. > Extend the test suite to cover more scenarios related to the ref format. > > Signed-off-by: Patrick Steinhardt <ps@xxxxxx> > --- > t/t0001-init.sh | 48 +++++++++++++++++++++++++++++++++++------------- > 1 file changed, 35 insertions(+), 13 deletions(-) > > diff --git a/t/t0001-init.sh b/t/t0001-init.sh > index 49e9bf77c6..2093f5c1ee 100755 > --- a/t/t0001-init.sh > +++ b/t/t0001-init.sh > @@ -558,15 +558,6 @@ test_expect_success DEFAULT_REPO_FORMAT 'extensions.refStorage with unknown back > grep "invalid value for ${SQ}extensions.refstorage${SQ}: ${SQ}garbage${SQ}" err > ' > > -test_expect_success DEFAULT_REPO_FORMAT 'init with GIT_DEFAULT_REF_FORMAT=files' ' > - test_when_finished "rm -rf refformat" && > - GIT_DEFAULT_REF_FORMAT=files git init refformat && > - echo 0 >expect && > - git -C refformat config core.repositoryformatversion >actual && > - test_cmp expect actual && > - test_must_fail git -C refformat config extensions.refstorage > -' > - > test_expect_success 'init with GIT_DEFAULT_REF_FORMAT=garbage' ' > test_when_finished "rm -rf refformat" && > cat >expect <<-EOF && > @@ -576,15 +567,46 @@ test_expect_success 'init with GIT_DEFAULT_REF_FORMAT=garbage' ' > test_cmp expect err > ' > > -test_expect_success 'init with --ref-format=files' ' > +backends="files reftable" > +for format in $backends > +do > + test_expect_success DEFAULT_REPO_FORMAT "init with GIT_DEFAULT_REF_FORMAT=$format" ' The `DEFAULT_REPO_FORMAT` prereq is needed here because a non-default repo format also changes the repository format version. > + test_when_finished "rm -rf refformat" && > + GIT_DEFAULT_REF_FORMAT=$format git init refformat && > + > + if test $format = files > + then > + test_must_fail git -C refformat config extensions.refstorage && > + echo 0 >expect > + else > + git -C refformat config extensions.refstorage && > + echo 1 >expect > + fi && > + git -C refformat config core.repositoryformatversion >actual && > + test_cmp expect actual && > + > + echo $format >expect && > + git -C refformat rev-parse --show-ref-format >actual && > + test_cmp expect actual > + ' > + > + test_expect_success "init with --ref-format=$format" ' > + test_when_finished "rm -rf refformat" && > + git init --ref-format=$format refformat && > + echo $format >expect && > + git -C refformat rev-parse --show-ref-format >actual && > + test_cmp expect actual > + ' > +done > + > +test_expect_success "--ref-format= overrides GIT_DEFAULT_REF_FORMAT" ' > test_when_finished "rm -rf refformat" && > - git init --ref-format=files refformat && > - echo files >expect && > + GIT_DEFAULT_REF_FORMAT=files git init --ref-format=reftable refformat && > + echo reftable >expect && > git -C refformat rev-parse --show-ref-format >actual && > test_cmp expect actual > ' Nice that we now validate that the `--ref-format` option takes precedence over the `GIT_DEFAULT_REF_FORMAT` environment variable. -Justin