aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--flag_test.go41
-rw-r--r--ip.go3
-rw-r--r--ipmask.go3
-rw-r--r--uint16.go4
-rw-r--r--uint32.go3
5 files changed, 41 insertions, 13 deletions
diff --git a/flag_test.go b/flag_test.go
index 765dfe0..d3c1714 100644
--- a/flag_test.go
+++ b/flag_test.go
@@ -9,6 +9,7 @@ import (
"fmt"
"io"
"io/ioutil"
+ "net"
"os"
"sort"
"strings"
@@ -114,11 +115,19 @@ func testParse(f *FlagSet, t *testing.T) {
bool2Flag := f.Bool("bool2", false, "bool2 value")
bool3Flag := f.Bool("bool3", false, "bool3 value")
intFlag := f.Int("int", 0, "int value")
+ int8Flag := f.Int8("int8", 0, "int value")
+ int32Flag := f.Int32("int32", 0, "int value")
int64Flag := f.Int64("int64", 0, "int64 value")
uintFlag := f.Uint("uint", 0, "uint value")
+ uint8Flag := f.Uint8("uint8", 0, "uint value")
+ uint16Flag := f.Uint16("uint16", 0, "uint value")
+ uint32Flag := f.Uint32("uint32", 0, "uint value")
uint64Flag := f.Uint64("uint64", 0, "uint64 value")
stringFlag := f.String("string", "0", "string value")
+ float32Flag := f.Float32("float32", 0, "float32 value")
float64Flag := f.Float64("float64", 0, "float64 value")
+ ipFlag := f.IP("ip", net.ParseIP("127.0.0.1"), "ip value")
+ maskFlag := f.IPMask("mask", ParseIPv4Mask("0.0.0.0"), "mask value")
durationFlag := f.Duration("duration", 5*time.Second, "time.Duration value")
extra := "one-extra-argument"
args := []string{
@@ -126,11 +135,19 @@ func testParse(f *FlagSet, t *testing.T) {
"--bool2=true",
"--bool3=false",
"--int=22",
+ "--int8=-8",
+ "--int32=-32",
"--int64=0x23",
"--uint=24",
+ "--uint8=8",
+ "--uint16=16",
+ "--uint32=32",
"--uint64=25",
"--string=hello",
+ "--float32=-172e12",
"--float64=2718e28",
+ "--ip=10.11.12.13",
+ "--mask=255.255.255.0",
"--duration=2m",
extra,
}
@@ -152,21 +169,45 @@ func testParse(f *FlagSet, t *testing.T) {
if *intFlag != 22 {
t.Error("int flag should be 22, is ", *intFlag)
}
+ if *int8Flag != -8 {
+ t.Error("int8 flag should be 0x23, is ", *int8Flag)
+ }
+ if *int32Flag != -32 {
+ t.Error("int32 flag should be 0x23, is ", *int32Flag)
+ }
if *int64Flag != 0x23 {
t.Error("int64 flag should be 0x23, is ", *int64Flag)
}
if *uintFlag != 24 {
t.Error("uint flag should be 24, is ", *uintFlag)
}
+ if *uint8Flag != 8 {
+ t.Error("uint8 flag should be 8, is ", *uint8Flag)
+ }
+ if *uint16Flag != 16 {
+ t.Error("uint16 flag should be 16, is ", *uint16Flag)
+ }
+ if *uint32Flag != 32 {
+ t.Error("uint32 flag should be 32, is ", *uint32Flag)
+ }
if *uint64Flag != 25 {
t.Error("uint64 flag should be 25, is ", *uint64Flag)
}
if *stringFlag != "hello" {
t.Error("string flag should be `hello`, is ", *stringFlag)
}
+ if *float32Flag != -172e12 {
+ t.Error("float64 flag should be -172e12, is ", *float64Flag)
+ }
if *float64Flag != 2718e28 {
t.Error("float64 flag should be 2718e28, is ", *float64Flag)
}
+ if (*maskFlag).String() != ParseIPv4Mask("255.255.255.0").String() {
+ t.Error("mask flag should be 255.255.255.0, is ", (*maskFlag).String())
+ }
+ if !(*ipFlag).Equal(net.ParseIP("10.11.12.13")) {
+ t.Error("ip flag should be 10.11.12.13, is ", *ipFlag)
+ }
if *durationFlag != 2*time.Minute {
t.Error("duration flag should be 2m, is ", *durationFlag)
}
diff --git a/ip.go b/ip.go
index 9d53bd3..efa75fb 100644
--- a/ip.go
+++ b/ip.go
@@ -22,9 +22,6 @@ func (i *ipValue) Set(s string) error {
*i = ipValue(ip)
return nil
}
-func (i *ipValue) Get() interface{} {
- return net.IP(*i)
-}
func (i *ipValue) Type() string {
return "ip"
diff --git a/ipmask.go b/ipmask.go
index 6f85be9..09b9533 100644
--- a/ipmask.go
+++ b/ipmask.go
@@ -22,9 +22,6 @@ func (i *ipMaskValue) Set(s string) error {
*i = ipMaskValue(ip)
return nil
}
-func (i *ipMaskValue) Get() interface{} {
- return net.IPMask(*i)
-}
func (i *ipMaskValue) Type() string {
return "ipMask"
diff --git a/uint16.go b/uint16.go
index ec14ab0..ab1c1f9 100644
--- a/uint16.go
+++ b/uint16.go
@@ -19,10 +19,6 @@ func (i *uint16Value) Set(s string) error {
return err
}
-func (i *uint16Value) Get() interface{} {
- return uint16(*i)
-}
-
func (i *uint16Value) Type() string {
return "uint16"
}
diff --git a/uint32.go b/uint32.go
index 05bc3bd..db635ae 100644
--- a/uint32.go
+++ b/uint32.go
@@ -18,9 +18,6 @@ func (i *uint32Value) Set(s string) error {
*i = uint32Value(v)
return err
}
-func (i *uint32Value) Get() interface{} {
- return uint32(*i)
-}
func (i *uint32Value) Type() string {
return "uint32"