Commit 0dd88cd5 authored by Ian Lance Taylor's avatar Ian Lance Taylor

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 <iant@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: default avatarAlex Brainman <alex.brainman@gmail.com>
Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
parent 49abcf1a
......@@ -353,21 +353,18 @@ func TestUDPZeroBytePayload(t *testing.T) {
if n != 0 {
t.Errorf("got %d; want 0", n)
}
c.SetReadDeadline(time.Now().Add(100 * time.Millisecond))
c.SetReadDeadline(time.Now().Add(30 * time.Second))
var b [1]byte
var name string
if genericRead {
_, err = c.(Conn).Read(b[:])
// Read may timeout, it depends on the platform.
if err != nil {
if nerr, ok := err.(Error); !ok || !nerr.Timeout() {
t.Fatal(err)
}
}
name = "Read"
} else {
_, _, err = c.ReadFrom(b[:])
if err != nil {
t.Fatal(err)
name = "ReadFrom"
}
if err != nil {
t.Errorf("%s of zero byte packet failed: %v", name, err)
}
}
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment