]> Cypherpunks repositories - gostls13.git/commitdiff
net: ignore network failures on some builders
authorBrad Fitzpatrick <bradfitz@golang.org>
Fri, 6 May 2016 16:24:57 +0000 (16:24 +0000)
committerBrad Fitzpatrick <bradfitz@golang.org>
Fri, 6 May 2016 17:24:09 +0000 (17:24 +0000)
We run the external network tests on builders, but some of our
builders have less-than-ideal DNS connectivity. This change continues
to run the tests on all builders, but marks certain builders as flaky
(network-wise), and only validates their DNS results if they got DNS
results.

Change-Id: I826dc2a6f6da55add89ae9c6db892b3b2f7b526b
Reviewed-on: https://go-review.googlesource.com/22852
Reviewed-by: Ian Lance Taylor <iant@golang.org>
src/internal/testenv/testenv.go
src/net/lookup_test.go

index 9e684e3034388ebc002f970a24dadf2adaa34175..f134f6b04a185f2f8a8844e652da9ec56f4e5e3f 100644 (file)
@@ -16,6 +16,7 @@ import (
        "os/exec"
        "path/filepath"
        "runtime"
+       "strconv"
        "strings"
        "testing"
 )
@@ -133,3 +134,9 @@ func SkipFlaky(t *testing.T, issue int) {
                t.Skipf("skipping known flaky test without the -flaky flag; see golang.org/issue/%d", issue)
        }
 }
+
+func SkipFlakyNet(t *testing.T) {
+       if v, _ := strconv.ParseBool(os.Getenv("GO_BUILDER_FLAKY_NET")); v {
+               t.Skip("skipping test on builder known to have frequent network failures")
+       }
+}
index 6e54fdba76d902a1cf09511ba22eebd842d1c48b..fb3cf18d3bd972c3ce8e4a12569be7f8d18cf50a 100644 (file)
@@ -498,6 +498,7 @@ func TestLookupDotsWithRemoteSource(t *testing.T) {
 func testDots(t *testing.T, mode string) {
        names, err := LookupAddr("8.8.8.8") // Google dns server
        if err != nil {
+               testenv.SkipFlakyNet(t)
                t.Errorf("LookupAddr(8.8.8.8): %v (mode=%v)", err, mode)
        } else {
                for _, name := range names {
@@ -509,12 +510,16 @@ func testDots(t *testing.T, mode string) {
        }
 
        cname, err := LookupCNAME("www.mit.edu")
-       if err != nil || !strings.HasSuffix(cname, ".") {
-               t.Errorf("LookupCNAME(www.mit.edu) = %v, %v, want cname ending in . with trailing dot (mode=%v)", cname, err, mode)
+       if err != nil {
+               testenv.SkipFlakyNet(t)
+               t.Errorf("LookupCNAME(www.mit.edu, mode=%v): %v", mode, err)
+       } else if !strings.HasSuffix(cname, ".") {
+               t.Errorf("LookupCNAME(www.mit.edu) = %v, want cname ending in . with trailing dot (mode=%v)", cname, mode)
        }
 
        mxs, err := LookupMX("google.com")
        if err != nil {
+               testenv.SkipFlakyNet(t)
                t.Errorf("LookupMX(google.com): %v (mode=%v)", err, mode)
        } else {
                for _, mx := range mxs {
@@ -527,6 +532,7 @@ func testDots(t *testing.T, mode string) {
 
        nss, err := LookupNS("google.com")
        if err != nil {
+               testenv.SkipFlakyNet(t)
                t.Errorf("LookupNS(google.com): %v (mode=%v)", err, mode)
        } else {
                for _, ns := range nss {
@@ -539,6 +545,7 @@ func testDots(t *testing.T, mode string) {
 
        cname, srvs, err := LookupSRV("xmpp-server", "tcp", "google.com")
        if err != nil {
+               testenv.SkipFlakyNet(t)
                t.Errorf("LookupSRV(xmpp-server, tcp, google.com): %v (mode=%v)", err, mode)
        } else {
                if !strings.HasSuffix(cname, ".google.com.") {