Skip to content

Commit 0dd88cd

Browse files
net: don't accept timeouts in TestUDPZeroBytePayload
Before this CL we accepted timeouts in TestUDPZeroBytePayload to avoid flakiness and because, according to CL 9194, the test didn't work on some platforms. On Windows, before CL 132781, the read would always timeout, and so since the test accepted timeouts it would pass incorrectly. CL 132781 fixed Windows, and changed the test to not accept timeouts in the ReadFrom case. However, the timeout was short, and so on a loaded system the Read might timeout not due to an error in the code, but just because the read was not delivered. So ignoring timeouts made the test flaky, as reported in issue #29225. This CL tries to get to a better state by increasing the timeout to a large value and not permitting timeouts at all. If there are systems where the test fails, we will need to explicitly skip the test on those systems. Fixes #29225 Change-Id: I26863369898a69cac866b34fcb5b6ffbffab31f6 Reviewed-on: https://go-review.googlesource.com/c/154759 Run-TryBot: Ian Lance Taylor <[email protected]> TryBot-Result: Gobot Gobot <[email protected]> Reviewed-by: Alex Brainman <[email protected]> Reviewed-by: Brad Fitzpatrick <[email protected]>
1 parent 49abcf1 commit 0dd88cd

File tree

1 file changed

+7
-10
lines changed

1 file changed

+7
-10
lines changed

src/net/udpsock_test.go

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -353,21 +353,18 @@ func TestUDPZeroBytePayload(t *testing.T) {
353353
if n != 0 {
354354
t.Errorf("got %d; want 0", n)
355355
}
356-
c.SetReadDeadline(time.Now().Add(100 * time.Millisecond))
356+
c.SetReadDeadline(time.Now().Add(30 * time.Second))
357357
var b [1]byte
358+
var name string
358359
if genericRead {
359360
_, err = c.(Conn).Read(b[:])
360-
// Read may timeout, it depends on the platform.
361-
if err != nil {
362-
if nerr, ok := err.(Error); !ok || !nerr.Timeout() {
363-
t.Fatal(err)
364-
}
365-
}
361+
name = "Read"
366362
} else {
367363
_, _, err = c.ReadFrom(b[:])
368-
if err != nil {
369-
t.Fatal(err)
370-
}
364+
name = "ReadFrom"
365+
}
366+
if err != nil {
367+
t.Errorf("%s of zero byte packet failed: %v", name, err)
371368
}
372369
}
373370
}

0 commit comments

Comments
 (0)