github.com/ydb-platform/ydb-go-sdk/v3@v3.89.2/internal/xcontext/done_test.go (about) 1 package xcontext 2 3 import ( 4 "context" 5 "testing" 6 7 "github.com/stretchr/testify/require" 8 ) 9 10 func TestWithDone(t *testing.T) { 11 t.Run("CancelParent", func(t *testing.T) { 12 ctx, cancel := context.WithCancel(context.Background()) 13 done := make(chan struct{}) 14 ctx1, _ := WithDone(ctx, done) 15 require.NoError(t, ctx1.Err()) 16 cancel() 17 require.Error(t, ctx1.Err()) 18 }) 19 t.Run("CloseDone", func(t *testing.T) { 20 ctx, cancel := context.WithCancel(context.Background()) 21 defer cancel() 22 done := make(chan struct{}) 23 ctx1, cancel1 := WithDone(ctx, done) 24 require.NoError(t, ctx1.Err()) 25 cancel1() 26 require.NoError(t, ctx.Err()) 27 require.Error(t, ctx1.Err()) 28 }) 29 }