(t *testing.T)
| 123 | } |
| 124 | |
| 125 | func (s) TestStringSlice(t *testing.T) { |
| 126 | defaultVal := []string{"bar", "baz"} |
| 127 | tests := []struct { |
| 128 | args string |
| 129 | wantVal []string |
| 130 | wantErr bool |
| 131 | }{ |
| 132 | {"-name=foobar", []string{"foobar"}, false}, |
| 133 | {"-name=foo,bar", []string{"foo", "bar"}, false}, |
| 134 | {`-name="foo,bar",baz`, []string{"foo,bar", "baz"}, false}, |
| 135 | {`-name="foo,bar""",baz`, []string{`foo,bar"`, "baz"}, false}, |
| 136 | } |
| 137 | |
| 138 | for _, test := range tests { |
| 139 | flag.CommandLine = flag.NewFlagSet("test", flag.ContinueOnError) |
| 140 | var w = StringSlice("name", defaultVal, "usage") |
| 141 | err := flag.CommandLine.Parse([]string{test.args}) |
| 142 | switch { |
| 143 | case !test.wantErr && err != nil: |
| 144 | t.Errorf("failed to parse command line args {%v}: %v", test.args, err) |
| 145 | case test.wantErr && err == nil: |
| 146 | t.Errorf("flag.Parse(%v) = nil, want non-nil error", test.args) |
| 147 | default: |
| 148 | if !reflect.DeepEqual(*w, test.wantVal) { |
| 149 | t.Errorf("flag value is %v, want %v", *w, test.wantVal) |
| 150 | } |
| 151 | } |
| 152 | } |
| 153 | } |
nothing calls this directly
no test coverage detected