@@ -3,13 +3,15 @@ package nginx_test
3
3
import (
4
4
"context"
5
5
"os/exec"
6
+ "regexp"
6
7
"sync"
7
8
"testing"
8
9
"time"
9
10
10
11
// Packages
11
- "github.com/mutablelogic/go-server/pkg/handler/nginx"
12
- "github.com/stretchr/testify/assert"
12
+ nginx "github.com/mutablelogic/go-server/pkg/handler/nginx"
13
+ cmd "github.com/mutablelogic/go-server/pkg/handler/nginx/cmd"
14
+ assert "github.com/stretchr/testify/assert"
13
15
)
14
16
15
17
func Test_nginx_001 (t * testing.T ) {
@@ -62,9 +64,35 @@ func Test_nginx_003(t *testing.T) {
62
64
}
63
65
64
66
func BinaryExec (t * testing.T ) string {
67
+ var version string
68
+
65
69
bin , err := exec .LookPath ("nginx" )
66
70
if err != nil {
67
- t .Skip ("nginx binary not found" )
71
+ t .Skip ("Skipping test, nginx binary not found" )
72
+ return ""
73
+ }
74
+
75
+ // TODO minimum version is 1.19.15
76
+ reVersion := regexp .MustCompile (`nginx/(\d+)\.(\d+)\.(\d+)` )
77
+ cmd , err := cmd .New (bin , "-v" )
78
+ cmd .Err = func (data []byte ) {
79
+ version += string (data )
80
+ }
81
+ cmd .Out = func (data []byte ) {
82
+ version += string (data )
68
83
}
84
+ if err != nil {
85
+ t .Skip (err .Error ())
86
+ } else if err := cmd .Run (); err != nil {
87
+ t .Skip (err .Error ())
88
+ } else if args := reVersion .FindStringSubmatch (version ); args == nil {
89
+ t .Skip ("Missing version: " + version )
90
+ } else if v := args [1 ] + args [2 ]; v < "119" {
91
+ t .Skip ("Invalid version (needs to be at least 1.19.X): " + version )
92
+ } else if v == "119" && args [3 ] < "15" {
93
+ t .Skip ("Invalid version (needs to be >= 1.19.15): " + version )
94
+ }
95
+
96
+ // Return binary path
69
97
return bin
70
98
}
0 commit comments