diff options
author | Ian Lance Taylor <iant@golang.org> | 2020-01-02 15:05:27 -0800 |
---|---|---|
committer | Ian Lance Taylor <iant@golang.org> | 2020-01-21 23:53:22 -0800 |
commit | 5a8ea165926cb0737ab03bc48c18dc5198ab5305 (patch) | |
tree | 962dc3357c57f019f85658f99e2e753e30201c27 /libgo/go/net/server_test.go | |
parent | 6ac6529e155c9baa0aaaed7aca06bd38ebda5b43 (diff) | |
download | gcc-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.go | 114 |
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) + } + } + }) } } |