mirror of
https://github.com/golang/go
synced 2024-10-03 20:11:22 -06:00
ed7c3f3127
R=r CC=golang-dev https://golang.org/cl/3071041
33 lines
978 B
Go
33 lines
978 B
Go
// Copyright 2010 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 flag
|
|
|
|
import "os"
|
|
|
|
// Additional routines compiled into the package only during testing.
|
|
|
|
// ResetForTesting clears all flag state and sets the usage function as directed.
|
|
// After calling ResetForTesting, parse errors in flag handling will panic rather
|
|
// than exit the program.
|
|
func ResetForTesting(usage func()) {
|
|
flags = &allFlags{make(map[string]*Flag), make(map[string]*Flag), os.Args[1:]}
|
|
Usage = usage
|
|
panicOnError = true
|
|
}
|
|
|
|
// ParseForTesting parses the flag state using the provided arguments. It
|
|
// should be called after 1) ResetForTesting and 2) setting up the new flags.
|
|
// The return value reports whether the parse was error-free.
|
|
func ParseForTesting(args []string) (result bool) {
|
|
defer func() {
|
|
if recover() != nil {
|
|
result = false
|
|
}
|
|
}()
|
|
os.Args = args
|
|
Parse()
|
|
return true
|
|
}
|