feat: wider fuzz tests, stronger options. #9

Merged
mvhutz merged 5 commits from fix/infinite-put-glitch into main 2026-03-25 01:26:57 +00:00
3 changed files with 6 additions and 4 deletions
Showing only changes of commit 9e936ebadb - Show all commits

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")