10 func setUpUISFlagSet(uisp *[]uint) *FlagSet {
11 f := NewFlagSet("test", ContinueOnError)
12 f.UintSliceVar(uisp, "uis", []uint{}, "Command separated list!")
16 func setUpUISFlagSetWithDefault(uisp *[]uint) *FlagSet {
17 f := NewFlagSet("test", ContinueOnError)
18 f.UintSliceVar(uisp, "uis", []uint{0, 1}, "Command separated list!")
22 func TestEmptyUIS(t *testing.T) {
24 f := setUpUISFlagSet(&uis)
25 err := f.Parse([]string{})
27 t.Fatal("expected no error; got", err)
30 getUIS, err := f.GetUintSlice("uis")
32 t.Fatal("got an error from GetUintSlice():", err)
35 t.Fatalf("got is %v with len=%d but expected length=0", getUIS, len(getUIS))
39 func TestUIS(t *testing.T) {
41 f := setUpUISFlagSet(&uis)
43 vals := []string{"1", "2", "4", "3"}
44 arg := fmt.Sprintf("--uis=%s", strings.Join(vals, ","))
45 err := f.Parse([]string{arg})
47 t.Fatal("expected no error; got", err)
49 for i, v := range uis {
50 u, err := strconv.ParseUint(vals[i], 10, 0)
52 t.Fatalf("got error: %v", err)
55 t.Fatalf("expected uis[%d] to be %s but got %d", i, vals[i], v)
58 getUIS, err := f.GetUintSlice("uis")
60 t.Fatalf("got error: %v", err)
62 for i, v := range getUIS {
63 u, err := strconv.ParseUint(vals[i], 10, 0)
65 t.Fatalf("got error: %v", err)
68 t.Fatalf("expected uis[%d] to be %s but got: %d from GetUintSlice", i, vals[i], v)
73 func TestUISDefault(t *testing.T) {
75 f := setUpUISFlagSetWithDefault(&uis)
77 vals := []string{"0", "1"}
79 err := f.Parse([]string{})
81 t.Fatal("expected no error; got", err)
83 for i, v := range uis {
84 u, err := strconv.ParseUint(vals[i], 10, 0)
86 t.Fatalf("got error: %v", err)
89 t.Fatalf("expect uis[%d] to be %d but got: %d", i, u, v)
93 getUIS, err := f.GetUintSlice("uis")
95 t.Fatal("got an error from GetUintSlice():", err)
97 for i, v := range getUIS {
98 u, err := strconv.ParseUint(vals[i], 10, 0)
100 t.Fatal("got an error from GetIntSlice():", err)
103 t.Fatalf("expected uis[%d] to be %d from GetUintSlice but got: %d", i, u, v)
108 func TestUISWithDefault(t *testing.T) {
110 f := setUpUISFlagSetWithDefault(&uis)
112 vals := []string{"1", "2"}
113 arg := fmt.Sprintf("--uis=%s", strings.Join(vals, ","))
114 err := f.Parse([]string{arg})
116 t.Fatal("expected no error; got", err)
118 for i, v := range uis {
119 u, err := strconv.ParseUint(vals[i], 10, 0)
121 t.Fatalf("got error: %v", err)
124 t.Fatalf("expected uis[%d] to be %d from GetUintSlice but got: %d", i, u, v)
128 getUIS, err := f.GetUintSlice("uis")
130 t.Fatal("got an error from GetUintSlice():", err)
132 for i, v := range getUIS {
133 u, err := strconv.ParseUint(vals[i], 10, 0)
135 t.Fatalf("got error: %v", err)
138 t.Fatalf("expected uis[%d] to be %d from GetUintSlice but got: %d", i, u, v)
143 func TestUISCalledTwice(t *testing.T) {
145 f := setUpUISFlagSet(&uis)
147 in := []string{"1,2", "3"}
148 expected := []int{1, 2, 3}
150 arg1 := fmt.Sprintf(argfmt, in[0])
151 arg2 := fmt.Sprintf(argfmt, in[1])
152 err := f.Parse([]string{arg1, arg2})
154 t.Fatal("expected no error; got", err)
156 for i, v := range uis {
157 if uint(expected[i]) != v {
158 t.Fatalf("expected uis[%d] to be %d but got: %d", i, expected[i], v)