diff --git a/test/e2e/testdata/client-timeout.yaml b/test/e2e/testdata/client-timeout.yaml new file mode 100644 index 000000000000..a2776dffbf60 --- /dev/null +++ b/test/e2e/testdata/client-timeout.yaml @@ -0,0 +1,31 @@ +apiVersion: gateway.envoyproxy.io/v1alpha1 +kind: ClientTrafficPolicy +metadata: + name: client-timeout + namespace: gateway-conformance-infra +spec: + targetRef: + group: gateway.networking.k8s.io + kind: Gateway + name: same-namespace + namespace: gateway-conformance-infra + timeout: + http: + requestReceivedTimeout: 1ms +--- +apiVersion: gateway.networking.k8s.io/v1 +kind: HTTPRoute +metadata: + name: http-client-timeout + namespace: gateway-conformance-infra +spec: + parentRefs: + - name: same-namespace + rules: + - matches: + - path: + type: PathPrefix + value: /request-timeout + backendRefs: + - name: infra-backend-v1 + port: 8080 diff --git a/test/e2e/tests/client-timeout.go b/test/e2e/tests/client-timeout.go new file mode 100644 index 000000000000..85de95634904 --- /dev/null +++ b/test/e2e/tests/client-timeout.go @@ -0,0 +1,68 @@ +// Copyright Envoy Gateway Authors +// SPDX-License-Identifier: Apache-2.0 +// The full text of the Apache license is available in the LICENSE file at +// the root of the repo. + +//go:build e2e +// +build e2e + +package tests + +import ( + "net/http" + "net/url" + "testing" + "time" + + "k8s.io/apimachinery/pkg/types" + httputils "sigs.k8s.io/gateway-api/conformance/utils/http" + "sigs.k8s.io/gateway-api/conformance/utils/kubernetes" + "sigs.k8s.io/gateway-api/conformance/utils/suite" +) + +func init() { + ConformanceTests = append(ConformanceTests, ClientTimeoutTest) +} + +const largeHeader = "FakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValueFakeHeaderValue" + +var ClientTimeoutTest = suite.ConformanceTest{ + ShortName: "ClientTimeout", + Description: "Test that the ClientTrafficPolicy API implementation supports client timeout", + Manifests: []string{"testdata/client-timeout.yaml"}, + Test: func(t *testing.T, suite *suite.ConformanceTestSuite) { + t.Run("http client timeout", func(t *testing.T) { + ns := "gateway-conformance-infra" + routeNN := types.NamespacedName{Name: "http-client-timeout", Namespace: ns} + gwNN := types.NamespacedName{Name: "same-namespace", Namespace: ns} + gwAddr := kubernetes.GatewayAndHTTPRoutesMustBeAccepted(t, suite.Client, suite.TimeoutConfig, suite.ControllerName, kubernetes.NewGatewayRef(gwNN), routeNN) + + // Use raw http request to avoid chunked + req := &http.Request{ + Method: "GET", + URL: &url.URL{Scheme: "http", Host: gwAddr, Path: "/request-timeout"}, + Header: http.Header{ + // larger enough to trigger request timeout + "x-large-size-header": []string{largeHeader}, + }, + } + + client := &http.Client{} + + httputils.AwaitConvergence(t, + suite.TimeoutConfig.RequiredConsecutiveSuccesses, + suite.TimeoutConfig.MaxTimeToConsistency, + func(_ time.Duration) bool { + resp, err := client.Do(req) + if err != nil { + panic(err) + } + defer resp.Body.Close() + + // return 408 instead of 400 when request timeout. + return http.StatusRequestTimeout == resp.StatusCode + }) + + }) + }, +}