Re: [PATCH 4/4] t5326: test propagating hashcache values
- From
Ævar Arnfjörð Bjarmason <avarab@gmail.com>
- Date
- Sep 17, 2021, 19:22 UTC
- Message-ID
- <878rzvdmwq.fsf@evledraar.gmail.com>
- In-Reply-To
- <YUTRHaHDjCaxmQyY@nand.local>
On Fri, Sep 17 2021, Taylor Blau wrote:
Show 37 quoted lines
> On Fri, Sep 17, 2021 at 10:56:09AM +0200, Ævar Arnfjörð Bjarmason wrote: >> >> It seems the need for this "rm -fr repo" dance instead of just relying >> >> on test_when_finished "rm -rf repo" is because of a 3x tests in a >> >> function in tb/multi-pack-bitmaps that should probably be combined into >> >> one, i.e. they share the same logical "repo" setup. >> > >> > Yeah. There's definitely room for clean-up there if we want to have each >> > of the tests operate on the same repo. I have always found sharing a >> > repo between tests difficult to reason about, since we have to assume >> > that any --run parameters could be passed in. >> > >> > So I have tended to err on the side of creating and throwing away a new >> > repo per test, but I understand that's somewhat atypical for Git's >> > tests. >> >> Just in an effort to make myself clear here, because between your note >> in https://lore.kernel.org/git/YUOds4kcHRgMk5nC@nand.local/ and >> re-reading my mail here I can barely understand what I meant here :) > > Thanks for clarifying; if I could summarize I would say that this > discussion got started since a new test I added starts with: > > rm -fr repo && > git init repo && > test_when_finished "rm -fr repo" > > where the first rm is designed to clean any state left behind from the > split-up tests added in c51f5a6437c. > > I understand your suggestion, and I even think that it may be worth > doing, but I'm not sure that I buy that any such cleanup is related to > this series for any reason other than "you happened to add a new test in > this file which extended the pattern". > > So let's pursue the cleanup, but outside of this series (and maybe once > the dust has settled more generally on the MIDX bitmaps topics to avoid > having the maintainer deal with any conflicts).
Yes I agree, FWIW I didn't look carefully at what was in-flight where at the time, or the series this depends on was itself in "seen", I can't remember which..
Show 11 quoted lines
>> Or, you can also just not re-use the "repo" name, which is what I did in >> the fsck tests at >> https://lore.kernel.org/git/patch-v6-01.22-ebe89f65354-20210907T104559Z-avarab@gmail.com/; >> then you don't even need test_when_finished "rm -rf[ ...]". > > TBH, I think that this is the most appealing thing to do. It's easy and > doesn't require us to think too hard about test_expect_setup or > sub-tests or anything like that where I'm not sure the complexity is > warranted. > > I would probably do something like this:
Yeah, that bypasses the cleanup bit, but leaves --run broken as I described. For new code I think it's good practice to have --run work too.
Again, I think that's a non-issue here considering the rest of the dumpster fire in the test suite when it comes to that, so I'm not suggesting a re-roll or whatever.
I just used the upthread as a jumping off point since you had a question about these patterns in the other topic, and perhaps you/some bystander would be convinced and follow that pattern in the future.
Show 64 quoted lines
> --- >8 ---
>
> diff --git a/t/t5326-multi-pack-bitmaps.sh b/t/t5326-multi-pack-bitmaps.sh
> index ec4aa89f63..11845f67ae 100755
> --- a/t/t5326-multi-pack-bitmaps.sh
> +++ b/t/t5326-multi-pack-bitmaps.sh
> @@ -132,12 +132,12 @@ test_expect_success 'clone with bitmaps enabled' '
> bitmap_reuse_tests() {
> from=$1
> to=$2
> + repo="bitmap-reuse-$from-$to"
>
> test_expect_success "setup pack reuse tests ($from -> $to)" '
> - rm -fr repo &&
> - git init repo &&
> + git init $repo &&
> (
> - cd repo &&
> + cd $repo &&
> test_commit_bulk 16 &&
> git tag old-tip &&
>
> @@ -154,7 +154,7 @@ bitmap_reuse_tests() {
>
> test_expect_success "build bitmap from existing ($from -> $to)" '
> (
> - cd repo &&
> + cd $repo &&
> test_commit_bulk --id=further 16 &&
> git tag new-tip &&
>
> @@ -170,7 +170,7 @@ bitmap_reuse_tests() {
>
> test_expect_success "verify resulting bitmaps ($from -> $to)" '
> (
> - cd repo &&
> + cd $repo &&
> git for-each-ref &&
> git rev-list --test-bitmap refs/tags/old-tip &&
> git rev-list --test-bitmap refs/tags/new-tip
> @@ -183,7 +183,6 @@ bitmap_reuse_tests 'MIDX' 'pack'
> bitmap_reuse_tests 'MIDX' 'MIDX'
>
> test_expect_success 'missing object closure fails gracefully' '
> - rm -fr repo &&
> git init repo &&
> test_when_finished "rm -fr repo" &&
> (
> @@ -217,7 +216,6 @@ test_expect_success 'setup partial bitmaps' '
> basic_bitmap_tests HEAD~
>
> test_expect_success 'removing a MIDX clears stale bitmaps' '
> - rm -fr repo &&
> git init repo &&
> test_when_finished "rm -fr repo" &&
> (
> @@ -284,7 +282,6 @@ test_expect_success 'pack.preferBitmapTips' '
> '
>
> test_expect_success 'hash-cache values are propagated from pack bitmaps' '
> - rm -fr repo &&
> git init repo &&
> test_when_finished "rm -fr repo" &&
> (