package flag
-import "os"
+import (
+ "io"
+ "os"
+)
// Additional routines compiled into the package only during testing.
// exit the program.
func ResetForTesting(usage func()) {
CommandLine = NewFlagSet(os.Args[0], ContinueOnError)
+ CommandLine.SetOutput(io.Discard)
CommandLine.Usage = commandLineUsage
Usage = usage
}
func TestUserDefined(t *testing.T) {
var flags FlagSet
flags.Init("test", ContinueOnError)
+ flags.SetOutput(io.Discard)
var v flagVar
flags.Var(&v, "v", "usage")
if err := flags.Parse([]string{"-v", "1", "-v", "2", "-v=3"}); err != nil {
}
func TestUserDefinedFunc(t *testing.T) {
- var flags FlagSet
- flags.Init("test", ContinueOnError)
+ flags := NewFlagSet("test", ContinueOnError)
+ flags.SetOutput(io.Discard)
var ss []string
flags.Func("v", "usage", func(s string) error {
ss = append(ss, s)
t.Errorf("usage string not included: %q", usage)
}
// test Func error
- flags = *NewFlagSet("test", ContinueOnError)
+ flags = NewFlagSet("test", ContinueOnError)
+ flags.SetOutput(io.Discard)
flags.Func("v", "usage", func(s string) error {
return fmt.Errorf("test error")
})
func TestUserDefinedBool(t *testing.T) {
var flags FlagSet
flags.Init("test", ContinueOnError)
+ flags.SetOutput(io.Discard)
var b boolFlagVar
var err error
flags.Var(&b, "b", "usage")