Skip to content

Commit ed4149f

Browse files
committed
CLEANUP/MINOR: test: use proper way of testing conditions in testify
1 parent 8da7baa commit ed4149f

File tree

12 files changed

+607
-278
lines changed

12 files changed

+607
-278
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
@@ -96,7 +96,8 @@ func (suite *TCPSuiteAddtionalServices) Test_CRD_TCP_Additional_Services() {
9696
p, err := parser.New(options.Reader(reader))
9797
suite.Require().NoError(err, "Could not get Haproxy config parser")
9898

99-
suite.checkFrontends(p)
99+
err = suite.checkFrontends(p)
100+
suite.Require().NoError(err)
100101

101102
// Checks for backend
102103
// BE: e2e-tests-crd-tcp_svc_http-echo_http
@@ -116,23 +117,27 @@ func (suite *TCPSuiteAddtionalServices) Test_CRD_TCP_Additional_Services() {
116117
// port: 443
117118
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"}
118119
for _, beName := range beNames {
119-
suite.checkBackend(p, beName, "mode", &types.StringC{Value: "tcp"})
120-
suite.checkBackend(p, beName, "balance", &types.Balance{
120+
err = suite.checkBackend(p, beName, "mode", &types.StringC{Value: "tcp"})
121+
suite.Require().NoError(err)
122+
err = suite.checkBackend(p, beName, "balance", &types.Balance{
121123
Algorithm: "roundrobin",
122124
})
123-
suite.checkBackend(p, beName, "option abortonclose", &types.SimpleOption{NoOption: true, Comment: ""})
124-
suite.checkBackend(p, beName, "default-server", []types.DefaultServer{
125+
suite.Require().NoError(err)
126+
err = suite.checkBackend(p, beName, "option abortonclose", &types.SimpleOption{NoOption: true, Comment: ""})
127+
suite.Require().NoError(err)
128+
err = suite.checkBackend(p, beName, "default-server", []types.DefaultServer{
125129
{
126130
Params: []params.ServerOption{
127131
&params.ServerOptionWord{Name: "check"},
128132
},
129133
},
130134
})
135+
suite.Require().NoError(err)
131136
}
132137
})
133138
}
134139

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

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
@@ -120,12 +120,12 @@ func (suite *TCPSuiteBackendSwitchingRule) Test_CRD_TCP_BackendSwitchingRule() {
120120
suite.Require().NoError(err, "Could not get Haproxy config parser")
121121

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

127128
// Same test as previous but switching rule
128-
129129
func (suite *TCPSuiteBackendSwitchingRule) Test_CRD_TCP_BackendSwitchingRule_WithAcls() {
130130
suite.Run("TCP CR Backend Switching Rule (with Acls)", func() {
131131
var err error
@@ -156,30 +156,55 @@ func (suite *TCPSuiteBackendSwitchingRule) Test_CRD_TCP_BackendSwitchingRule_Wit
156156
return ok
157157
}, e2e.WaitDuration, e2e.TickDuration)
158158

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

184209
// TCP Request
185210
tcpRequests := []types.TCPType{
@@ -193,6 +218,7 @@ func (suite *TCPSuiteBackendSwitchingRule) Test_CRD_TCP_BackendSwitchingRule_Wit
193218
},
194219
},
195220
}
196-
suite.checkFrontend(p, feName, "tcp-request", tcpRequests)
221+
err = suite.checkFrontend(p, feName, "tcp-request", tcpRequests)
222+
suite.Require().NoError(err)
197223
})
198224
}

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

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

7777
// Check client Http Echo calls to both backend0 and backend1
7878
feName := "tcpcr_e2e-tests-crd-tcp_fe-http-echo"
79-
suite.checkBasicHttpEchoFrontend(p, feName)
79+
err = suite.checkBasicHttpEchoFrontend(p, feName)
80+
suite.Require().NoError(err)
8081

8182
//-----------------------
8283
// Extra configuration checks
@@ -93,7 +94,8 @@ func (suite *TCPSuiteFull) Test_CRD_TCP_Full() {
9394
Value: "-i backend1.example.com",
9495
},
9596
}
96-
suite.checkFrontend(p, feName, "acl", acls)
97+
err = suite.checkFrontend(p, feName, "acl", acls)
98+
suite.Require().NoError(err)
9799

98100
// TCP Request
99101
tcpRequests := []types.TCPType{
@@ -107,7 +109,8 @@ func (suite *TCPSuiteFull) Test_CRD_TCP_Full() {
107109
},
108110
},
109111
}
110-
suite.checkFrontend(p, feName, "tcp-request", tcpRequests)
112+
err = suite.checkFrontend(p, feName, "tcp-request", tcpRequests)
113+
suite.Require().NoError(err)
111114

112115
// Captures
113116
captures := []types.DeclareCapture{
@@ -120,7 +123,8 @@ func (suite *TCPSuiteFull) Test_CRD_TCP_Full() {
120123
Length: 54321,
121124
},
122125
}
123-
suite.checkFrontend(p, feName, "declare capture", captures)
126+
err = suite.checkFrontend(p, feName, "declare capture", captures)
127+
suite.Require().NoError(err)
124128

125129
// Filters
126130
filters := []types.Filter{
@@ -134,7 +138,8 @@ func (suite *TCPSuiteFull) Test_CRD_TCP_Full() {
134138
Name: "AFTER-HTTP-COMP",
135139
},
136140
}
137-
suite.checkFrontend(p, feName, "filter", filters)
141+
err = suite.checkFrontend(p, feName, "filter", filters)
142+
suite.Require().NoError(err)
138143

139144
// Log Targets
140145
logTargets := []types.Log{
@@ -144,6 +149,7 @@ func (suite *TCPSuiteFull) Test_CRD_TCP_Full() {
144149
Format: "raw",
145150
},
146151
}
147-
suite.checkFrontend(p, feName, "log", logTargets)
152+
err = suite.checkFrontend(p, feName, "log", logTargets)
153+
suite.Require().NoError(err)
148154
})
149155
}

0 commit comments

Comments
 (0)