client: return context canceled error correctly
@@ -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:
}
@@ -257,8 +257,8 @@ func TestSimpleHTTPClientDoCancelContextResponseBodyClosedWithBlockingBody(t *te
}()
_, _, err := c.Do(ctx, &fakeAction{})
- t.Fatalf("expected non-nil error, got nil")
+ if err != context.Canceled {
+ t.Fatalf("expected %+v, got %+v", context.Canceled, err)
if !body.closed {