Skip to content

Commit b7ae5bf

Browse files
committed
CLEANUP/MINOR: test: use proper way of testing conditions in testify
1 parent 7a890ae commit b7ae5bf

File tree

11 files changed

+305
-122
lines changed

11 files changed

+305
-122
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ CHECK_COMMIT=5.4.0
77

88
.PHONY: test
99
test:
10-
gotestsum --format-icons=hivis --format=testdox --format-hide-empty-pkg -- $(go list ./... | grep -v /deploy)
10+
gotestsum --format-icons=hivis --format=testdox --format-hide-empty-pkg -- $(go list ./... | grep -v /deploy/tests/e2e)
1111

1212
.PHONY: e2e
1313
e2e:

deploy/tests/e2e/cookie-persistence/cookie-persistence_test.go

Lines changed: 34 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,8 @@ func (suite *CookiePersistenceTestSuite) Test_CookiePersistence_Dynamic() {
8787
beName := suite.test.GetNS() + "_svc_http-echo_http"
8888
serverName := "SRV_1"
8989

90-
suite.checkServerNoCookie(p, beName, serverName)
90+
err = suite.checkServerNoCookie(p, beName, serverName)
91+
suite.Require().NoError(err, "check server no cookie")
9192

9293
// ------------------------
9394
// Second step : remove annotation
@@ -118,7 +119,8 @@ func (suite *CookiePersistenceTestSuite) Test_CookiePersistence_Dynamic() {
118119
p, err = parser.New(options.Reader(reader))
119120
suite.Require().NoError(err, "Could not get Haproxy config parser")
120121

121-
suite.checkServerNoCookie(p, beName, serverName)
122+
err = suite.checkServerNoCookie(p, beName, serverName)
123+
suite.Require().NoError(err, "check server no cookie")
122124
}
123125

124126
// Expected backend
@@ -200,7 +202,8 @@ func (suite *CookiePersistenceTestSuite) Test_CookiePersistence_No_Dynamic() {
200202
p, err = parser.New(options.Reader(reader))
201203
suite.Require().NoError(err, "Could not get Haproxy config parser")
202204

203-
suite.checkServerNoCookie(p, beName, serverName)
205+
err = suite.checkServerNoCookie(p, beName, serverName)
206+
suite.Require().NoError(err, "check server no cookie")
204207
}
205208

206209
func (suite *CookiePersistenceTestSuite) Test_CookiePersistence_Switch() {
@@ -245,7 +248,8 @@ func (suite *CookiePersistenceTestSuite) Test_CookiePersistence_Switch() {
245248
beName := suite.test.GetNS() + "_svc_http-echo_http"
246249
serverName := "SRV_1"
247250

248-
suite.checkServerNoCookie(p, beName, serverName)
251+
err = suite.checkServerNoCookie(p, beName, serverName)
252+
suite.Require().NoError(err, "check server no cookie")
249253

250254
//----------------------
251255
// Step 2: not dynamic
@@ -316,16 +320,31 @@ func (suite *CookiePersistenceTestSuite) Test_CookiePersistence_Switch() {
316320
}, e2e.WaitDuration, e2e.TickDuration)
317321

318322
// Also check configuration
319-
cfg, err = suite.test.GetIngressControllerFile("/etc/haproxy/haproxy.cfg")
320-
suite.Require().NoError(err, "Could not get Haproxy config")
321-
322-
suite.Require().Contains(cfg, "cookie mycookie dynamic indirect nocache insert")
323-
suite.Require().Contains(cfg, "dynamic-cookie-key")
324-
325-
// Check that the server line does not contain "cookie" param
326-
reader = strings.NewReader(cfg)
327-
p, err = parser.New(options.Reader(reader))
328-
suite.Require().NoError(err, "Could not get Haproxy config parser")
323+
suite.Eventually(func() bool {
324+
cfg, err = suite.test.GetIngressControllerFile("/etc/haproxy/haproxy.cfg")
325+
if err != nil {
326+
suite.T().Logf("Could not get Haproxy config: %v", err)
327+
return false
328+
}
329+
if !strings.Contains(cfg, "cookie mycookie dynamic indirect nocache insert") {
330+
return false
331+
}
332+
if !strings.Contains(cfg, "dynamic-cookie-key") {
333+
return false
334+
}
335+
// Check that the server line does not contain "cookie" param
336+
reader = strings.NewReader(cfg)
337+
p, err = parser.New(options.Reader(reader))
338+
if err != nil {
339+
suite.T().Logf("Could not get Haproxy config parser: %v", err)
340+
return false
341+
}
342+
err = suite.checkServerNoCookie(p, beName, serverName)
343+
if err != nil {
344+
suite.T().Logf("check server no cookie: %v", err)
345+
return false
346+
}
329347

330-
suite.checkServerNoCookie(p, beName, serverName)
348+
return true
349+
}, e2e.WaitDuration, e2e.TickDuration)
331350
}

deploy/tests/e2e/cookie-persistence/suite_test.go

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package cookiepersistence
1818

1919
import (
20+
"errors"
2021
"testing"
2122

2223
"github.com/stretchr/testify/suite"
@@ -92,12 +93,16 @@ func (suite *CookiePersistenceSuite) checkServerCookie(p parser.Parser, backendN
9293

9394
// Check that the server serverName for backend backendName
9495
// has a NOT a "cookie" params
95-
func (suite *CookiePersistenceSuite) checkServerNoCookie(p parser.Parser, backendName, serverName string) {
96+
func (suite *CookiePersistenceSuite) checkServerNoCookie(p parser.Parser, backendName, serverName string) error {
9697
v, err := p.Get(parser.Backends, backendName, "server")
97-
suite.Require().NoError(err, "Could not get Haproxy config parser servers for backend %s", backendName)
98+
if err != nil {
99+
return errors.New("Could not get Haproxy config parser servers for backend " + backendName)
100+
}
98101

99102
ondiskServers, ok := v.([]types.Server)
100-
suite.Require().Equal(ok, true, "Could not get Haproxy config parser servers for backend %s", backendName)
103+
if !ok {
104+
return errors.New("Could not get Haproxy config parser servers for backend " + backendName)
105+
}
101106

102107
paramName := "cookie"
103108
cookieParamFound := false
@@ -118,5 +123,8 @@ func (suite *CookiePersistenceSuite) checkServerNoCookie(p parser.Parser, backen
118123
break
119124
}
120125
}
121-
suite.Require().Equal(cookieParamFound, false)
126+
if cookieParamFound {
127+
return errors.New("Found cookie param for server " + serverName)
128+
}
129+
return nil
122130
}

deploy/tests/e2e/crd-tcp/cr_tcp_additional_services_test.go

Lines changed: 32 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,8 @@ func (suite *TCPSuiteAddtionalServices) Test_CRD_TCP_Additional_Services() {
9797
p, err := parser.New(options.Reader(reader))
9898
suite.Require().NoError(err, "Could not get Haproxy config parser")
9999

100-
suite.checkFrontends(p)
100+
err = suite.checkFrontends(p)
101+
suite.Require().NoError(err)
101102

102103
// Checks for backend
103104
// BE: e2e-tests-crd-tcp_svc_http-echo_http
@@ -117,23 +118,27 @@ func (suite *TCPSuiteAddtionalServices) Test_CRD_TCP_Additional_Services() {
117118
// port: 443
118119
beNames := []string{"e2e-tests-crd-tcp_svc_http-echo_http", "e2e-tests-crd-tcp_svc_http-echo-2_http", "e2e-tests-crd-tcp_svc_http-echo-2_https"}
119120
for _, beName := range beNames {
120-
suite.checkBackend(p, beName, "mode", &types.StringC{Value: "tcp"})
121-
suite.checkBackend(p, beName, "balance", &types.Balance{
121+
err = suite.checkBackend(p, beName, "mode", &types.StringC{Value: "tcp"})
122+
suite.Require().NoError(err)
123+
err = suite.checkBackend(p, beName, "balance", &types.Balance{
122124
Algorithm: "roundrobin",
123125
})
124-
suite.checkBackend(p, beName, "option abortonclose", &types.SimpleOption{NoOption: true, Comment: ""})
125-
suite.checkBackend(p, beName, "default-server", []types.DefaultServer{
126+
suite.Require().NoError(err)
127+
err = suite.checkBackend(p, beName, "option abortonclose", &types.SimpleOption{NoOption: true, Comment: ""})
128+
suite.Require().NoError(err)
129+
err = suite.checkBackend(p, beName, "default-server", []types.DefaultServer{
126130
{
127131
Params: []params.ServerOption{
128132
&params.ServerOptionWord{Name: "check"},
129133
},
130134
},
131135
})
136+
suite.Require().NoError(err)
132137
}
133138
})
134139
}
135140

136-
func (suite *TCPSuiteAddtionalServices) checkFrontends(p parser.Parser) {
141+
func (suite *TCPSuiteAddtionalServices) checkFrontends(p parser.Parser) error {
137142
// Checks for tcpcr_e2e-tests-crd-tcp_fe-http-echo-80
138143
binds443 := []types.Bind{
139144
{
@@ -159,9 +164,25 @@ func (suite *TCPSuiteAddtionalServices) checkFrontends(p parser.Parser) {
159164
},
160165
}
161166
feName := "tcpcr_e2e-tests-crd-tcp_fe-http-echo-80"
162-
suite.checkFrontend(p, feName, "bind", binds443)
163-
suite.checkFrontend(p, feName, "mode", &types.StringC{Value: "tcp"})
164-
suite.checkFrontend(p, feName, "log-format", &types.StringC{Value: "'%{+Q}o %t %s'"})
165-
suite.checkFrontend(p, feName, "option tcplog", &types.SimpleOption{NoOption: false, Comment: ""})
166-
suite.checkFrontend(p, feName, "default_backend", &types.StringC{Value: "e2e-tests-crd-tcp_svc_http-echo_http"})
167+
err := suite.checkFrontend(p, feName, "bind", binds443)
168+
if err != nil {
169+
return err
170+
}
171+
err = suite.checkFrontend(p, feName, "mode", &types.StringC{Value: "tcp"})
172+
if err != nil {
173+
return err
174+
}
175+
err = suite.checkFrontend(p, feName, "log-format", &types.StringC{Value: "'%{+Q}o %t %s'"})
176+
if err != nil {
177+
return err
178+
}
179+
err = suite.checkFrontend(p, feName, "option tcplog", &types.SimpleOption{NoOption: false, Comment: ""})
180+
if err != nil {
181+
return err
182+
}
183+
err = suite.checkFrontend(p, feName, "default_backend", &types.StringC{Value: "e2e-tests-crd-tcp_svc_http-echo_http"})
184+
if err != nil {
185+
return err
186+
}
187+
return nil
167188
}

deploy/tests/e2e/crd-tcp/cr_tcp_backend_switching_rule_test.go

Lines changed: 51 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -121,12 +121,12 @@ func (suite *TCPSuiteBackendSwitchingRule) Test_CRD_TCP_BackendSwitchingRule() {
121121
suite.Require().NoError(err, "Could not get Haproxy config parser")
122122

123123
feName := "tcpcr_e2e-tests-crd-tcp_fe-http-echo"
124-
suite.checkBasicHttpEchoFrontend(p, feName)
124+
err = suite.checkBasicHttpEchoFrontend(p, feName)
125+
suite.Require().NoError(err)
125126
})
126127
}
127128

128129
// Same test as previous but switching rule
129-
130130
func (suite *TCPSuiteBackendSwitchingRule) Test_CRD_TCP_BackendSwitchingRule_WithAcls() {
131131
suite.Run("TCP CR Backend Switching Rule (with Acls)", func() {
132132
var err error
@@ -158,30 +158,55 @@ func (suite *TCPSuiteBackendSwitchingRule) Test_CRD_TCP_BackendSwitchingRule_Wit
158158
return ok
159159
}, e2e.WaitDuration, e2e.TickDuration)
160160

161-
// Get updated config and check it
162-
cfg, err := suite.test.GetIngressControllerFile("/etc/haproxy/haproxy.cfg")
163-
suite.Require().NoError(err, "Could not get Haproxy config")
164-
reader := strings.NewReader(cfg)
165-
p, err := parser.New(options.Reader(reader))
166-
suite.Require().NoError(err, "Could not get Haproxy config parser")
167-
161+
doNotShowConfig := false
162+
cfg := ""
168163
feName := "tcpcr_e2e-tests-crd-tcp_fe-http-echo"
169-
suite.checkBasicHttpEchoFrontend(p, feName)
170-
171-
// Add Acls checks
172-
acls := []types.ACL{
173-
{
174-
Name: "switch_be_0",
175-
Criterion: "req_ssl_sni",
176-
Value: "-i backend0.example.com",
177-
},
178-
{
179-
Name: "switch_be_1",
180-
Criterion: "req_ssl_sni",
181-
Value: "-i backend1.example.com",
182-
},
164+
var p parser.Parser
165+
suite.Eventually(func() bool {
166+
// Get updated config and check it
167+
cfg, err = suite.test.GetIngressControllerFile("/etc/haproxy/haproxy.cfg")
168+
if err != nil {
169+
suite.T().Logf("Could not get Haproxy config: %v", err)
170+
return false
171+
}
172+
reader := strings.NewReader(cfg)
173+
p, err = parser.New(options.Reader(reader))
174+
if err != nil {
175+
suite.T().Logf("Could not get Haproxy config parser: %v", err)
176+
return false
177+
}
178+
179+
err = suite.checkBasicHttpEchoFrontend(p, feName)
180+
if err != nil {
181+
suite.T().Logf("Could not check Haproxy config in frontend %s: %v", feName, err)
182+
return false
183+
}
184+
185+
// Add Acls checks
186+
acls := []types.ACL{
187+
{
188+
Name: "switch_be_0",
189+
Criterion: "req_ssl_sni",
190+
Value: "-i backend0.example.com",
191+
},
192+
{
193+
Name: "switch_be_1",
194+
Criterion: "req_ssl_sni",
195+
Value: "-i backend1.example.com",
196+
},
197+
}
198+
err = suite.checkFrontend(p, feName, "acl", acls)
199+
if err != nil {
200+
suite.T().Logf("Could not check Acls in Haproxy config in frontend %s: %v", feName, err)
201+
return false
202+
}
203+
doNotShowConfig = true
204+
return true
205+
}, e2e.WaitDuration, e2e.TickDuration, "Could not find acls in Haproxy config in frontend"+feName)
206+
207+
if !doNotShowConfig {
208+
suite.T().Log(cfg)
183209
}
184-
suite.checkFrontend(p, feName, "acl", acls)
185210

186211
// TCP Request
187212
tcpRequests := []types.TCPType{
@@ -195,6 +220,7 @@ func (suite *TCPSuiteBackendSwitchingRule) Test_CRD_TCP_BackendSwitchingRule_Wit
195220
},
196221
},
197222
}
198-
suite.checkFrontend(p, feName, "tcp-request", tcpRequests)
223+
err = suite.checkFrontend(p, feName, "tcp-request", tcpRequests)
224+
suite.Require().NoError(err)
199225
})
200226
}

deploy/tests/e2e/crd-tcp/cr_tcp_full_test.go

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,8 @@ func (suite *TCPSuiteFull) Test_CRD_TCP_Full() {
7878

7979
// Check client Http Echo calls to both backend0 and backend1
8080
feName := "tcpcr_e2e-tests-crd-tcp_fe-http-echo"
81-
suite.checkBasicHttpEchoFrontend(p, feName)
81+
err = suite.checkBasicHttpEchoFrontend(p, feName)
82+
suite.Require().NoError(err)
8283

8384
//-----------------------
8485
// Extra configuration checks
@@ -95,7 +96,8 @@ func (suite *TCPSuiteFull) Test_CRD_TCP_Full() {
9596
Value: "-i backend1.example.com",
9697
},
9798
}
98-
suite.checkFrontend(p, feName, "acl", acls)
99+
err = suite.checkFrontend(p, feName, "acl", acls)
100+
suite.Require().NoError(err)
99101

100102
// TCP Request
101103
tcpRequests := []types.TCPType{
@@ -109,7 +111,8 @@ func (suite *TCPSuiteFull) Test_CRD_TCP_Full() {
109111
},
110112
},
111113
}
112-
suite.checkFrontend(p, feName, "tcp-request", tcpRequests)
114+
err = suite.checkFrontend(p, feName, "tcp-request", tcpRequests)
115+
suite.Require().NoError(err)
113116

114117
// Captures
115118
captures := []types.DeclareCapture{
@@ -122,7 +125,8 @@ func (suite *TCPSuiteFull) Test_CRD_TCP_Full() {
122125
Length: 54321,
123126
},
124127
}
125-
suite.checkFrontend(p, feName, "declare capture", captures)
128+
err = suite.checkFrontend(p, feName, "declare capture", captures)
129+
suite.Require().NoError(err)
126130

127131
// Filters
128132
filters := []types.Filter{
@@ -136,7 +140,8 @@ func (suite *TCPSuiteFull) Test_CRD_TCP_Full() {
136140
Name: "AFTER-HTTP-COMP",
137141
},
138142
}
139-
suite.checkFrontend(p, feName, "filter", filters)
143+
err = suite.checkFrontend(p, feName, "filter", filters)
144+
suite.Require().NoError(err)
140145

141146
// Log Targets
142147
logTargets := []types.Log{
@@ -146,6 +151,7 @@ func (suite *TCPSuiteFull) Test_CRD_TCP_Full() {
146151
Format: "raw",
147152
},
148153
}
149-
suite.checkFrontend(p, feName, "log", logTargets)
154+
err = suite.checkFrontend(p, feName, "log", logTargets)
155+
suite.Require().NoError(err)
150156
})
151157
}

0 commit comments

Comments
 (0)