@@ -2888,6 +2888,16 @@ func TestFlagAction(t *testing.T) {
28882888 return err
28892889 },
28902890 },
2891+ & UintSliceFlag {
2892+ Name : "f_uint_slice" ,
2893+ Action : func (c * Context , v []uint ) error {
2894+ if len (v ) > 0 && v [0 ] == 0 {
2895+ return fmt .Errorf ("invalid uint slice" )
2896+ }
2897+ _ , err := c .App .Writer .Write ([]byte (fmt .Sprintf ("%v " , v )))
2898+ return err
2899+ },
2900+ },
28912901 & Uint64Flag {
28922902 Name : "f_uint64" ,
28932903 Action : func (c * Context , v uint64 ) error {
@@ -2898,6 +2908,16 @@ func TestFlagAction(t *testing.T) {
28982908 return err
28992909 },
29002910 },
2911+ & Uint64SliceFlag {
2912+ Name : "f_uint64_slice" ,
2913+ Action : func (c * Context , v []uint64 ) error {
2914+ if len (v ) > 0 && v [0 ] == 0 {
2915+ return fmt .Errorf ("invalid uint64 slice" )
2916+ }
2917+ _ , err := c .App .Writer .Write ([]byte (fmt .Sprintf ("%v " , v )))
2918+ return err
2919+ },
2920+ },
29012921 },
29022922 Action : func (ctx * Context ) error { return nil },
29032923 }
@@ -3048,11 +3068,31 @@ func TestFlagAction(t *testing.T) {
30483068 args : []string {"app" , "--f_uint=0" },
30493069 err : fmt .Errorf ("zero uint" ),
30503070 },
3071+ {
3072+ name : "flag_uint_slice" ,
3073+ args : []string {"app" , "--f_uint_slice=1,2,3" },
3074+ exp : "[1 2 3] " ,
3075+ },
3076+ {
3077+ name : "flag_uint_slice" ,
3078+ args : []string {"app" , "--f_uint_slice=0" },
3079+ err : fmt .Errorf ("invalid uint slice" ),
3080+ },
30513081 {
30523082 name : "flag_uint64" ,
30533083 args : []string {"app" , "--f_uint64=1" },
30543084 exp : "1 " ,
30553085 },
3086+ {
3087+ name : "flag_uint64_slice" ,
3088+ args : []string {"app" , "--f_uint64_slice=1,2,3" },
3089+ exp : "[1 2 3] " ,
3090+ },
3091+ {
3092+ name : "flag_uint64_slice" ,
3093+ args : []string {"app" , "--f_uint64_slice=0" },
3094+ err : fmt .Errorf ("invalid uint64 slice" ),
3095+ },
30563096 {
30573097 name : "flag_uint64_error" ,
30583098 args : []string {"app" , "--f_uint64=0" },
0 commit comments