1 [!fuzz] skip
2 [short] skip
3 env GOCACHE=$WORK/cache
4
5 # Test fuzz.Context.
6 go test -vet=off context_fuzz_test.go
7 stdout ^ok
8 ! stdout FAIL
9
10 go test -vet=off -fuzz=Fuzz -fuzztime=1x context_fuzz_test.go
11 stdout ok
12 ! stdout FAIL
13
14 -- context_fuzz_test.go --
15 package context_fuzz
16
17 import (
18 "context"
19 "errors"
20 "testing"
21 )
22
23 func Fuzz(f *testing.F) {
24 ctx := f.Context()
25 if err := ctx.Err(); err != nil {
26 f.Fatalf("expected non-canceled context, got %v", err)
27 }
28
29 f.Fuzz(func(t *testing.T, data []byte) {
30 innerCtx := t.Context()
31 if err := innerCtx.Err(); err != nil {
32 t.Fatalf("expected inner test to not inherit canceled context, got %v", err)
33 }
34
35 t.Cleanup(func() {
36 if !errors.Is(innerCtx.Err(), context.Canceled) {
37 t.Fatal("expected context of inner test to be canceled after its fuzz function finished")
38 }
39 })
40 })
41
42 f.Cleanup(func() {
43 if !errors.Is(ctx.Err(), context.Canceled) {
44 f.Fatal("expected context canceled before cleanup")
45 }
46 })
47 }
48
View as plain text