Patchwork libgo patch committed: Update net tests

login
register
mail settings
Submitter Ian Taylor
Date Jan. 26, 2011, 7:51 p.m.
Message ID <mcrpqrjv3y6.fsf@google.com>
Download mbox | patch
Permalink /patch/80547/
State New
Headers show

Comments

Ian Taylor - Jan. 26, 2011, 7:51 p.m.
This patch, copied from the master Go library sources, updates a couple
of net tests to reduce the chance of failure.  Bootstrapped and ran Go
testsuite on x86_64-unknown-linux-gnu.  Committed to mainline.

Ian

Patch

diff -r fb434e4feaee libgo/go/net/dialgoogle_test.go
--- a/libgo/go/net/dialgoogle_test.go	Wed Jan 26 11:46:54 2011 -0800
+++ b/libgo/go/net/dialgoogle_test.go	Wed Jan 26 11:48:56 2011 -0800
@@ -6,12 +6,14 @@ 
 
 import (
 	"flag"
+	"fmt"
 	"io"
+	"strings"
 	"syscall"
 	"testing"
 )
 
-// If an IPv6 tunnel is running (see go/stubl), we can try dialing a real IPv6 address.
+// If an IPv6 tunnel is running, we can try dialing a real IPv6 address.
 var ipv6 = flag.Bool("ipv6", false, "assume ipv6 tunnel is present")
 
 // fd is already connected to the destination, port 80.
@@ -40,16 +42,16 @@ 
 }
 
 var googleaddrs = []string{
-	"74.125.19.99:80",
+	"%d.%d.%d.%d:80",
 	"www.google.com:80",
-	"74.125.19.99:http",
+	"%d.%d.%d.%d:http",
 	"www.google.com:http",
-	"074.125.019.099:0080",
-	"[::ffff:74.125.19.99]:80",
-	"[::ffff:4a7d:1363]:80",
-	"[0:0:0:0:0000:ffff:74.125.19.99]:80",
-	"[0:0:0:0:000000:ffff:74.125.19.99]:80",
-	"[0:0:0:0:0:ffff::74.125.19.99]:80",
+	"%03d.%03d.%03d.%03d:0080",
+	"[::ffff:%d.%d.%d.%d]:80",
+	"[::ffff:%02x%02x:%02x%02x]:80",
+	"[0:0:0:0:0000:ffff:%d.%d.%d.%d]:80",
+	"[0:0:0:0:000000:ffff:%d.%d.%d.%d]:80",
+	"[0:0:0:0:0:ffff::%d.%d.%d.%d]:80",
 	"[2001:4860:0:2001::68]:80", // ipv6.google.com; removed if ipv6 flag not set
 }
 
@@ -59,6 +61,24 @@ 
 		googleaddrs[len(googleaddrs)-1] = ""
 	}
 
+	// Insert an actual IP address for google.com
+	// into the table.
+
+	_, addrs, err := LookupHost("www.google.com")
+	if err != nil {
+		t.Fatalf("lookup www.google.com: %v", err)
+	}
+	if len(addrs) == 0 {
+		t.Fatalf("no addresses for www.google.com")
+	}
+	ip := ParseIP(addrs[0]).To4()
+
+	for i, s := range googleaddrs {
+		if strings.Contains(s, "%") {
+			googleaddrs[i] = fmt.Sprintf(s, ip[0], ip[1], ip[2], ip[3])
+		}
+	}
+
 	for i := 0; i < len(googleaddrs); i++ {
 		addr := googleaddrs[i]
 		if addr == "" {
diff -r fb434e4feaee libgo/go/net/timeout_test.go
--- a/libgo/go/net/timeout_test.go	Wed Jan 26 11:46:54 2011 -0800
+++ b/libgo/go/net/timeout_test.go	Wed Jan 26 11:48:56 2011 -0800
@@ -46,8 +46,12 @@ 
 }
 
 func TestTimeoutTCP(t *testing.T) {
-	// 74.125.19.99 is www.google.com.
-	// could use dns, but dns depends on
-	// timeouts and this is the timeout test.
-	testTimeout(t, "tcp", "74.125.19.99:80", false)
+	// set up a listener that won't talk back
+	listening := make(chan string)
+	done := make(chan int)
+	go runServe(t, "tcp", "127.0.0.1:0", listening, done)
+	addr := <-listening
+
+	testTimeout(t, "tcp", addr, false)
+	<-done
 }