]> Cypherpunks repositories - gostls13.git/commitdiff
net: use t.Deadline instead of an arbitrary read deadline in TestDialParallelSpurious...
authorBryan C. Mills <bcmills@google.com>
Wed, 11 Mar 2020 15:03:35 +0000 (11:03 -0400)
committerBryan C. Mills <bcmills@google.com>
Wed, 11 Mar 2020 16:49:13 +0000 (16:49 +0000)
Also increase the default deadline to 5s, since it empirically
doesn't need to be short and 1s seems to be too slow on some platforms.

Fixes #37795

Change-Id: Ie6bf3916b107401235a1fa8cb0f22c4a98eb2dae
Reviewed-on: https://go-review.googlesource.com/c/go/+/222959
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
src/net/dial_test.go

index 493cdfc6481a68fe1525ec36b093e3b6559f7988..78feaae7f46f9e33eb5f11c647f22fa2a3a0618e 100644 (file)
@@ -441,6 +441,14 @@ func TestDialParallelSpuriousConnection(t *testing.T) {
                t.Skip("both IPv4 and IPv6 are required")
        }
 
+       var readDeadline time.Time
+       if td, ok := t.Deadline(); ok {
+               const arbitraryCleanupMargin = 1 * time.Second
+               readDeadline = td.Add(-arbitraryCleanupMargin)
+       } else {
+               readDeadline = time.Now().Add(5 * time.Second)
+       }
+
        var wg sync.WaitGroup
        wg.Add(2)
        handler := func(dss *dualStackServer, ln Listener) {
@@ -450,7 +458,7 @@ func TestDialParallelSpuriousConnection(t *testing.T) {
                        t.Fatal(err)
                }
                // The client should close itself, without sending data.
-               c.SetReadDeadline(time.Now().Add(1 * time.Second))
+               c.SetReadDeadline(readDeadline)
                var b [1]byte
                if _, err := c.Read(b[:]); err != io.EOF {
                        t.Errorf("got %v; want %v", err, io.EOF)