net: deflake timeout, deadline tests
This change deflakes timeout, deadline tests, especially fixes socket
and goroutine leaks. Also adds a few missing tests that use features
introduced after go1 release.
Change-Id: Ibf73a4859f8d4a0ee494ca2fd180cbce72a7a2c7
Reviewed-on: https://go-review.googlesource.com/9464
Reviewed-by: Ian Lance Taylor <iant@golang.org>
diff --git a/src/net/error_test.go b/src/net/error_test.go
index 75b125d..356fad8 100644
--- a/src/net/error_test.go
+++ b/src/net/error_test.go
@@ -15,16 +15,6 @@
"time"
)
-func isTimeoutError(err error) bool {
- nerr, ok := err.(Error)
- return ok && nerr.Timeout()
-}
-
-func isTemporaryError(err error) bool {
- nerr, ok := err.(Error)
- return ok && nerr.Temporary()
-}
-
func (e *OpError) isValid() error {
if e.Op == "" {
return fmt.Errorf("OpError.Op is empty: %v", e)
@@ -467,7 +457,7 @@
if c != nil {
t.Errorf("Accept returned non-nil interface %T(%v) with err != nil", c, c)
}
- if !isTimeoutError(err) && !isTemporaryError(err) {
+ if nerr, ok := err.(Error); !ok || (!nerr.Timeout() && !nerr.Temporary()) {
return
}
continue
@@ -521,6 +511,10 @@
nestedErr = err.Err
goto third
}
+ switch nestedErr {
+ case errClosing:
+ return nil
+ }
return fmt.Errorf("unexpected type on 2nd nested level: %T", nestedErr)
third: