fix: prevent users from settings a growthfactor=1

- This always causes errors, it should not be possible.
This commit is contained in:
2026-03-21 13:13:51 -04:00
parent d07f76207b
commit 9e936ebadb
3 changed files with 6 additions and 4 deletions

View File

@@ -50,7 +50,7 @@ func FuzzInsertLookup(f *testing.F) {
}
seedA, seedB := scenario.seedA, scenario.seedB
growthFactor := max(1, int(scenario.growthFactor))
growthFactor := max(2, int(scenario.growthFactor))
capacity := int(scenario.capacity)
minimumLoad := math.Abs(math.Mod(scenario.load, 1.0))

View File

@@ -49,10 +49,10 @@ func MinimumLoad(value float64) Option {
}
// GrowthFactor controls how much the capacity of the [Table] multiplies when
// it must resize. The value must be greater than 0.
// it must resize. The value must be greater than 1.
func GrowthFactor(value int) Option {
if value <= 0 {
panic(fmt.Sprintf("go-cuckoo: GrowthFactor must be greater than 0, got %d", value))
if value < 2 {
panic(fmt.Sprintf("go-cuckoo: GrowthFactor must be greater than 1, got %d", value))
}
return func(s *settings) { s.growthFactor = uint64(value) }

View File

@@ -0,0 +1,2 @@
go test fuzz v1
[]byte("1000010X17000A11\xf5XA000\xe00001aA120000000000000111220000122910000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000")