| // Copyright 2009 The Go Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| package pflag |
| |
| import ( |
| goflag "flag" |
| "testing" |
| ) |
| |
| func TestGoflags(t *testing.T) { |
| goflag.String("stringFlag", "stringFlag", "stringFlag") |
| goflag.Bool("boolFlag", false, "boolFlag") |
| |
| f := NewFlagSet("test", ContinueOnError) |
| |
| f.AddGoFlagSet(goflag.CommandLine) |
| err := f.Parse([]string{"--stringFlag=bob", "--boolFlag"}) |
| if err != nil { |
| t.Fatal("expected no error; get", err) |
| } |
| |
| getString, err := f.GetString("stringFlag") |
| if err != nil { |
| t.Fatal("expected no error; get", err) |
| } |
| if getString != "bob" { |
| t.Fatalf("expected getString=bob but got getString=%s", getString) |
| } |
| |
| getBool, err := f.GetBool("boolFlag") |
| if err != nil { |
| t.Fatal("expected no error; get", err) |
| } |
| if getBool != true { |
| t.Fatalf("expected getBool=true but got getBool=%v", getBool) |
| } |
| if !f.Parsed() { |
| t.Fatal("f.Parsed() return false after f.Parse() called") |
| } |
| |
| // in fact it is useless. because `go test` called flag.Parse() |
| if !goflag.CommandLine.Parsed() { |
| t.Fatal("goflag.CommandLine.Parsed() return false after f.Parse() called") |
| } |
| } |