From: Jaana Burcu Dogan Date: Fri, 19 Aug 2016 18:13:11 +0000 (-0700) Subject: context: test WithCancel with canceled parent X-Git-Tag: go1.8beta1~1765 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=ab9137dd24e10a9f884475413437cc31e48dbdf7;p=gostls13.git 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 --- 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 {