diff --git a/engine.go b/engine.go index 6f5ba62..82a2004 100644 --- a/engine.go +++ b/engine.go @@ -163,7 +163,7 @@ func checkFuzz(tb tb, prop func(*T), input []byte) { input = input[n:] } - t := newT(tb, newBufBitStream(buf, false), flags.verbose, nil) + t := newT(tb, newBufBitStream(buf, false), true, nil) err := checkOnce(t, prop) switch { diff --git a/engine_fuzz_test.go b/engine_fuzz_test.go index 73db2ed..e260051 100644 --- a/engine_fuzz_test.go +++ b/engine_fuzz_test.go @@ -33,6 +33,18 @@ func checkString(t *T) { } } +func checkStuckStateMachine(t *T) { + die := 0 + t.Repeat(map[string]func(*T){ + "roll": func(t *T) { + if die == 6 { + t.Skip("game over") + } + die = IntRange(1, 6).Draw(t, "die") + }, + }) +} + func TestRapidInt(t *testing.T) { t.Skip() Check(t, checkInt) @@ -45,7 +57,12 @@ func TestRapidString(t *testing.T) { t.Skip() Check(t, checkString) } +func TestRapidStuckStateMachine(t *testing.T) { + t.Skip() + Check(t, checkStuckStateMachine) +} -func FuzzInt(f *testing.F) { f.Fuzz(MakeFuzz(checkInt)) } -func FuzzSlice(f *testing.F) { f.Fuzz(MakeFuzz(checkSlice)) } -func FuzzString(f *testing.F) { f.Fuzz(MakeFuzz(checkString)) } +func FuzzInt(f *testing.F) { f.Fuzz(MakeFuzz(checkInt)) } +func FuzzSlice(f *testing.F) { f.Fuzz(MakeFuzz(checkSlice)) } +func FuzzString(f *testing.F) { f.Fuzz(MakeFuzz(checkString)) } +func FuzzStuckStateMachine(f *testing.F) { f.Fuzz(MakeFuzz(checkStuckStateMachine)) }