Re: [PATCH v2 3/6] t1302: make tests more robust with new extensions
- From
Patrick Steinhardt <ps@pks.im>
- Date
- Jan 23, 2024, 15:18 UTC
- Message-ID
- <Za_Y1tP8-LEiNjrD@tanuki>
- In-Reply-To
- <87a5owqgzi.fsf@iotcl.com>
On Tue, Jan 23, 2024 at 03:08:00PM +0100, Toon Claes wrote:
Show 44 quoted lines
>
> Patrick Steinhardt <ps@pks.im> writes:
>
> > [[PGP Signed Part:Undecided]]
> > [1. text/plain]
> > In t1302 we exercise logic around "core.repositoryFormatVersion" and
> > extensions. These tests are not particularly robust against extensions
> > like the newly introduced "refStorage" extension.
> >
> > Refactor the tests to be more robust:
> >
> > - Check the DEFAULT_REPO_FORMAT prereq to determine the expected
> > repository format version. This helps to ensure that we only need to
> > update the prereq in a central place when new extensions are added.
> >
> > - Use a separate repository to rewrite ".git/config" to test
> > combinations of the repository format version and extensions. This
> > ensures that we don't break the main test repository.
> >
> > - Do not rewrite ".git/config" when exercising the "preciousObjects"
> > extension.
> >
> > Signed-off-by: Patrick Steinhardt <ps@pks.im>
> > ---
> > t/t1302-repo-version.sh | 19 +++++++++++++++----
> > 1 file changed, 15 insertions(+), 4 deletions(-)
> >
> > diff --git a/t/t1302-repo-version.sh b/t/t1302-repo-version.sh
> > index 179474fa65..7c680c91c4 100755
> > --- a/t/t1302-repo-version.sh
> > +++ b/t/t1302-repo-version.sh
> > @@ -79,8 +84,13 @@ mkconfig () {
> >
> > while read outcome version extensions; do
> > test_expect_success "$outcome version=$version $extensions" "
> > - mkconfig $version $extensions >.git/config &&
> > - check_${outcome}
> > + test_when_finished 'rm -rf extensions' &&
> > + git init extensions &&
> > + (
> > + cd extensions &&
> > + mkconfig $version $extensions >.git/config &&
>
> Why did you not remove the use of `mkconfig` here?I guess you mean stop using `mkconfig` and instead use git-config(1) to manually write only the repository format version as well as extensions? The problem here is that the resulting configuration would be dependent on some environment variables, like `GIT_TEST_DEFAULT_HASH` and the refdb equivalent `GIT_TEST_DEFAULT_REF_FORMAT` which do end up in the repo's configuration. So I think it's actually preferable to overwrite the complete ".git/config" so that is exactly in the expected state.
Patrick