You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
1.2 KiB
64 lines
1.2 KiB
2 years ago
|
package argh_test
|
||
|
|
||
|
import (
|
||
|
"flag"
|
||
|
"fmt"
|
||
|
"testing"
|
||
|
"time"
|
||
|
|
||
|
"git.meatballhat.com/x/argh"
|
||
|
)
|
||
|
|
||
|
func BenchmarkStdlibFlag(b *testing.B) {
|
||
|
for i := 0; i < b.N; i++ {
|
||
|
func() {
|
||
|
fl := flag.NewFlagSet("bench", flag.PanicOnError)
|
||
|
okFlag := fl.Bool("ok", false, "")
|
||
|
durFlag := fl.Duration("dur", time.Second, "")
|
||
|
f64Flag := fl.Float64("f64", float64(42.0), "")
|
||
|
iFlag := fl.Int("i", -11, "")
|
||
|
i64Flag := fl.Int64("i64", -111111111111, "")
|
||
|
sFlag := fl.String("s", "hello", "")
|
||
|
uFlag := fl.Uint("u", 11, "")
|
||
|
u64Flag := fl.Uint64("u64", 11111111111111111111, "")
|
||
|
|
||
|
_ = fl.Parse([]string{})
|
||
|
_ = fmt.Sprint(
|
||
|
"fl", fl,
|
||
|
"okFlag", *okFlag,
|
||
|
"durFlag", *durFlag,
|
||
|
"f64Flag", *f64Flag,
|
||
|
"iFlag", *iFlag,
|
||
|
"i64Flag", *i64Flag,
|
||
|
"sFlag", *sFlag,
|
||
|
"uFlag", *uFlag,
|
||
|
"u64Flag", *u64Flag,
|
||
|
)
|
||
|
}()
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func BenchmarkArgh(b *testing.B) {
|
||
|
for i := 0; i < b.N; i++ {
|
||
|
func() {
|
||
|
pCfg := argh.NewParserConfig()
|
||
|
pCfg.Prog = &argh.CommandConfig{
|
||
|
Flags: &argh.Flags{
|
||
|
Map: map[string]argh.FlagConfig{
|
||
|
"ok": {},
|
||
|
"dur": {},
|
||
|
"f64": {},
|
||
|
"i": {},
|
||
|
"i64": {},
|
||
|
"s": {},
|
||
|
"u": {},
|
||
|
"u64": {},
|
||
|
},
|
||
|
},
|
||
|
}
|
||
|
|
||
|
_, _ = argh.ParseArgs([]string{}, pCfg)
|
||
|
}()
|
||
|
}
|
||
|
}
|