From 640b2489f610b3c9ca6cdacfd3ceeb453bb25610 Mon Sep 17 00:00:00 2001 From: Michael Eischer Date: Sat, 30 May 2026 10:25:14 +0200 Subject: [PATCH] repository: repair pack: test handling of not indexed packs --- internal/repository/repair_pack_test.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/internal/repository/repair_pack_test.go b/internal/repository/repair_pack_test.go index 5f02e7d61..54f0ca02a 100644 --- a/internal/repository/repair_pack_test.go +++ b/internal/repository/repair_pack_test.go @@ -96,6 +96,22 @@ func testRepairBrokenPack(t *testing.T, version uint) { } return restic.NewIDSet(damagedID), damagedBlobs }, + }, { + "unindexed pack", + func(t *testing.T, random *rand.Rand, repo *repository.Repository, be backend.Backend, packsBefore restic.IDSet) (restic.IDSet, restic.BlobSet) { + // remove one pack file from the index + unindexID := packsBefore.List()[0] + h := backend.Handle{Type: backend.PackFile, Name: unindexID.String()} + + buf, err := backendtest.LoadAll(context.TODO(), be, h) + rtest.OK(t, err) + rtest.OK(t, be.Remove(context.TODO(), h)) + rtest.OK(t, repository.RepairIndex(context.TODO(), repo, repository.RepairIndexOptions{}, &progress.NoopPrinter{})) + + rtest.OK(t, be.Save(context.TODO(), h, backend.NewByteReader(buf, be.Hasher()))) + + return restic.NewIDSet(unindexID), restic.NewBlobSet() + }, }, }