Skip to content

Commit 31ce0dd

Browse files
committed
Code review; remove results
1 parent fce9c36 commit 31ce0dd

File tree

8 files changed

+57
-80
lines changed

8 files changed

+57
-80
lines changed

tests/framework/load.go

+16-13
Original file line numberDiff line numberDiff line change
@@ -31,22 +31,25 @@ func convertTargetToVegetaTarget(targets []Target) []vegeta.Target {
3131
return vegTargets
3232
}
3333

34+
// LoadTestConfig is the configuration to run a load test.
35+
type LoadTestConfig struct {
36+
Description string
37+
Proxy string
38+
ServerName string
39+
Targets []Target
40+
Rate int
41+
Duration time.Duration
42+
}
43+
3444
// Metrics is a wrapper around the vegeta Metrics.
3545
type Metrics struct {
3646
vegeta.Metrics
3747
}
3848

3949
// RunLoadTest uses Vegeta to send traffic to the provided Targets at the given rate for the given duration and writes
4050
// the results to the provided file
41-
func RunLoadTest(
42-
targets []Target,
43-
rate int,
44-
duration time.Duration,
45-
desc,
46-
proxy,
47-
serverName string,
48-
) (vegeta.Results, Metrics) {
49-
vegTargets := convertTargetToVegetaTarget(targets)
51+
func RunLoadTest(cfg LoadTestConfig) (vegeta.Results, Metrics) {
52+
vegTargets := convertTargetToVegetaTarget(cfg.Targets)
5053
targeter := vegeta.NewStaticTargeter(vegTargets...)
5154

5255
dialer := &net.Dialer{
@@ -58,11 +61,11 @@ func RunLoadTest(
5861
Timeout: vegeta.DefaultTimeout,
5962
Transport: &http.Transport{
6063
DialContext: func(ctx context.Context, network, addr string) (net.Conn, error) {
61-
return dialer.DialContext(ctx, network, proxy)
64+
return dialer.DialContext(ctx, network, cfg.Proxy)
6265
},
6366
TLSClientConfig: &tls.Config{
6467
InsecureSkipVerify: true, //nolint:gosec // self-signed cert for testing
65-
ServerName: serverName,
68+
ServerName: cfg.ServerName,
6669
},
6770
MaxIdleConnsPerHost: vegeta.DefaultConnections,
6871
MaxConnsPerHost: vegeta.DefaultMaxConnections,
@@ -71,10 +74,10 @@ func RunLoadTest(
7174

7275
attacker := vegeta.NewAttacker(vegeta.Client(&httpClient))
7376

74-
r := vegeta.Rate{Freq: rate, Per: time.Second}
77+
r := vegeta.Rate{Freq: cfg.Rate, Per: time.Second}
7578
var results vegeta.Results
7679
var metrics vegeta.Metrics
77-
for res := range attacker.Attack(targeter, r, duration, desc) {
80+
for res := range attacker.Attack(targeter, r, cfg.Duration, cfg.Description) {
7881
results = append(results, *res)
7982
metrics.Add(res)
8083
}

tests/framework/resourcemanager.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -409,8 +409,8 @@ func (rm *ResourceManager) GetClusterInfo() (ClusterInfo, error) {
409409
return *ci, nil
410410
}
411411

412-
// GetNGFPodNames returns the name(s) of the NGF Pod(s).
413-
func GetNGFPodNames(
412+
// GetReadyNGFPodNames returns the name(s) of the NGF Pod(s).
413+
func GetReadyNGFPodNames(
414414
k8sClient client.Client,
415415
namespace,
416416
releaseName string,
-4.21 KB
Binary file not shown.
-4.21 KB
Binary file not shown.

tests/results/ngf-upgrade/s.berman/s.berman.md

-43
This file was deleted.

tests/suite/dataplane_perf_test.go

+9-8
Original file line numberDiff line numberDiff line change
@@ -87,14 +87,15 @@ var _ = Describe("Dataplane performance", Ordered, Label("performance"), func()
8787
_, err := fmt.Fprint(outFile, text)
8888
Expect(err).ToNot(HaveOccurred())
8989

90-
_, metrics := framework.RunLoadTest(
91-
[]framework.Target{target},
92-
1000,
93-
30*time.Second,
94-
description,
95-
addr,
96-
"cafe.example.com",
97-
)
90+
cfg := framework.LoadTestConfig{
91+
Targets: []framework.Target{target},
92+
Rate: 1000,
93+
Duration: 30 * time.Second,
94+
Description: description,
95+
Proxy: addr,
96+
ServerName: "cafe.example.com",
97+
}
98+
_, metrics := framework.RunLoadTest(cfg)
9899

99100
Expect(framework.WriteResults(outFile, &metrics)).To(Succeed())
100101

tests/suite/system_suite_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ func setup(cfg setupConfig, extraInstallArgs ...string) {
140140
output, err = framework.InstallNGF(installCfg, extraInstallArgs...)
141141
Expect(err).ToNot(HaveOccurred(), string(output))
142142

143-
podNames, err := framework.GetNGFPodNames(
143+
podNames, err := framework.GetReadyNGFPodNames(
144144
k8sClient,
145145
installCfg.Namespace,
146146
installCfg.ReleaseName,

tests/suite/upgrade_test.go

+29-13
Original file line numberDiff line numberDiff line change
@@ -145,14 +145,16 @@ var _ = Describe("Upgrade testing", Label("upgrade"), func() {
145145
defer GinkgoRecover()
146146
defer wg.Done()
147147

148-
results, metrics := framework.RunLoadTest(
149-
[]framework.Target{cfg.target},
150-
100,
151-
60*time.Second,
152-
cfg.desc,
153-
fmt.Sprintf("%s:%s", address, cfg.port),
154-
"cafe.example.com",
155-
)
148+
loadTestCfg := framework.LoadTestConfig{
149+
Targets: []framework.Target{cfg.target},
150+
Rate: 100,
151+
Duration: 60 * time.Second,
152+
Description: cfg.desc,
153+
Proxy: fmt.Sprintf("%s:%s", address, cfg.port),
154+
ServerName: "cafe.example.com",
155+
}
156+
157+
results, metrics := framework.RunLoadTest(loadTestCfg)
156158

157159
scheme := strings.Split(cfg.target.URL, "://")[0]
158160
metricsRes := metricsResults{
@@ -196,20 +198,34 @@ var _ = Describe("Upgrade testing", Label("upgrade"), func() {
196198

197199
Expect(resourceManager.ApplyFromFiles([]string{"ngf-upgrade/gateway-updated.yaml"}, ns.Name)).To(Succeed())
198200

199-
podNames, err := framework.GetNGFPodNames(k8sClient, ngfNamespace, releaseName, timeoutConfig.GetTimeout)
201+
podNames, err := framework.GetReadyNGFPodNames(k8sClient, ngfNamespace, releaseName, timeoutConfig.GetTimeout)
200202
Expect(err).ToNot(HaveOccurred())
201203
Expect(podNames).ToNot(HaveLen(0))
202204

203205
// ensure that the leader election lease has been updated to the new pods
204-
leaseCtx, leaseCancel := context.WithTimeout(context.Background(), timeoutConfig.GetTimeout)
206+
leaseCtx, leaseCancel := context.WithTimeout(context.Background(), 1*time.Minute)
205207
defer leaseCancel()
206208

207209
var lease coordination.Lease
208210
key := types.NamespacedName{Name: "ngf-test-nginx-gateway-fabric-leader-election", Namespace: ngfNamespace}
209-
Expect(k8sClient.Get(leaseCtx, key, &lease)).To(Succeed())
211+
Expect(wait.PollUntilContextCancel(
212+
leaseCtx,
213+
500*time.Millisecond,
214+
true, /* poll immediately */
215+
func(ctx context.Context) (bool, error) {
216+
Expect(k8sClient.Get(leaseCtx, key, &lease)).To(Succeed())
210217

211-
Expect(lease.Spec.HolderIdentity).ToNot(BeNil())
212-
Expect(podNames).To(ContainElement(*lease.Spec.HolderIdentity))
218+
if lease.Spec.HolderIdentity != nil {
219+
for _, podName := range podNames {
220+
if podName == *lease.Spec.HolderIdentity {
221+
return true, nil
222+
}
223+
}
224+
}
225+
226+
return false, nil
227+
},
228+
)).To(Succeed())
213229

214230
// ensure that the Gateway has been properly updated with a new listener
215231
gwCtx, gwCancel := context.WithTimeout(context.Background(), 1*time.Minute)

0 commit comments

Comments
 (0)