| 278 | } |
| 279 | |
| 280 | func TestParseFormatFlag(t *testing.T) { |
| 281 | tests := []struct { |
| 282 | name string |
| 283 | give []string |
| 284 | want format |
| 285 | }{ |
| 286 | { |
| 287 | name: "default", |
| 288 | want: formatAuto, |
| 289 | }, |
| 290 | { |
| 291 | name: "auto explicit", |
| 292 | give: []string{"-format=auto"}, |
| 293 | want: formatAuto, |
| 294 | }, |
| 295 | { |
| 296 | name: "always", |
| 297 | give: []string{"-format=always"}, |
| 298 | want: formatAlways, |
| 299 | }, |
| 300 | { |
| 301 | name: "always explicit", |
| 302 | give: []string{"-format"}, |
| 303 | want: formatAlways, |
| 304 | }, |
| 305 | { |
| 306 | name: "never", |
| 307 | give: []string{"-format=never"}, |
| 308 | want: formatNever, |
| 309 | }, |
| 310 | } |
| 311 | |
| 312 | for _, tt := range tests { |
| 313 | t.Run(tt.name, func(t *testing.T) { |
| 314 | flag := flag.NewFlagSet(t.Name(), flag.ContinueOnError) |
| 315 | flag.SetOutput(testWriter{t}) |
| 316 | |
| 317 | var got format |
| 318 | flag.Var(&got, "format", "") |
| 319 | if err := flag.Parse(tt.give); err != nil { |
| 320 | t.Fatal(err) |
| 321 | } |
| 322 | |
| 323 | if want, got := tt.want, got; got != want { |
| 324 | t.Errorf("got %v, want %v", got, want) |
| 325 | } |
| 326 | }) |
| 327 | } |
| 328 | } |
| 329 | |
| 330 | func TestFormatFlagError(t *testing.T) { |
| 331 | var stderr bytes.Buffer |