aboutsummaryrefslogtreecommitdiff
path: root/libgo/go/net/server_test.go
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@golang.org>2020-01-02 15:05:27 -0800
committerIan Lance Taylor <iant@golang.org>2020-01-21 23:53:22 -0800
commit5a8ea165926cb0737ab03bc48c18dc5198ab5305 (patch)
tree962dc3357c57f019f85658f99e2e753e30201c27 /libgo/go/net/server_test.go
parent6ac6529e155c9baa0aaaed7aca06bd38ebda5b43 (diff)
downloadgcc-5a8ea165926cb0737ab03bc48c18dc5198ab5305.zip
gcc-5a8ea165926cb0737ab03bc48c18dc5198ab5305.tar.gz
gcc-5a8ea165926cb0737ab03bc48c18dc5198ab5305.tar.bz2
libgo: update to Go1.14beta1
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/214297
Diffstat (limited to 'libgo/go/net/server_test.go')
-rw-r--r--libgo/go/net/server_test.go114
1 files changed, 61 insertions, 53 deletions
diff --git a/libgo/go/net/server_test.go b/libgo/go/net/server_test.go
index 1608beb..2673b87 100644
--- a/libgo/go/net/server_test.go
+++ b/libgo/go/net/server_test.go
@@ -56,71 +56,79 @@ func TestTCPServer(t *testing.T) {
const N = 3
for i, tt := range tcpServerTests {
- if !testableListenArgs(tt.snet, tt.saddr, tt.taddr) {
- t.Logf("skipping %s test", tt.snet+" "+tt.saddr+"<-"+tt.taddr)
- continue
- }
-
- ln, err := Listen(tt.snet, tt.saddr)
- if err != nil {
- if perr := parseDialError(err); perr != nil {
- t.Error(perr)
+ t.Run(tt.snet+" "+tt.saddr+"<-"+tt.taddr, func(t *testing.T) {
+ if !testableListenArgs(tt.snet, tt.saddr, tt.taddr) {
+ t.Skip("not testable")
}
- t.Fatal(err)
- }
- var lss []*localServer
- var tpchs []chan error
- defer func() {
- for _, ls := range lss {
- ls.teardown()
- }
- }()
- for i := 0; i < N; i++ {
- ls, err := (&streamListener{Listener: ln}).newLocalServer()
+ ln, err := Listen(tt.snet, tt.saddr)
if err != nil {
+ if perr := parseDialError(err); perr != nil {
+ t.Error(perr)
+ }
t.Fatal(err)
}
- lss = append(lss, ls)
- tpchs = append(tpchs, make(chan error, 1))
- }
- for i := 0; i < N; i++ {
- ch := tpchs[i]
- handler := func(ls *localServer, ln Listener) { transponder(ln, ch) }
- if err := lss[i].buildup(handler); err != nil {
- t.Fatal(err)
- }
- }
- var trchs []chan error
- for i := 0; i < N; i++ {
- _, port, err := SplitHostPort(lss[i].Listener.Addr().String())
- if err != nil {
- t.Fatal(err)
+ var lss []*localServer
+ var tpchs []chan error
+ defer func() {
+ for _, ls := range lss {
+ ls.teardown()
+ }
+ }()
+ for i := 0; i < N; i++ {
+ ls, err := (&streamListener{Listener: ln}).newLocalServer()
+ if err != nil {
+ t.Fatal(err)
+ }
+ lss = append(lss, ls)
+ tpchs = append(tpchs, make(chan error, 1))
}
- d := Dialer{Timeout: someTimeout}
- c, err := d.Dial(tt.tnet, JoinHostPort(tt.taddr, port))
- if err != nil {
- if perr := parseDialError(err); perr != nil {
- t.Error(perr)
+ for i := 0; i < N; i++ {
+ ch := tpchs[i]
+ handler := func(ls *localServer, ln Listener) { transponder(ln, ch) }
+ if err := lss[i].buildup(handler); err != nil {
+ t.Fatal(err)
}
- t.Fatal(err)
}
- defer c.Close()
- trchs = append(trchs, make(chan error, 1))
- go transceiver(c, []byte("TCP SERVER TEST"), trchs[i])
- }
- for _, ch := range trchs {
- for err := range ch {
- t.Errorf("#%d: %v", i, err)
+ var trchs []chan error
+ for i := 0; i < N; i++ {
+ _, port, err := SplitHostPort(lss[i].Listener.Addr().String())
+ if err != nil {
+ t.Fatal(err)
+ }
+ d := Dialer{Timeout: someTimeout}
+ c, err := d.Dial(tt.tnet, JoinHostPort(tt.taddr, port))
+ if err != nil {
+ if perr := parseDialError(err); perr != nil {
+ t.Error(perr)
+ }
+ if tt.taddr == "::1" && os.Getenv("GO_BUILDER_NAME") == "darwin-amd64-10_12" && os.IsTimeout(err) {
+ // A suspected kernel bug in macOS 10.12 occasionally results in
+ // "i/o timeout" errors when dialing address ::1. The errors have not
+ // been observed on newer versions of the OS, so we don't plan to work
+ // around them. See https://golang.org/issue/32919.
+ t.Skipf("skipping due to error on known-flaky macOS 10.12 builder: %v", err)
+ }
+ t.Fatal(err)
+ }
+ defer c.Close()
+ trchs = append(trchs, make(chan error, 1))
+ go transceiver(c, []byte("TCP SERVER TEST"), trchs[i])
}
- }
- for _, ch := range tpchs {
- for err := range ch {
- t.Errorf("#%d: %v", i, err)
+
+ for _, ch := range trchs {
+ for err := range ch {
+ t.Errorf("#%d: %v", i, err)
+ }
}
- }
+ for _, ch := range tpchs {
+ for err := range ch {
+ t.Errorf("#%d: %v", i, err)
+ }
+ }
+ })
}
}