@@ -25,30 +25,40 @@ func getBinary(t *testing.T) string {
25
25
if dockerApp != "" {
26
26
return dockerApp
27
27
}
28
- dockerApp = os .Getenv ("DOCKERAPP_BINARY" )
29
- if dockerApp == "" {
30
- binName := "docker-app"
31
- if runtime .GOOS == "windows" {
32
- binName += ".exe"
33
- }
34
- locations := []string {"." , "../_build" }
35
- for _ , l := range locations {
36
- b := path .Join (l , binName )
37
- if _ , err := os .Stat (b ); err == nil {
38
- dockerApp = b
39
- break
40
- }
41
- }
42
- }
43
- if dockerApp == "" {
28
+ binName := findBinary ()
29
+ if binName == "" {
44
30
t .Error ("cannot locate docker-app binary" )
45
31
}
46
- cmd := exec .Command (dockerApp , "version" )
47
- _ , err := cmd .CombinedOutput ()
48
- assert .NilError (t , err , "failed to execute docker-app binary" )
32
+ cmd := exec .Command (binName , "version" )
33
+ err := cmd .Run ()
34
+ assert .NilError (t , err , "failed to execute %s" , binName )
35
+ dockerApp = binName
49
36
return dockerApp
50
37
}
51
38
39
+ func findBinary () string {
40
+ binNames := []string {
41
+ os .Getenv ("DOCKERAPP_BINARY" ),
42
+ "./docker-app-" + runtime .GOOS + binExt (),
43
+ "./docker-app" + binExt (),
44
+ "../_build/docker-app-" + runtime .GOOS + binExt (),
45
+ "../_build/docker_app" + binExt (),
46
+ }
47
+ for _ , binName := range binNames {
48
+ if _ , err := os .Stat (binName ); err == nil {
49
+ return binName
50
+ }
51
+ }
52
+ return ""
53
+ }
54
+
55
+ func binExt () string {
56
+ if runtime .GOOS == "windows" {
57
+ return ".exe"
58
+ }
59
+ return ""
60
+ }
61
+
52
62
func TestRenderBinary (t * testing.T ) {
53
63
getBinary (t )
54
64
apps , err := ioutil .ReadDir ("render" )
0 commit comments