net: deflake TestDialTimeout{,FDLeak} in the case of TCP simultaneous open
Fixes #11872.
Change-Id: Ibc7d8438374c9d90fd4cbefb61426c7f4f96af0d
Reviewed-on: https://go-review.googlesource.com/12691
Reviewed-by: Russ Cox <rsc@golang.org>
diff --git a/src/net/timeout_test.go b/src/net/timeout_test.go
index 9688c21..ca94e24 100644
--- a/src/net/timeout_test.go
+++ b/src/net/timeout_test.go
@@ -37,6 +37,19 @@
defer func() { testHookDialChannel = origTestHookDialChannel }()
defer sw.Set(socktest.FilterConnect, nil)
+ // Avoid tracking open-close jitterbugs between netFD and
+ // socket that leads to confusion of information inside
+ // socktest.Switch.
+ // It may happen when the Dial call bumps against TCP
+ // simultaneous open. See selfConnect in tcpsock_posix.go.
+ defer func() {
+ sw.Set(socktest.FilterClose, nil)
+ forceCloseSockets()
+ }()
+ sw.Set(socktest.FilterClose, func(so *socktest.Status) (socktest.AfterFilter, error) {
+ return nil, errTimedout
+ })
+
for i, tt := range dialTimeoutTests {
switch runtime.GOOS {
case "plan9", "windows":