From: Brad Fitzpatrick Date: Thu, 21 Feb 2013 00:39:33 +0000 (-0800) Subject: net/http: improve test reliability X-Git-Tag: go1.1rc2~933 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=a2ade45205e24b80a1242f5d8cd41f343e969bcd;p=gostls13.git net/http: improve test reliability Fixes #4852 R=golang-dev, adg CC=golang-dev https://golang.org/cl/7374045 --- diff --git a/src/pkg/net/http/transport_test.go b/src/pkg/net/http/transport_test.go index daaecae341..6eb670dd08 100644 --- a/src/pkg/net/http/transport_test.go +++ b/src/pkg/net/http/transport_test.go @@ -970,6 +970,7 @@ func TestIssue4191_InfiniteGetTimeout(t *testing.T) { io.Copy(w, neverEnding('a')) }) ts := httptest.NewServer(mux) + timeout := 100 * time.Millisecond client := &Client{ Transport: &Transport{ @@ -978,7 +979,7 @@ func TestIssue4191_InfiniteGetTimeout(t *testing.T) { if err != nil { return nil, err } - conn.SetDeadline(time.Now().Add(100 * time.Millisecond)) + conn.SetDeadline(time.Now().Add(timeout)) if debug { conn = NewLoggingConn("client", conn) } @@ -988,6 +989,7 @@ func TestIssue4191_InfiniteGetTimeout(t *testing.T) { }, } + getFailed := false nRuns := 5 if testing.Short() { nRuns = 1 @@ -998,6 +1000,14 @@ func TestIssue4191_InfiniteGetTimeout(t *testing.T) { } sres, err := client.Get(ts.URL + "/get") if err != nil { + if !getFailed { + // Make the timeout longer, once. + getFailed = true + t.Logf("increasing timeout") + i-- + timeout *= 10 + continue + } t.Errorf("Error issuing GET: %v", err) break } @@ -1024,6 +1034,7 @@ func TestIssue4191_InfiniteGetToPutTimeout(t *testing.T) { io.Copy(ioutil.Discard, r.Body) }) ts := httptest.NewServer(mux) + timeout := 100 * time.Millisecond client := &Client{ Transport: &Transport{ @@ -1032,7 +1043,7 @@ func TestIssue4191_InfiniteGetToPutTimeout(t *testing.T) { if err != nil { return nil, err } - conn.SetDeadline(time.Now().Add(100 * time.Millisecond)) + conn.SetDeadline(time.Now().Add(timeout)) if debug { conn = NewLoggingConn("client", conn) } @@ -1042,6 +1053,7 @@ func TestIssue4191_InfiniteGetToPutTimeout(t *testing.T) { }, } + getFailed := false nRuns := 5 if testing.Short() { nRuns = 1 @@ -1052,6 +1064,14 @@ func TestIssue4191_InfiniteGetToPutTimeout(t *testing.T) { } sres, err := client.Get(ts.URL + "/get") if err != nil { + if !getFailed { + // Make the timeout longer, once. + getFailed = true + t.Logf("increasing timeout") + i-- + timeout *= 10 + continue + } t.Errorf("Error issuing GET: %v", err) break }