Merge pull request #3216 from yichengq/cancel-err

client: return context canceled error correctly
This commit is contained in:
Xiang Li 2015-08-06 15:04:49 -07:00
commit b9c6b64d61
2 changed files with 4 additions and 6 deletions

View File

@ -392,11 +392,9 @@ func (c *simpleHTTPClient) Do(ctx context.Context, act httpAction) (*http.Respon
select {
case <-ctx.Done():
err = resp.Body.Close()
resp.Body.Close()
<-done
if err == nil {
err = ctx.Err()
}
return nil, nil, ctx.Err()
case <-done:
}

View File

@ -257,8 +257,8 @@ func TestSimpleHTTPClientDoCancelContextResponseBodyClosedWithBlockingBody(t *te
}()
_, _, err := c.Do(ctx, &fakeAction{})
if err == nil {
t.Fatalf("expected non-nil error, got nil")
if err != context.Canceled {
t.Fatalf("expected %+v, got %+v", context.Canceled, err)
}
if !body.closed {