Re: [PATCH v2 03/22] t3305: annotate with SHA1 prerequisite
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Jan 26, 2020, 11:15 UTC
- Message-ID
- <nycvar.QRO.7.76.6.2001261209590.46@tvgsbejvaqbjf.bet>
- In-Reply-To
- <20200125230035.136348-4-sandals@crustytoothpaste.net>
Hi brian,
On Sat, 25 Jan 2020, brian m. carlson wrote:
> This test relies on a roughly equal distribution of hashes for notes in > order to ensure that fanouts are compressed. If there are subtrees with > only one item left after removing notes, they'll end up still with one > level of fanout, causing the test to fail.
That is _almost_ correct: The heuristic wants to see one bucket that has a note in it. Or something like that.
See 73f77b909f8 (Notes API: for_each_note(): Traverse the entire notes tree with a callback, 2010-02-13) for details. (Cc:ing Johan.)
> The test happens to pass with SHA-1, but doesn't necessarily with other > hash algorithms, so annotate it with the SHA1 prerequisite.
I would rather see this tested, still, and reducing the number of notes that are retained from 50 to 20 before testing that the fanout has been reduced to 0 seems to do the trick. Therefore, I would love to submit this for squashing:
-- snip --
diff --git a/t/t3305-notes-fanout.sh b/t/t3305-notes-fanout.sh index 3520402bb81..39b12c9902c 100755 --- a/t/t3305-notes-fanout.sh +++ b/t/t3305-notes-fanout.sh @@ -43,7 +43,7 @@ test_expect_success 'many notes created with git-notes triggers fanout' ' ' test_expect_success 'deleting most notes with git-notes' ' - num_notes=250 && + num_notes=280 && i=0 && git rev-list HEAD | while test $i -lt $num_notes && read sha1 @@ -56,8 +56,8 @@ test_expect_success 'deleting most notes with git-notes' ' ' test_expect_success 'most notes deleted correctly with git-notes' ' - git log HEAD~250 | grep "^ " > output && - i=50 && + git log HEAD~280 | grep "^ " > output && + i=20 && while test $i -gt 0 do echo " commit #$i" && @@ -67,7 +67,7 @@ test_expect_success 'most notes deleted correctly with git-notes' ' test_cmp expect output ' -test_expect_success SHA1 'deleting most notes triggers fanout consolidation' ' +test_expect_success 'deleting most notes triggers fanout consolidation' ' # Expect entire notes tree to have a fanout == 0 git ls-tree -r --name-only refs/notes/commits | while read path -- snap -- Thanks, Dscho > > Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net> > --- > t/t3305-notes-fanout.sh | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/t/t3305-notes-fanout.sh b/t/t3305-notes-fanout.sh > index 831f83d211..3520402bb8 100755 > --- a/t/t3305-notes-fanout.sh > +++ b/t/t3305-notes-fanout.sh > @@ -67,7 +67,7 @@ test_expect_success 'most notes deleted correctly with git-notes' ' > test_cmp expect output > ' > > -test_expect_success 'deleting most notes triggers fanout consolidation' ' > +test_expect_success SHA1 'deleting most notes triggers fanout consolidation' ' > # Expect entire notes tree to have a fanout == 0 > git ls-tree -r --name-only refs/notes/commits | > while read path >