blob: 0933ebb814f5debeac860d13b658496bdb9228d8 [file] [edit]
package pflag
import (
"net"
"reflect"
"testing"
)
func TestParseIPv4Mask(t *testing.T) {
for _, input := range []string{"255.255.255.0", "ffffff00", "::ffff:255.255.255.0"} {
if got := ParseIPv4Mask(input); !reflect.DeepEqual(got, net.IPv4Mask(255, 255, 255, 0)) {
t.Errorf("ParseIPv4Mask(%q) = %v, want ffffff00", input, got)
}
}
for _, input := range []string{"::", "2001:db8::1"} {
if got := ParseIPv4Mask(input); got != nil {
t.Errorf("ParseIPv4Mask(%q) = %v, want nil", input, got)
}
}
}
func TestIPMaskRejectsIPv6(t *testing.T) {
f := NewFlagSet("test", ContinueOnError)
mask := f.IPMask("mask", net.IPv4Mask(255, 255, 255, 0), "IPv4 mask")
if err := f.Set("mask", "2001:db8::1"); err == nil {
t.Fatal("expected an error for an IPv6 mask")
}
if !reflect.DeepEqual(*mask, net.IPv4Mask(255, 255, 255, 0)) {
t.Fatalf("invalid input changed the mask to %v", *mask)
}
}