Skip to content

Commit

Permalink
net: skip Windows test using getmac if getmac cmdlet not available
Browse files Browse the repository at this point in the history
This doesn't appear to be present on Windows Server 2012 or 2016:

https://build.golang.org/log/6ea21b99c9b8a2be20f9aeaec6c425b84faf1af7
https://build.golang.org/log/2bcf04f1df003577352f4f987a39a59a081094ee

Updates #17513
Updates #20073

Change-Id: I72820704b4cb16bb1720b7f6a9f2e10028c71334
Reviewed-on: https://go-review.googlesource.com/41395
Reviewed-by: Alex Brainman <alex.brainman@gmail.com>
  • Loading branch information
bradfitz committed Apr 21, 2017
1 parent f9be63b commit 4da8051
Showing 1 changed file with 10 additions and 5 deletions.
15 changes: 10 additions & 5 deletions src/net/net_windows_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -503,21 +503,26 @@ func TestInterfaceAddrsWithNetsh(t *testing.T) {
}
}

func getmacSpeaksEnglish(t *testing.T) bool {
// check that getmac exists as a powershell command, and that it
// speaks English.
func checkGetmac(t *testing.T) {
out, err := runCmd("getmac", "/?")
if err != nil {
if strings.Contains(err.Error(), "term 'getmac' is not recognized as the name of a cmdlet") {
t.Skipf("getmac not available")
}
t.Fatal(err)
}
return bytes.Contains(out, []byte("network adapters on a system"))
if !bytes.Contains(out, []byte("network adapters on a system")) {
t.Skipf("skipping test on non-English system")
}
}

func TestInterfaceHardwareAddrWithGetmac(t *testing.T) {
if isWindowsXP(t) {
t.Skip("Windows XP does not have powershell command")
}
if !getmacSpeaksEnglish(t) {
t.Skip("English version of getmac required for this test")
}
checkGetmac(t)

ift, err := Interfaces()
if err != nil {
Expand Down

0 comments on commit 4da8051

Please sign in to comment.