net: Set finalDeadline from TestDialParallel to avoid leaked sockets.

I've also changed TestDialSerialAsyncSpuriousConnection for consistency,
although it always computes a finalDeadline of zero.

Note that #11225 is the root cause of the socket leak; this just hides
it from the unit test by restoring the shorter timeout.

Fixes #11878

Change-Id: Ie0037dd3bce6cc81d196765375489f8c61be74c2
Reviewed-on: https://go-review.googlesource.com/12712
Reviewed-by: Russ Cox <rsc@golang.org>
Run-TryBot: Paul Marks <pmarks@google.com>
diff --git a/src/net/dial_test.go b/src/net/dial_test.go
index aa916d4..669fcc8 100644
--- a/src/net/dial_test.go
+++ b/src/net/dial_test.go
@@ -386,13 +386,15 @@
 
 		primaries := makeAddrs(tt.primaries, dss.port)
 		fallbacks := makeAddrs(tt.fallbacks, dss.port)
+		d := Dialer{
+			FallbackDelay: fallbackDelay,
+			Timeout:       slowTimeout,
+		}
 		ctx := &dialContext{
-			Dialer: Dialer{
-				FallbackDelay: fallbackDelay,
-				Timeout:       slowTimeout,
-			},
-			network: "tcp",
-			address: "?",
+			Dialer:        d,
+			network:       "tcp",
+			address:       "?",
+			finalDeadline: d.deadline(time.Now()),
 		}
 		startTime := time.Now()
 		c, err := dialParallel(ctx, primaries, fallbacks)
@@ -513,9 +515,12 @@
 	}
 	defer ln.Close()
 
+	d := Dialer{}
 	ctx := &dialContext{
-		network: "tcp",
-		address: "?",
+		Dialer:        d,
+		network:       "tcp",
+		address:       "?",
+		finalDeadline: d.deadline(time.Now()),
 	}
 
 	results := make(chan dialResult)