net: replace server tests

This change replaces server tests with new ones that require features
introduced after go1 release, such as runtime-integrated network poller,
Dialer, etc.

Change-Id: Icf1f94f08f33caacd499cfccbe74cda8d05eed30
Reviewed-on: https://go-review.googlesource.com/9195
Reviewed-by: Ian Lance Taylor <iant@golang.org>
diff --git a/src/net/timeout_test.go b/src/net/timeout_test.go
index 3ef22fa..c9a826e 100644
--- a/src/net/timeout_test.go
+++ b/src/net/timeout_test.go
@@ -307,15 +307,14 @@
 		t.Skipf("skipping test on %q", runtime.GOOS)
 	}
 
-	// set up a listener that won't talk back
-	listening := make(chan string)
-	done := make(chan int)
-	go runDatagramPacketConnServer(t, "udp", "127.0.0.1:0", listening, done)
-	addr := <-listening
+	c, err := newLocalPacketListener("udp") // a listener that won't talk back
+	if err != nil {
+		t.Fatal(err)
+	}
 
-	testTimeout(t, "udp", addr, false)
-	testTimeout(t, "udp", addr, true)
-	<-done
+	testTimeout(t, "udp", c.LocalAddr().String(), false)
+	testTimeout(t, "udp", c.LocalAddr().String(), true)
+	c.Close()
 }
 
 func TestTimeoutTCP(t *testing.T) {
@@ -324,14 +323,25 @@
 		t.Skipf("skipping test on %q", runtime.GOOS)
 	}
 
-	// set up a listener that won't talk back
-	listening := make(chan string)
-	done := make(chan int)
-	go runStreamConnServer(t, "tcp", "127.0.0.1:0", listening, done)
-	addr := <-listening
+	handler := func(ls *localServer, ln Listener) { // a listener that won't talk back
+		for {
+			c, err := ln.Accept()
+			if err != nil {
+				break
+			}
+			defer c.Close()
+		}
+	}
+	ls, err := newLocalServer("tcp")
+	if err != nil {
+		t.Fatal(err)
+	}
+	defer ls.teardown()
+	if err := ls.buildup(handler); err != nil {
+		t.Fatal(err)
+	}
 
-	testTimeout(t, "tcp", addr, false)
-	<-done
+	testTimeout(t, "tcp", ls.Listener.Addr().String(), false)
 }
 
 func TestDeadlineReset(t *testing.T) {