From ab9137dd24e10a9f884475413437cc31e48dbdf7 Mon Sep 17 00:00:00 2001 From: Jaana Burcu Dogan Date: Fri, 19 Aug 2016 11:13:11 -0700 Subject: [PATCH] context: test WithCancel with canceled parent Change-Id: I32079cc12cfffb8520f0073a8b5119705dc0cd1b Reviewed-on: https://go-review.googlesource.com/27401 Reviewed-by: Brad Fitzpatrick Run-TryBot: Brad Fitzpatrick TryBot-Result: Gobot Gobot --- src/context/context_test.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/context/context_test.go b/src/context/context_test.go index cf182110fb..c31c4d8718 100644 --- a/src/context/context_test.go +++ b/src/context/context_test.go @@ -584,6 +584,21 @@ func TestCancelRemoves(t *testing.T) { checkChildren("after cancelling WithTimeout child", ctx, 0) } +func TestWithCancelCanceledParent(t *testing.T) { + parent, pcancel := WithCancel(Background()) + pcancel() + + c, _ := WithCancel(parent) + select { + case <-c.Done(): + case <-time.After(5 * time.Second): + t.Fatal("timeout waiting for Done") + } + if got, want := c.Err(), Canceled; got != want { + t.Errorf("child not cancelled; got = %v, want = %v", got, want) + } +} + func TestWithValueChecksKey(t *testing.T) { panicVal := recoveredValue(func() { WithValue(Background(), []byte("foo"), "bar") }) if panicVal == nil { -- 2.48.1