]> Cypherpunks repositories - gostls13.git/commitdiff
net: disable Windows netsh tests when netsh won't run
authorRuss Cox <rsc@golang.org>
Thu, 18 Feb 2021 16:47:47 +0000 (11:47 -0500)
committerRuss Cox <rsc@golang.org>
Fri, 19 Feb 2021 00:41:41 +0000 (00:41 +0000)
On my Surface Pro X running the insider preview,
running "netsh help" from Powershell started from the task bar works.
But running "powershell" at a cmd.exe prompt and then running
"netsh help" produces missing DLL errors.
These aren't our fault, so just skip the netsh-based tests if this happens.

Change-Id: I13a17e01143d823d3b5242d827db056bd253e3e9
Reviewed-on: https://go-review.googlesource.com/c/go/+/293849
Trust: Russ Cox <rsc@golang.org>
Reviewed-by: Cherry Zhang <cherryyz@google.com>
src/net/net_windows_test.go

index a0000950c6686161a3ffef5da1d225a07caa9de4..2a563a078c392b557001a2e757f782571dd2951e 100644 (file)
@@ -204,12 +204,17 @@ func runCmd(args ...string) ([]byte, error) {
        return removeUTF8BOM(out), nil
 }
 
-func netshSpeaksEnglish(t *testing.T) bool {
+func checkNetsh(t *testing.T) {
        out, err := runCmd("netsh", "help")
        if err != nil {
                t.Fatal(err)
        }
-       return bytes.Contains(out, []byte("The following commands are available:"))
+       if bytes.Contains(out, []byte("The following helper DLL cannot be loaded")) {
+               t.Skipf("powershell failure:\n%s", err)
+       }
+       if !bytes.Contains(out, []byte("The following commands are available:")) {
+               t.Skipf("powershell does not speak English:\n%s", out)
+       }
 }
 
 func netshInterfaceIPShowInterface(ipver string, ifaces map[string]bool) error {
@@ -256,9 +261,7 @@ func netshInterfaceIPShowInterface(ipver string, ifaces map[string]bool) error {
 }
 
 func TestInterfacesWithNetsh(t *testing.T) {
-       if !netshSpeaksEnglish(t) {
-               t.Skip("English version of netsh required for this test")
-       }
+       checkNetsh(t)
 
        toString := func(name string, isup bool) string {
                if isup {
@@ -427,9 +430,7 @@ func netshInterfaceIPv6ShowAddress(name string, netshOutput []byte) []string {
 }
 
 func TestInterfaceAddrsWithNetsh(t *testing.T) {
-       if !netshSpeaksEnglish(t) {
-               t.Skip("English version of netsh required for this test")
-       }
+       checkNetsh(t)
 
        outIPV4, err := runCmd("netsh", "interface", "ipv4", "show", "address")
        if err != nil {