forked from TrueCloudLab/restic
check: Fix crash of --read-data-subset=x% on empty repository
Rounding up to at least one pack file should only be done if at least a pack file exists.
This commit is contained in:
parent
4baebdc6f5
commit
9e852af5be
3 changed files with 15 additions and 1 deletions
7
changelog/unreleased/issue-3296
Normal file
7
changelog/unreleased/issue-3296
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
Bugfix: Fix crash of `check --read-data-subset=x%` run for an empty repository
|
||||||
|
|
||||||
|
`check --read-data-subset=x%` crashed when run for an empty repository. This
|
||||||
|
has been fixed.
|
||||||
|
|
||||||
|
https://github.com/restic/restic/issues/3296
|
||||||
|
https://github.com/restic/restic/pull/3309
|
|
@ -331,7 +331,7 @@ func selectPacksByBucket(allPacks map[restic.ID]int64, bucket, totalBuckets uint
|
||||||
func selectRandomPacksByPercentage(allPacks map[restic.ID]int64, percentage float64) map[restic.ID]int64 {
|
func selectRandomPacksByPercentage(allPacks map[restic.ID]int64, percentage float64) map[restic.ID]int64 {
|
||||||
packCount := len(allPacks)
|
packCount := len(allPacks)
|
||||||
packsToCheck := int(float64(packCount) * (percentage / 100.0))
|
packsToCheck := int(float64(packCount) * (percentage / 100.0))
|
||||||
if packsToCheck < 1 {
|
if packCount > 0 && packsToCheck < 1 {
|
||||||
packsToCheck = 1
|
packsToCheck = 1
|
||||||
}
|
}
|
||||||
timeNs := time.Now().UnixNano()
|
timeNs := time.Now().UnixNano()
|
||||||
|
|
|
@ -122,3 +122,10 @@ func TestSelectRandomPacksByPercentage(t *testing.T) {
|
||||||
rtest.Assert(t, ok, "Expected input and output to be equal")
|
rtest.Assert(t, ok, "Expected input and output to be equal")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestSelectNoRandomPacksByPercentage(t *testing.T) {
|
||||||
|
// that the a repository without pack files works
|
||||||
|
var testPacks = make(map[restic.ID]int64)
|
||||||
|
selectedPacks := selectRandomPacksByPercentage(testPacks, 10.0)
|
||||||
|
rtest.Assert(t, len(selectedPacks) == 0, "Expected 0 selected packs")
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue