From dd56f4a2c65152975640d554bf47391bae2949eb Mon Sep 17 00:00:00 2001 From: lucus Date: Mon, 26 Dec 2016 04:59:00 +0900 Subject: [PATCH] Add test code for windows. --- ipv4_linux_test.go | 7 +++++++ ipv4_other_test.go | 2 +- ipv4_test.go | 7 ------- ipv4_windows_test.go | 28 ++++++++++++++++++++++++++++ 4 files changed, 36 insertions(+), 8 deletions(-) create mode 100644 ipv4_windows_test.go diff --git a/ipv4_linux_test.go b/ipv4_linux_test.go index b5b680c..54f6884 100644 --- a/ipv4_linux_test.go +++ b/ipv4_linux_test.go @@ -1,3 +1,4 @@ +// +build linux,darwin package water import ( @@ -6,6 +7,12 @@ import ( "testing" ) +func startBroadcast(t *testing.T, dst net.IP) { + if err := exec.Command("ping", "-b", "-c", "2", dst.String()).Start(); err != nil { + t.Fatal(err) + } +} + func setupIfce(t *testing.T, ipNet net.IPNet, dev string) { if err := exec.Command("ip", "link", "set", dev, "up").Run(); err != nil { t.Fatal(err) diff --git a/ipv4_other_test.go b/ipv4_other_test.go index d70a50f..7d2177f 100644 --- a/ipv4_other_test.go +++ b/ipv4_other_test.go @@ -1,4 +1,4 @@ -// +build !linux +// +build !linux,!windows package water diff --git a/ipv4_test.go b/ipv4_test.go index b0ff3db..3a675b2 100644 --- a/ipv4_test.go +++ b/ipv4_test.go @@ -2,7 +2,6 @@ package water import ( "net" - "os/exec" "testing" "time" @@ -24,12 +23,6 @@ func startRead(ch chan<- []byte, ifce *Interface) { }() } -func startBroadcast(t *testing.T, dst net.IP) { - if err := exec.Command("ping", "-b", "-c", "2", dst.String()).Start(); err != nil { - t.Fatal(err) - } -} - func TestBroadcast(t *testing.T) { var ( self = net.IPv4(10, 0, 42, 1) diff --git a/ipv4_windows_test.go b/ipv4_windows_test.go new file mode 100644 index 0000000..6a46e7c --- /dev/null +++ b/ipv4_windows_test.go @@ -0,0 +1,28 @@ +// +build windows +package water + +import ( + "fmt" + "net" + "os/exec" + "strings" + "testing" +) + +func startBroadcast(t *testing.T, dst net.IP) { + if err := exec.Command("ping", "-n", "2", dst.String()).Start(); err != nil { + t.Fatal(err) + } +} + +func setupIfce(t *testing.T, ipNet net.IPNet, dev string) { + sargs := fmt.Sprintf("interface ip set address name=REPLACE_ME source=static addr=REPLACE_ME mask=REPLACE_ME gateway=none") + args := strings.Split(sargs, " ") + args[4] = fmt.Sprintf("name=%s", dev) + args[6] = fmt.Sprintf("addr=%s", ipNet.IP) + args[7] = fmt.Sprintf("mask=%d.%d.%d.%d", ipNet.Mask[0], ipNet.Mask[1], ipNet.Mask[2], ipNet.Mask[3]) + cmd := exec.Command("netsh", args...) + if err := cmd.Run(); err != nil { + t.Fatal(err) + } +}