99 "os"
1010 "os/exec"
1111 "path/filepath"
12+ "runtime"
1213 "strings"
1314 "testing"
1415 "time"
@@ -22,9 +23,27 @@ import (
2223 "github.com/github/git-sizer/sizes"
2324)
2425
26+ func sizerExe (t * testing.T ) string {
27+ t .Helper ()
28+
29+ v := "bin/git-sizer"
30+ switch runtime .GOOS {
31+ case "windows" :
32+ v = `bin\git-sizer.exe`
33+ }
34+
35+ v , err := exec .LookPath (v )
36+ require .NoError (t , err )
37+
38+ v , err = filepath .Abs (v )
39+ require .NoError (t , err )
40+
41+ return v
42+ }
43+
2544// Smoke test that the program runs.
2645func TestExec (t * testing.T ) {
27- cmd := exec .Command ("bin/git-sizer" )
46+ cmd := exec .Command (sizerExe ( t ) )
2847 output , err := cmd .CombinedOutput ()
2948 assert .NoErrorf (t , err , "command failed; output: %#v" , string (output ))
3049}
@@ -133,10 +152,7 @@ func TestRefSelections(t *testing.T) {
133152 repo .CreateReferencedOrphan (t , p .refname )
134153 }
135154
136- executable , err := exec .LookPath ("bin/git-sizer" )
137- require .NoError (t , err )
138- executable , err = filepath .Abs (executable )
139- require .NoError (t , err )
155+ executable := sizerExe (t )
140156
141157 for i , p := range []struct {
142158 name string
@@ -316,10 +332,7 @@ func TestRefgroups(t *testing.T) {
316332 repo .CreateReferencedOrphan (t , refname )
317333 }
318334
319- executable , err := exec .LookPath ("bin/git-sizer" )
320- require .NoError (t , err )
321- executable , err = filepath .Abs (executable )
322- require .NoError (t , err )
335+ executable := sizerExe (t )
323336
324337 for _ , p := range []struct {
325338 name string
0 commit comments