Re: [PATCH 3/6] t1302: make tests more robust with new extensions
- From
Taylor Blau <me@ttaylorr.com>
- Date
- Jan 9, 2024, 18:43 UTC
- Message-ID
- <ZZ2T3G+igA6zAIKO@nand.local>
- In-Reply-To
- <9af1e418d47730f503dabb271d30c848bf74fa0b.1704802213.git.ps@pks.im>
On Tue, Jan 09, 2024 at 01:17:12PM +0100, Patrick Steinhardt wrote:
Show 62 quoted lines
> 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..fb30c87e1b 100755
> --- a/t/t1302-repo-version.sh
> +++ b/t/t1302-repo-version.sh
> @@ -28,7 +28,12 @@ test_expect_success 'setup' '
> '
>
> test_expect_success 'gitdir selection on normal repos' '
> - test_oid version >expect &&
> + if test_have_prereq DEFAULT_REPO_FORMAT
> + then
> + echo 0
> + else
> + echo 1
> + fi >expect &&
> git config core.repositoryformatversion >actual &&
> git -C test config core.repositoryformatversion >actual2 &&
> test_cmp expect actual &&
> @@ -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 &&
> + check_${outcome}
> + )
> "
> done <<\EOF
> allow 0
> @@ -94,7 +104,8 @@ allow 1 noop-v1
> EOF
>
> test_expect_success 'precious-objects allowed' '
> - mkconfig 1 preciousObjects >.git/config &&
> + git config core.repositoryformatversion 1 &&I'm nit-picking, but it looks like core.repositoryformatversion is all lower-case, whereas extensions.preciousObjects is camel-case. I don't think it's a big deal either way, but I couldn't *not* mention it while reading ;-)
Show 6 quoted lines
> + git config extensions.preciousObjects 1 && > check_allow > ' > > -- > 2.43.GIT
Thanks, Taylor