Commit bf44c4c8 authored by Brad Fitzpatrick's avatar Brad Fitzpatrick

crypto/tls: test for timeout error using the net.Error interface

Don't do a substring search to test for a timeout error.

Fixes #14722 (maybe)

Change-Id: I4e18c749d6fd92c084a1b0b83a805119e1ae5ff2
Reviewed-on: https://go-review.googlesource.com/20403
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
Reviewed-by: default avatarKeith Randall <khr@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
parent fb2f99d5
...@@ -188,11 +188,18 @@ func TestDialTimeout(t *testing.T) { ...@@ -188,11 +188,18 @@ func TestDialTimeout(t *testing.T) {
t.Fatal("DialWithTimeout completed successfully") t.Fatal("DialWithTimeout completed successfully")
} }
if !strings.Contains(err.Error(), "timed out") { if !isTimeoutError(err) {
t.Errorf("resulting error not a timeout: %s", err) t.Errorf("resulting error not a timeout: %v\nType %T: %#v", err, err, err)
} }
} }
func isTimeoutError(err error) bool {
if ne, ok := err.(net.Error); ok {
return ne.Timeout()
}
return false
}
// tests that Conn.Read returns (non-zero, io.EOF) instead of // tests that Conn.Read returns (non-zero, io.EOF) instead of
// (non-zero, nil) when a Close (alertCloseNotify) is sitting right // (non-zero, nil) when a Close (alertCloseNotify) is sitting right
// behind the application data in the buffer. // behind the application data in the buffer.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment