From 56385f0ae0502ad9b406db388e03f7ee028ef4f8 Mon Sep 17 00:00:00 2001 From: Runxi Yu Date: Sun, 14 Jun 2026 14:15:52 +0000 Subject: internal/format/packidx/bloom: Fix tests --- internal/format/packidx/bloom/bloom_test.go | 2 +- internal/format/packidx/bloom/lookup_test.go | 2 +- internal/format/packidx/bloom/roundtrip_test.go | 16 ++++++++++++++-- internal/format/packidx/bloom/write_test.go | 6 +++--- 4 files changed, 19 insertions(+), 7 deletions(-) (limited to 'internal/format') diff --git a/internal/format/packidx/bloom/bloom_test.go b/internal/format/packidx/bloom/bloom_test.go index 16295afd..440959f9 100644 --- a/internal/format/packidx/bloom/bloom_test.go +++ b/internal/format/packidx/bloom/bloom_test.go @@ -13,7 +13,7 @@ func validFilter(t *testing.T, format id.ObjectFormat) []byte { // TODO: maybe testgit should have something like this? t.Helper() - builder, err := bloom.NewBuilder(format, 4, 2) + builder, err := bloom.NewBuilder(format, 4, 2, make([]byte, format.Size())) if err != nil { t.Fatal(err) } diff --git a/internal/format/packidx/bloom/lookup_test.go b/internal/format/packidx/bloom/lookup_test.go index adfbcce5..e6264f9a 100644 --- a/internal/format/packidx/bloom/lookup_test.go +++ b/internal/format/packidx/bloom/lookup_test.go @@ -12,7 +12,7 @@ func TestMayContainBadLength(t *testing.T) { format := id.ObjectFormatSHA256 - builder, err := bloom.NewBuilder(format, 4, 2) + builder, err := bloom.NewBuilder(format, 4, 2, make([]byte, format.Size())) if err != nil { t.Fatal(err) } diff --git a/internal/format/packidx/bloom/roundtrip_test.go b/internal/format/packidx/bloom/roundtrip_test.go index 990c83e0..28db17a5 100644 --- a/internal/format/packidx/bloom/roundtrip_test.go +++ b/internal/format/packidx/bloom/roundtrip_test.go @@ -1,6 +1,7 @@ package bloom_test import ( + "bytes" "encoding/binary" "testing" @@ -38,12 +39,14 @@ func TestRoundTrip(t *testing.T) { t.Fatal(err) } - builder, err := bloom.NewBuilder(format, bucketCount, k) + size := format.Size() + packHash := makeOID(size, 0xC0FFEE) + + builder, err := bloom.NewBuilder(format, bucketCount, k, packHash) if err != nil { t.Fatal(err) } - size := format.Size() for i := range objects { builder.Add(makeOID(size, uint64(i))) } @@ -53,6 +56,15 @@ func TestRoundTrip(t *testing.T) { t.Fatal(err) } + if !bytes.Equal(filter.PackHash(), packHash) { + t.Fatalf("PackHash = %x, want %x", filter.PackHash(), packHash) + } + + err = filter.Verify() + if err != nil { + t.Fatalf("Verify on a freshly built filter: %v", err) + } + for i := range objects { if !filter.MayContain(makeOID(size, uint64(i))) { t.Fatalf("false negative for added object %d", i) diff --git a/internal/format/packidx/bloom/write_test.go b/internal/format/packidx/bloom/write_test.go index 40c42e37..a1cee127 100644 --- a/internal/format/packidx/bloom/write_test.go +++ b/internal/format/packidx/bloom/write_test.go @@ -25,7 +25,7 @@ func TestRecommendParams(t *testing.T) { t.Errorf("n=%d: bucket count %d not a power of two", n, bucketCount) } - _, err = bloom.NewBuilder(format, bucketCount, k) + _, err = bloom.NewBuilder(format, bucketCount, k, make([]byte, format.Size())) if err != nil { t.Errorf("n=%d: recommended parameters rejected: %v", n, err) } @@ -55,7 +55,7 @@ func TestNewBuilderRejects(t *testing.T) { t.Run(tc.name, func(t *testing.T) { t.Parallel() - _, err := bloom.NewBuilder(format, tc.bucketCount, tc.k) + _, err := bloom.NewBuilder(format, tc.bucketCount, tc.k, make([]byte, format.Size())) if !errors.Is(err, bloom.ErrInvalidParameters) { t.Fatalf("error = %v, want ErrInvalidParameters", err) } @@ -68,7 +68,7 @@ func TestNewBuilderRejects(t *testing.T) { func TestAddBadLength(t *testing.T) { t.Parallel() - builder, err := bloom.NewBuilder(id.ObjectFormatSHA256, 4, 2) + builder, err := bloom.NewBuilder(id.ObjectFormatSHA256, 4, 2, make([]byte, id.ObjectFormatSHA256.Size())) if err != nil { t.Fatal(err) } -- cgit v1.3.1-10-gc9f91