diff --git a/argh_test.go b/argh_test.go new file mode 100644 index 0000000..7a02acb --- /dev/null +++ b/argh_test.go @@ -0,0 +1,63 @@ +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) + }() + } +}