type afterFuncContext … func newAfterFuncContext() context.Context { … } func (c *afterFuncContext) Deadline() (time.Time, bool) { … } func (c *afterFuncContext) Done() <-chan struct{ … } func (c *afterFuncContext) Err() error { … } func (c *afterFuncContext) Value(key any) any { … } func (c *afterFuncContext) AfterFunc(f func()) func() bool { … } func (c *afterFuncContext) cancel(err error) { … } func TestCustomContextAfterFuncCancel(t *testing.T) { … } func TestCustomContextAfterFuncTimeout(t *testing.T) { … } func TestCustomContextAfterFuncAfterFunc(t *testing.T) { … } func TestCustomContextAfterFuncUnregisterCancel(t *testing.T) { … } func TestCustomContextAfterFuncUnregisterTimeout(t *testing.T) { … } func TestCustomContextAfterFuncUnregisterAfterFunc(t *testing.T) { … }