Skip to content

Commit ff33cd0

Browse files
committed
fix
Signed-off-by: zirain <[email protected]>
1 parent d954101 commit ff33cd0

File tree

1 file changed

+32
-32
lines changed

1 file changed

+32
-32
lines changed

test/e2e/tests/preservecase.go

+32-32
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ import (
1616
"net/http/httputil"
1717
"regexp"
1818
"testing"
19+
"time"
20+
21+
"k8s.io/apimachinery/pkg/util/wait"
22+
"sigs.k8s.io/gateway-api/conformance/utils/tlog"
1923

2024
corev1 "k8s.io/api/core/v1"
2125
"k8s.io/apimachinery/pkg/types"
@@ -113,41 +117,37 @@ var PreserveCaseTest = suite.ConformanceTest{
113117
gwAddr := kubernetes.GatewayAndHTTPRoutesMustBeAccepted(t, suite.Client, suite.TimeoutConfig, suite.ControllerName, kubernetes.NewGatewayRef(gwNN), routeNN)
114118

115119
WaitForPods(t, suite.Client, "gateway-preserve-case-backend", map[string]string{"app": "preserve-case"}, corev1.PodRunning, PodReady)
116-
// Send a request to a valid path and expect a successful response
117-
http.MakeRequestAndExpectEventuallyConsistentResponse(t, suite.RoundTripper, suite.TimeoutConfig, gwAddr, http.ExpectedResponse{
118-
Request: http.Request{
119-
Path: "/preserve?headers=ReSpOnSeHeAdEr",
120-
Headers: map[string]string{
121-
"SpEcIaL": "Header",
122-
},
123-
},
124-
Response: http.Response{
125-
StatusCode: 200,
126-
},
127-
Namespace: ns,
128-
})
129120

130-
// Can't use the standard method for checking the response, since the remote side isn't the
131-
// conformance echo server and it returns a differently formatted response.
132-
expectedResponse := http.ExpectedResponse{
133-
Request: http.Request{
134-
Path: "/preserve?headers=ReSpOnSeHeAdEr",
135-
Headers: map[string]string{
136-
"SpEcIaL": "Header",
121+
err := wait.PollUntilContextTimeout(context.TODO(), time.Second, suite.TimeoutConfig.DeleteTimeout, true, func(ctx context.Context) (bool, error) {
122+
// Can't use the standard method for checking the response, since the remote side isn't the
123+
// conformance echo server and it returns a differently formatted response.
124+
expectedResponse := http.ExpectedResponse{
125+
Request: http.Request{
126+
Path: "/preserve?headers=ReSpOnSeHeAdEr",
127+
Headers: map[string]string{
128+
"SpEcIaL": "Header",
129+
},
137130
},
138-
},
139-
Namespace: ns,
140-
}
141-
142-
var rt nethttp.RoundTripper
143-
req := http.MakeRequest(t, &expectedResponse, gwAddr, "HTTP", "http")
144-
respBody, err := casePreservingRoundTrip(req, rt, suite)
131+
Namespace: ns,
132+
}
133+
134+
var rt nethttp.RoundTripper
135+
req := http.MakeRequest(t, &expectedResponse, gwAddr, "HTTP", "http")
136+
respBody, err := casePreservingRoundTrip(req, rt, suite)
137+
if err != nil {
138+
tlog.Logf(t, "failed to get expected response: %v", err)
139+
return false, nil
140+
}
141+
142+
if _, found := respBody["SpEcIaL"]; !found {
143+
tlog.Logf(t, "case was not preserved for test header: %+v", respBody)
144+
return false, nil
145+
}
146+
147+
return true, nil
148+
})
145149
if err != nil {
146-
t.Errorf("failed to get expected response: %v", err)
147-
}
148-
149-
if _, found := respBody["SpEcIaL"]; !found {
150-
t.Errorf("case was not preserved for test header: %+v", respBody)
150+
tlog.Errorf(t, "failed to get expected response: %v", err)
151151
}
152152
})
153153
},

0 commit comments

Comments
 (0)