Skip to content

Commit 47988b2

Browse files
committed
net/http: wrap client errors followup
1 parent 99efe7c commit 47988b2

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

src/net/http/client_test.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2127,3 +2127,23 @@ func testProbeZeroLengthBody(t *testing.T, mode testMode) {
21272127
t.Fatalf("server got body %q, want %q", gotBody, content)
21282128
}
21292129
}
2130+
2131+
2132+
func TestClientTimeoutReturnsContextDeadlineExceeded(t *testing.T) {
2133+
run(t, testClientTimeoutReturnsContextDeadlineExceeded)
2134+
}
2135+
func testClientTimeoutReturnsContextDeadlineExceeded(t *testing.T, mode testMode) {
2136+
doneCh := make(chan struct{})
2137+
defer close(doneCh)
2138+
cst := newClientServerTest(t, mode, HandlerFunc(func(w ResponseWriter, r *Request) {
2139+
<-doneCh
2140+
w.WriteHeader(200)
2141+
}))
2142+
// check that, upon exceeding Client.Timeout, the returned error is context.DeadlineExceeded.
2143+
cst.c.Timeout = 5 * time.Millisecond
2144+
req, _ := NewRequest("GET", cst.ts.URL, nil)
2145+
_, err := cst.c.Do(req)
2146+
if !errors.Is(err, context.DeadlineExceeded) {
2147+
t.Fatalf("expected context.DeadlineExceeded, got %v", err)
2148+
}
2149+
}

0 commit comments

Comments
 (0)