9
9
"os"
10
10
"os/exec"
11
11
"path/filepath"
12
+ "runtime"
12
13
"strings"
13
14
"testing"
14
15
"time"
@@ -22,9 +23,27 @@ import (
22
23
"github.com/github/git-sizer/sizes"
23
24
)
24
25
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
+
25
44
// Smoke test that the program runs.
26
45
func TestExec (t * testing.T ) {
27
- cmd := exec .Command ("bin/git-sizer" )
46
+ cmd := exec .Command (sizerExe ( t ) )
28
47
output , err := cmd .CombinedOutput ()
29
48
assert .NoErrorf (t , err , "command failed; output: %#v" , string (output ))
30
49
}
@@ -133,10 +152,7 @@ func TestRefSelections(t *testing.T) {
133
152
repo .CreateReferencedOrphan (t , p .refname )
134
153
}
135
154
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 )
140
156
141
157
for i , p := range []struct {
142
158
name string
@@ -316,10 +332,7 @@ func TestRefgroups(t *testing.T) {
316
332
repo .CreateReferencedOrphan (t , refname )
317
333
}
318
334
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 )
323
336
324
337
for _ , p := range []struct {
325
338
name string
0 commit comments