aboutsummaryrefslogtreecommitdiff
path: root/src/net/timeout_test.go
diff options
context:
space:
mode:
authorMikio Hara <mikioh.mikioh@gmail.com>2015-04-17 14:35:54 +0900
committerMikio Hara <mikioh.mikioh@gmail.com>2015-04-18 03:38:50 +0000
commit4540e162b1aefda8157372764ad3d290a414ef1d (patch)
tree219593913b2b5d05d57b0119dd33a7102921971b /src/net/timeout_test.go
parent310db63c5bc121e7bfccb494c01a6b91a257e7fc (diff)
downloadgo-4540e162b1aefda8157372764ad3d290a414ef1d.tar.xz
net: fix inconsistent error values on Accept
This change fixes inconsistent error values on Accept{,TCP,Unix}. Updates #4856. Change-Id: Ie3bb534c19a724cacb3ea3f3656e46c810b2123f Reviewed-on: https://go-review.googlesource.com/8996 Reviewed-by: Ian Lance Taylor <iant@golang.org>
Diffstat (limited to 'src/net/timeout_test.go')
-rw-r--r--src/net/timeout_test.go40
1 files changed, 24 insertions, 16 deletions
diff --git a/src/net/timeout_test.go b/src/net/timeout_test.go
index fd5658ae5f..3ef22fa76f 100644
--- a/src/net/timeout_test.go
+++ b/src/net/timeout_test.go
@@ -81,16 +81,28 @@ func TestAcceptTimeout(t *testing.T) {
if _, err := ln.Accept(); !isTimeoutError(err) {
t.Fatalf("Accept: expected err %v, got %v", errTimeout, err)
}
+ if perr := parseAcceptError(err); perr != nil {
+ t.Error(perr)
+ }
if _, err := ln.Accept(); !isTimeoutError(err) {
t.Fatalf("Accept: expected err %v, got %v", errTimeout, err)
}
+ if perr := parseAcceptError(err); perr != nil {
+ t.Error(perr)
+ }
ln.(*TCPListener).SetDeadline(time.Now().Add(100 * time.Millisecond))
if _, err := ln.Accept(); !isTimeoutError(err) {
t.Fatalf("Accept: expected err %v, got %v", errTimeout, err)
}
+ if perr := parseAcceptError(err); perr != nil {
+ t.Error(perr)
+ }
if _, err := ln.Accept(); !isTimeoutError(err) {
t.Fatalf("Accept: expected err %v, got %v", errTimeout, err)
}
+ if perr := parseAcceptError(err); perr != nil {
+ t.Error(perr)
+ }
ln.(*TCPListener).SetDeadline(noDeadline)
errc := make(chan error)
go func() {
@@ -104,15 +116,9 @@ func TestAcceptTimeout(t *testing.T) {
default:
}
ln.Close()
- switch nerr := <-errc; err := nerr.(type) {
- case *OpError:
- if err.Err != errClosing {
- t.Fatalf("Accept: expected err %v, got %v", errClosing, err)
- }
- default:
- if err != errClosing {
- t.Fatalf("Accept: expected err %v, got %v", errClosing, err)
- }
+ err = <-errc
+ if perr := parseAcceptError(err); perr != nil {
+ t.Error(perr)
}
}
@@ -356,18 +362,18 @@ func TestDeadlineReset(t *testing.T) {
}
}
-func TestTimeoutAccept(t *testing.T) {
+func TestConcurrentAcceptTimeout(t *testing.T) {
switch runtime.GOOS {
case "plan9":
t.Skipf("skipping test on %q", runtime.GOOS)
}
- ln, err := Listen("tcp", "127.0.0.1:0")
+
+ ln, err := newLocalListener("tcp")
if err != nil {
t.Fatal(err)
}
defer ln.Close()
- tl := ln.(*TCPListener)
- tl.SetDeadline(time.Now().Add(100 * time.Millisecond))
+ ln.(*TCPListener).SetDeadline(time.Now().Add(100 * time.Millisecond))
errc := make(chan error, 1)
go func() {
_, err := ln.Accept()
@@ -376,9 +382,11 @@ func TestTimeoutAccept(t *testing.T) {
select {
case <-time.After(1 * time.Second):
// Accept shouldn't block indefinitely
- t.Errorf("Accept didn't return in an expected time")
- case <-errc:
- // Pass.
+ t.Error("Accept didn't return in an expected time")
+ case err := <-errc:
+ if perr := parseAcceptError(err); perr != nil {
+ t.Error(perr)
+ }
}
}