@@ -44,6 +44,30 @@ func TestExamples(t *testing.T) {
4444 }
4545}
4646
47+ func BenchmarkExamples (b * testing.B ) {
48+ examples , err := filepath .Abs (filepath .Join (".." , ".." , "examples" ))
49+ if err != nil {
50+ b .Fatal (err )
51+ }
52+ files , err := ioutil .ReadDir (examples )
53+ if err != nil {
54+ b .Fatal (err )
55+ }
56+ for _ , replay := range files {
57+ if ! replay .IsDir () {
58+ continue
59+ }
60+ tc := replay .Name ()
61+ b .Run (tc , func (b * testing.B ) {
62+ path := filepath .Join (examples , tc )
63+ var stderr bytes.Buffer
64+ for i := 0 ; i < b .N ; i ++ {
65+ cmd .Generate (cmd.Env {}, path , & stderr )
66+ }
67+ })
68+ }
69+ }
70+
4771func TestReplay (t * testing.T ) {
4872 t .Parallel ()
4973 var dirs []string
@@ -139,3 +163,30 @@ func expectedStderr(t *testing.T, dir string) string {
139163 }
140164 return ""
141165}
166+
167+ func BenchmarkReplay (b * testing.B ) {
168+ var dirs []string
169+ err := filepath .Walk ("testdata" , func (path string , info os.FileInfo , err error ) error {
170+ if err != nil {
171+ return err
172+ }
173+ if info .Name () == "sqlc.json" || info .Name () == "sqlc.yaml" {
174+ dirs = append (dirs , filepath .Dir (path ))
175+ return filepath .SkipDir
176+ }
177+ return nil
178+ })
179+ if err != nil {
180+ b .Fatal (err )
181+ }
182+ for _ , replay := range dirs {
183+ tc := replay
184+ b .Run (tc , func (b * testing.B ) {
185+ path , _ := filepath .Abs (tc )
186+ var stderr bytes.Buffer
187+ for i := 0 ; i < b .N ; i ++ {
188+ cmd .Generate (cmd.Env {}, path , & stderr )
189+ }
190+ })
191+ }
192+ }
0 commit comments