github.com/qiniu/go-sdk/v7@v7.27.0/internal/context/context_test.go (about) 1 //go:build unit 2 // +build unit 3 4 package context_test 5 6 import ( 7 offical_context "context" 8 "io" 9 "testing" 10 11 "github.com/qiniu/go-sdk/v7/internal/context" 12 ) 13 14 func TestCause(t *testing.T) { 15 ctx, cancel := context.WithCancelCause(context.Background()) 16 17 select { 18 case <-ctx.Done(): 19 t.Fatalf("Expect ctx.Done() is not done") 20 default: 21 } 22 23 if err := ctx.Err(); err != nil { 24 t.Fatalf("Expect ctx.Err() to return nil, but %s", err) 25 } 26 27 cancel(io.EOF) 28 29 select { 30 case <-ctx.Done(): 31 default: 32 t.Fatalf("Expect ctx.Done() is done") 33 } 34 35 if err := ctx.Err(); err != offical_context.Canceled { 36 t.Fatalf("Expect ctx.Err() to return Canceled, but %s", err) 37 } 38 39 if c := context.Cause(ctx); c != io.EOF { 40 t.Fatalf("Expect context.Cause(ctx) to return io.EOF, but %T", c) 41 } 42 }