mirror of
https://github.com/golang/go
synced 2024-09-30 16:18:35 -06:00
net: convert many Close tests to use parallel subtests
Also set a deadline in TestCloseWrite so that we can more easily determine which kind of connection is getting stuck on the darwin-arm64-corellium builder (#34837). Change-Id: I8ccacbf436e8e493fb2298a79b17e0af8fc6eb81 Reviewed-on: https://go-review.googlesource.com/c/go/+/227588 Run-TryBot: Bryan C. Mills <bcmills@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Ian Lance Taylor <iant@golang.org>
This commit is contained in:
parent
98b6c6aca6
commit
c1f0edae04
@ -23,12 +23,15 @@ func TestCloseRead(t *testing.T) {
|
||||
case "plan9":
|
||||
t.Skipf("not supported on %s", runtime.GOOS)
|
||||
}
|
||||
t.Parallel()
|
||||
|
||||
for _, network := range []string{"tcp", "unix", "unixpacket"} {
|
||||
network := network
|
||||
t.Run(network, func(t *testing.T) {
|
||||
if !testableNetwork(network) {
|
||||
t.Logf("skipping %s test", network)
|
||||
continue
|
||||
t.Skipf("network %s is not testable on the current platform", network)
|
||||
}
|
||||
t.Parallel()
|
||||
|
||||
ln, err := newLocalListener(network)
|
||||
if err != nil {
|
||||
@ -67,6 +70,7 @@ func TestCloseRead(t *testing.T) {
|
||||
if n != 0 || err == nil {
|
||||
t.Fatalf("got (%d, %v); want (0, error)", n, err)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
@ -76,12 +80,30 @@ func TestCloseWrite(t *testing.T) {
|
||||
t.Skipf("not supported on %s", runtime.GOOS)
|
||||
}
|
||||
|
||||
t.Parallel()
|
||||
deadline, _ := t.Deadline()
|
||||
if !deadline.IsZero() {
|
||||
// Leave 10% headroom on the deadline to report errors and clean up.
|
||||
deadline = deadline.Add(-time.Until(deadline) / 10)
|
||||
}
|
||||
|
||||
for _, network := range []string{"tcp", "unix", "unixpacket"} {
|
||||
network := network
|
||||
t.Run(network, func(t *testing.T) {
|
||||
if !testableNetwork(network) {
|
||||
t.Skipf("network %s is not testable on the current platform", network)
|
||||
}
|
||||
t.Parallel()
|
||||
|
||||
handler := func(ls *localServer, ln Listener) {
|
||||
c, err := ln.Accept()
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
return
|
||||
}
|
||||
if !deadline.IsZero() {
|
||||
c.SetDeadline(deadline)
|
||||
}
|
||||
defer c.Close()
|
||||
|
||||
var b [1]byte
|
||||
@ -110,12 +132,6 @@ func TestCloseWrite(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
for _, network := range []string{"tcp", "unix", "unixpacket"} {
|
||||
if !testableNetwork(network) {
|
||||
t.Logf("skipping %s test", network)
|
||||
continue
|
||||
}
|
||||
|
||||
ls, err := newLocalServer(network)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
@ -129,6 +145,9 @@ func TestCloseWrite(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if !deadline.IsZero() {
|
||||
c.SetDeadline(deadline)
|
||||
}
|
||||
switch network {
|
||||
case "unix", "unixpacket":
|
||||
defer os.Remove(c.LocalAddr().String())
|
||||
@ -156,15 +175,19 @@ func TestCloseWrite(t *testing.T) {
|
||||
if err == nil {
|
||||
t.Fatalf("got (%d, %v); want (any, error)", n, err)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestConnClose(t *testing.T) {
|
||||
t.Parallel()
|
||||
for _, network := range []string{"tcp", "unix", "unixpacket"} {
|
||||
network := network
|
||||
t.Run(network, func(t *testing.T) {
|
||||
if !testableNetwork(network) {
|
||||
t.Logf("skipping %s test", network)
|
||||
continue
|
||||
t.Skipf("network %s is not testable on the current platform", network)
|
||||
}
|
||||
t.Parallel()
|
||||
|
||||
ln, err := newLocalListener(network)
|
||||
if err != nil {
|
||||
@ -197,15 +220,19 @@ func TestConnClose(t *testing.T) {
|
||||
if n != 0 || err == nil {
|
||||
t.Fatalf("got (%d, %v); want (0, error)", n, err)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestListenerClose(t *testing.T) {
|
||||
t.Parallel()
|
||||
for _, network := range []string{"tcp", "unix", "unixpacket"} {
|
||||
network := network
|
||||
t.Run(network, func(t *testing.T) {
|
||||
if !testableNetwork(network) {
|
||||
t.Logf("skipping %s test", network)
|
||||
continue
|
||||
t.Skipf("network %s is not testable on the current platform", network)
|
||||
}
|
||||
t.Parallel()
|
||||
|
||||
ln, err := newLocalListener(network)
|
||||
if err != nil {
|
||||
@ -251,15 +278,19 @@ func TestListenerClose(t *testing.T) {
|
||||
cc.Close()
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestPacketConnClose(t *testing.T) {
|
||||
t.Parallel()
|
||||
for _, network := range []string{"udp", "unixgram"} {
|
||||
network := network
|
||||
t.Run(network, func(t *testing.T) {
|
||||
if !testableNetwork(network) {
|
||||
t.Logf("skipping %s test", network)
|
||||
continue
|
||||
t.Skipf("network %s is not testable on the current platform", network)
|
||||
}
|
||||
t.Parallel()
|
||||
|
||||
c, err := newLocalPacketListener(network)
|
||||
if err != nil {
|
||||
@ -282,6 +313,7 @@ func TestPacketConnClose(t *testing.T) {
|
||||
if n != 0 || err == nil {
|
||||
t.Fatalf("got (%d, %v); want (0, error)", n, err)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
@ -366,11 +398,14 @@ func TestAcceptIgnoreAbortedConnRequest(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestZeroByteRead(t *testing.T) {
|
||||
t.Parallel()
|
||||
for _, network := range []string{"tcp", "unix", "unixpacket"} {
|
||||
network := network
|
||||
t.Run(network, func(t *testing.T) {
|
||||
if !testableNetwork(network) {
|
||||
t.Logf("skipping %s test", network)
|
||||
continue
|
||||
t.Skipf("network %s is not testable on the current platform", network)
|
||||
}
|
||||
t.Parallel()
|
||||
|
||||
ln, err := newLocalListener(network)
|
||||
if err != nil {
|
||||
@ -392,7 +427,7 @@ func TestZeroByteRead(t *testing.T) {
|
||||
defer c.Close()
|
||||
sc := <-connc
|
||||
if sc == nil {
|
||||
continue
|
||||
return
|
||||
}
|
||||
defer sc.Close()
|
||||
|
||||
@ -416,6 +451,7 @@ func TestZeroByteRead(t *testing.T) {
|
||||
if n != 0 || err != nil {
|
||||
t.Errorf("%s: zero byte server read = %v, %v; want 0, nil", network, n, err)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user