github.com/ydb-platform/ydb-go-sdk/v3@v3.89.2/internal/xcontext/cancels_quard_test.go (about)

     1  package xcontext
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/require"
     7  	"golang.org/x/net/context"
     8  )
     9  
    10  func TestCancelsGuard(t *testing.T) {
    11  	g := NewCancelsGuard()
    12  	ctx, cancel1 := g.WithCancel(context.Background())
    13  	require.Len(t, g.cancels, 1)
    14  	cancel1()
    15  	require.Error(t, ctx.Err())
    16  	require.Empty(t, g.cancels, 0)
    17  	ctx, _ = g.WithCancel(context.Background())
    18  	require.Len(t, g.cancels, 1)
    19  	ctx, _ = g.WithCancel(ctx)
    20  	require.Len(t, g.cancels, 2)
    21  	g.Cancel()
    22  	require.Error(t, ctx.Err())
    23  }