mirror of
https://github.com/alibaba/higress.git
synced 2026-06-09 12:47:28 +08:00
|
Before Width: | Height: | Size: 1.1 MiB After Width: | Height: | Size: 1.1 MiB |
@@ -17,9 +17,9 @@ package tests
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/http"
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/roundtripper"
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/suite"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/http"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/roundtripper"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/suite"
|
||||
)
|
||||
|
||||
func init() {
|
||||
@@ -17,8 +17,8 @@ package tests
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/http"
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/suite"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/http"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/suite"
|
||||
)
|
||||
|
||||
func init() {
|
||||
@@ -17,8 +17,8 @@ package tests
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/http"
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/suite"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/http"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/suite"
|
||||
)
|
||||
|
||||
func init() {
|
||||
@@ -17,8 +17,8 @@ package tests
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/http"
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/suite"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/http"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/suite"
|
||||
)
|
||||
|
||||
func init() {
|
||||
@@ -20,10 +20,10 @@ import (
|
||||
|
||||
"sigs.k8s.io/controller-runtime/pkg/client"
|
||||
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/cert"
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/http"
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/kubernetes"
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/suite"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/cert"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/http"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/kubernetes"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/suite"
|
||||
)
|
||||
|
||||
func init() {
|
||||
@@ -17,8 +17,8 @@ package tests
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/http"
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/suite"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/http"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/suite"
|
||||
)
|
||||
|
||||
func init() {
|
||||
@@ -17,8 +17,8 @@ package tests
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/http"
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/suite"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/http"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/suite"
|
||||
)
|
||||
|
||||
func init() {
|
||||
@@ -17,9 +17,9 @@ package tests
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/http"
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/roundtripper"
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/suite"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/http"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/roundtripper"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/suite"
|
||||
)
|
||||
|
||||
func init() {
|
||||
@@ -17,8 +17,8 @@ package tests
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/http"
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/suite"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/http"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/suite"
|
||||
)
|
||||
|
||||
func init() {
|
||||
@@ -17,8 +17,8 @@ package tests
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/http"
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/suite"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/http"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/suite"
|
||||
)
|
||||
|
||||
func init() {
|
||||
@@ -17,8 +17,8 @@ package tests
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/http"
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/suite"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/http"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/suite"
|
||||
)
|
||||
|
||||
func init() {
|
||||
@@ -17,8 +17,8 @@ package tests
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/http"
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/suite"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/http"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/suite"
|
||||
)
|
||||
|
||||
func init() {
|
||||
@@ -17,8 +17,8 @@ package tests
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/http"
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/suite"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/http"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/suite"
|
||||
)
|
||||
|
||||
func init() {
|
||||
@@ -17,8 +17,8 @@ package tests
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/http"
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/suite"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/http"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/suite"
|
||||
)
|
||||
|
||||
func init() {
|
||||
@@ -17,8 +17,8 @@ package tests
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/http"
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/suite"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/http"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/suite"
|
||||
)
|
||||
|
||||
func init() {
|
||||
@@ -17,9 +17,9 @@ package tests
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/http"
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/roundtripper"
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/suite"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/http"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/roundtripper"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/suite"
|
||||
)
|
||||
|
||||
func init() {
|
||||
@@ -17,9 +17,9 @@ package tests
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/http"
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/roundtripper"
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/suite"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/http"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/roundtripper"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/suite"
|
||||
)
|
||||
|
||||
func init() {
|
||||
@@ -17,9 +17,9 @@ package tests
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/http"
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/roundtripper"
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/suite"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/http"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/roundtripper"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/suite"
|
||||
)
|
||||
|
||||
func init() {
|
||||
@@ -17,8 +17,8 @@ package tests
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/http"
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/suite"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/http"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/suite"
|
||||
)
|
||||
|
||||
func init() {
|
||||
@@ -17,8 +17,8 @@ package tests
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/http"
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/suite"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/http"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/suite"
|
||||
)
|
||||
|
||||
func init() {
|
||||
@@ -17,8 +17,8 @@ package tests
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/http"
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/suite"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/http"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/suite"
|
||||
)
|
||||
|
||||
func init() {
|
||||
@@ -17,8 +17,8 @@ package tests
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/http"
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/suite"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/http"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/suite"
|
||||
)
|
||||
|
||||
func init() {
|
||||
@@ -17,8 +17,8 @@ package tests
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/http"
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/suite"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/http"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/suite"
|
||||
)
|
||||
|
||||
func init() {
|
||||
@@ -17,9 +17,9 @@ package tests
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/http"
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/roundtripper"
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/suite"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/http"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/roundtripper"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/suite"
|
||||
)
|
||||
|
||||
func init() {
|
||||
@@ -17,8 +17,8 @@ package tests
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/http"
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/suite"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/http"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/suite"
|
||||
)
|
||||
|
||||
func init() {
|
||||
@@ -14,6 +14,6 @@
|
||||
|
||||
package tests
|
||||
|
||||
import "github.com/alibaba/higress/test/ingress/conformance/utils/suite"
|
||||
import "github.com/alibaba/higress/test/e2e/conformance/utils/suite"
|
||||
|
||||
var HigressConformanceTests []suite.ConformanceTest
|
||||
@@ -17,8 +17,8 @@ package tests
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/http"
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/suite"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/http"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/suite"
|
||||
)
|
||||
|
||||
func init() {
|
||||
@@ -1,16 +1,15 @@
|
||||
// Copyright (c) 2022 Alibaba Group Holding Ltd.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
/*
|
||||
Copyright 2022 The Kubernetes Authors.
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package cert
|
||||
|
||||
92
test/e2e/conformance/utils/config/timeout.go
Normal file
92
test/e2e/conformance/utils/config/timeout.go
Normal file
@@ -0,0 +1,92 @@
|
||||
/*
|
||||
Copyright 2022 The Kubernetes Authors.
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package config
|
||||
|
||||
import "time"
|
||||
|
||||
type TimeoutConfig struct {
|
||||
// CreateTimeout represents the maximum time for a Kubernetes object to be created.
|
||||
// Max value for conformant implementation: None
|
||||
CreateTimeout time.Duration
|
||||
|
||||
// DeleteTimeout represents the maximum time for a Kubernetes object to be deleted.
|
||||
// Max value for conformant implementation: None
|
||||
DeleteTimeout time.Duration
|
||||
|
||||
// GetTimeout represents the maximum time to get a Kubernetes object.
|
||||
// Max value for conformant implementation: None
|
||||
GetTimeout time.Duration
|
||||
|
||||
// ManifestFetchTimeout represents the maximum time for getting content from a https:// URL.
|
||||
// Max value for conformant implementation: None
|
||||
ManifestFetchTimeout time.Duration
|
||||
|
||||
// MaxTimeToConsistency is the maximum time for requiredConsecutiveSuccesses (default 3) requests to succeed in a row before failing the test.
|
||||
// Max value for conformant implementation: 30 seconds
|
||||
MaxTimeToConsistency time.Duration
|
||||
|
||||
// NamespacesMustBeReady represents the maximum time for all Pods and Gateways in a namespaces to be marked as ready.
|
||||
// Max value for conformant implementation: None
|
||||
NamespacesMustBeReady time.Duration
|
||||
|
||||
// RequestTimeout represents the maximum time for making an HTTP Request with the roundtripper.
|
||||
// Max value for conformant implementation: None
|
||||
RequestTimeout time.Duration
|
||||
|
||||
// TLSHandshakeTimeout represents the maximum time for waiting for a TLS handshake. Zero means no timeout.
|
||||
// Max value for conformant implementation: None
|
||||
TLSHandshakeTimeout time.Duration
|
||||
}
|
||||
|
||||
// DefaultTimeoutConfig populates a TimeoutConfig with the default values.
|
||||
func DefaultTimeoutConfig() TimeoutConfig {
|
||||
return TimeoutConfig{
|
||||
CreateTimeout: 60 * time.Second,
|
||||
DeleteTimeout: 10 * time.Second,
|
||||
GetTimeout: 10 * time.Second,
|
||||
ManifestFetchTimeout: 10 * time.Second,
|
||||
MaxTimeToConsistency: 30 * time.Second,
|
||||
NamespacesMustBeReady: 300 * time.Second,
|
||||
RequestTimeout: 10 * time.Second,
|
||||
TLSHandshakeTimeout: 10 * time.Second,
|
||||
}
|
||||
}
|
||||
|
||||
func SetupTimeoutConfig(timeoutConfig *TimeoutConfig) {
|
||||
defaultTimeoutConfig := DefaultTimeoutConfig()
|
||||
if timeoutConfig.CreateTimeout == 0 {
|
||||
timeoutConfig.CreateTimeout = defaultTimeoutConfig.CreateTimeout
|
||||
}
|
||||
if timeoutConfig.DeleteTimeout == 0 {
|
||||
timeoutConfig.DeleteTimeout = defaultTimeoutConfig.DeleteTimeout
|
||||
}
|
||||
if timeoutConfig.GetTimeout == 0 {
|
||||
timeoutConfig.GetTimeout = defaultTimeoutConfig.GetTimeout
|
||||
}
|
||||
if timeoutConfig.ManifestFetchTimeout == 0 {
|
||||
timeoutConfig.ManifestFetchTimeout = defaultTimeoutConfig.ManifestFetchTimeout
|
||||
}
|
||||
if timeoutConfig.MaxTimeToConsistency == 0 {
|
||||
timeoutConfig.MaxTimeToConsistency = defaultTimeoutConfig.MaxTimeToConsistency
|
||||
}
|
||||
if timeoutConfig.NamespacesMustBeReady == 0 {
|
||||
timeoutConfig.NamespacesMustBeReady = defaultTimeoutConfig.NamespacesMustBeReady
|
||||
}
|
||||
if timeoutConfig.RequestTimeout == 0 {
|
||||
timeoutConfig.RequestTimeout = defaultTimeoutConfig.RequestTimeout
|
||||
}
|
||||
if timeoutConfig.TLSHandshakeTimeout == 0 {
|
||||
timeoutConfig.TLSHandshakeTimeout = defaultTimeoutConfig.TLSHandshakeTimeout
|
||||
}
|
||||
}
|
||||
26
test/e2e/conformance/utils/flags/flags.go
Normal file
26
test/e2e/conformance/utils/flags/flags.go
Normal file
@@ -0,0 +1,26 @@
|
||||
/*
|
||||
Copyright 2022 The Kubernetes Authors.
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package flags
|
||||
|
||||
import (
|
||||
"flag"
|
||||
)
|
||||
|
||||
var (
|
||||
IngressClassName = flag.String("ingress-class", "higress", "Name of IngressClass to use for tests")
|
||||
ShowDebug = flag.Bool("debug", false, "Whether to print debug logs")
|
||||
CleanupBaseResources = flag.Bool("cleanup-base-resources", true, "Whether to cleanup base test resources after the run")
|
||||
SupportedFeatures = flag.String("supported-features", "", "Supported features included in conformance tests suites")
|
||||
ExemptFeatures = flag.String("exempt-features", "", "Exempt Features excluded from conformance tests suites")
|
||||
)
|
||||
@@ -1,16 +1,15 @@
|
||||
// Copyright (c) 2022 Alibaba Group Holding Ltd.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
/*
|
||||
Copyright 2022 The Kubernetes Authors.
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package http
|
||||
|
||||
@@ -21,8 +20,8 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/config"
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/roundtripper"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/config"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/roundtripper"
|
||||
)
|
||||
|
||||
type Assertion struct {
|
||||
@@ -1,16 +1,15 @@
|
||||
// Copyright (c) 2022 Alibaba Group Holding Ltd.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
/*
|
||||
Copyright 2022 The Kubernetes Authors.
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package kubernetes
|
||||
|
||||
@@ -24,7 +23,7 @@ import (
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
ingress "github.com/alibaba/higress/test/ingress/conformance"
|
||||
ingress "github.com/alibaba/higress/test/e2e/conformance"
|
||||
"github.com/stretchr/testify/require"
|
||||
apierrors "k8s.io/apimachinery/pkg/api/errors"
|
||||
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
|
||||
@@ -32,7 +31,7 @@ import (
|
||||
"k8s.io/apimachinery/pkg/util/yaml"
|
||||
"sigs.k8s.io/controller-runtime/pkg/client"
|
||||
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/config"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/config"
|
||||
)
|
||||
|
||||
// Applier prepares manifests depending on the available options and applies
|
||||
18
test/e2e/conformance/utils/kubernetes/apply_test.go
Normal file
18
test/e2e/conformance/utils/kubernetes/apply_test.go
Normal file
@@ -0,0 +1,18 @@
|
||||
/*
|
||||
Copyright 2022 The Kubernetes Authors.
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package kubernetes
|
||||
|
||||
import (
|
||||
_ "github.com/alibaba/higress/test/e2e/conformance/utils/flags"
|
||||
)
|
||||
@@ -1,16 +1,15 @@
|
||||
// Copyright (c) 2022 Alibaba Group Holding Ltd.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
/*
|
||||
Copyright 2022 The Kubernetes Authors.
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package kubernetes
|
||||
|
||||
@@ -35,7 +34,7 @@ import (
|
||||
// ensure auth plugins are loaded
|
||||
_ "k8s.io/client-go/plugin/pkg/client/auth"
|
||||
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/cert"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/cert"
|
||||
)
|
||||
|
||||
// MustCreateSelfSignedCertSecret creates a self-signed SSL certificate and stores it in a secret
|
||||
@@ -1,16 +1,15 @@
|
||||
// Copyright (c) 2022 Alibaba Group Holding Ltd.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
/*
|
||||
Copyright 2022 The Kubernetes Authors.
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package kubernetes
|
||||
|
||||
@@ -26,7 +25,7 @@ import (
|
||||
"k8s.io/apimachinery/pkg/util/wait"
|
||||
"sigs.k8s.io/controller-runtime/pkg/client"
|
||||
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/config"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/config"
|
||||
)
|
||||
|
||||
// FilterStaleConditions returns the list of status condition whos observedGeneration does not
|
||||
@@ -1,16 +1,15 @@
|
||||
// Copyright (c) 2022 Alibaba Group Holding Ltd.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
/*
|
||||
Copyright 2022 The Kubernetes Authors.
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package roundtripper
|
||||
|
||||
@@ -26,7 +25,7 @@ import (
|
||||
"net/url"
|
||||
"regexp"
|
||||
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/config"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/config"
|
||||
)
|
||||
|
||||
// RoundTripper is an interface used to make requests within conformance tests.
|
||||
@@ -1,16 +1,15 @@
|
||||
// Copyright (c) 2022 Alibaba Group Holding Ltd.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
/*
|
||||
Copyright 2022 The Kubernetes Authors.
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package suite
|
||||
|
||||
@@ -18,65 +17,24 @@ import (
|
||||
"fmt"
|
||||
"testing"
|
||||
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/config"
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/kubernetes"
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/roundtripper"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/config"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/kubernetes"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/roundtripper"
|
||||
"sigs.k8s.io/controller-runtime/pkg/client"
|
||||
)
|
||||
|
||||
// SupportedFeature allows opting in to additional conformance tests at an
|
||||
// individual feature granularity.
|
||||
type SupportedFeature string
|
||||
|
||||
const (
|
||||
// This option indicates support for TLSRoute (extended conformance).
|
||||
SupportTLSRoute SupportedFeature = "TLSRoute"
|
||||
|
||||
// This option indicates support for HTTPRoute query param matching (extended conformance).
|
||||
SupportHTTPRouteQueryParamMatching SupportedFeature = "HTTPRouteQueryParamMatching"
|
||||
|
||||
// This option indicates support for HTTPRoute method matching (extended conformance).
|
||||
SupportHTTPRouteMethodMatching SupportedFeature = "HTTPRouteMethodMatching"
|
||||
|
||||
// This option indicates support for HTTPRoute response header modification (extended conformance).
|
||||
SupportHTTPResponseHeaderModification SupportedFeature = "HTTPResponseHeaderModification"
|
||||
|
||||
// This option indicates support for Destination Port matching (extended conformance).
|
||||
SupportRouteDestinationPortMatching SupportedFeature = "RouteDestinationPortMatching"
|
||||
|
||||
// This option indicates support for HTTPRoute port redirect (extended conformance).
|
||||
SupportHTTPRoutePortRedirect SupportedFeature = "HTTPRoutePortRedirect"
|
||||
|
||||
// This option indicates support for HTTPRoute scheme redirect (extended conformance).
|
||||
SupportHTTPRouteSchemeRedirect SupportedFeature = "HTTPRouteSchemeRedirect"
|
||||
|
||||
// This option indicates support for HTTPRoute path redirect (experimental conformance).
|
||||
SupportHTTPRoutePathRedirect SupportedFeature = "HTTPRoutePathRedirect"
|
||||
|
||||
// This option indicates support for HTTPRoute host rewrite (experimental conformance)
|
||||
SupportHTTPRouteHostRewrite SupportedFeature = "HTTPRouteHostRewrite"
|
||||
|
||||
// This option indicates support for HTTPRoute path rewrite (experimental conformance)
|
||||
SupportHTTPRoutePathRewrite SupportedFeature = "HTTPRoutePathRewrite"
|
||||
)
|
||||
|
||||
// StandardCoreFeatures are the features that are required to be conformant with
|
||||
// the Core API features that are part of the Standard release channel.
|
||||
var StandardCoreFeatures = map[SupportedFeature]bool{}
|
||||
|
||||
// ConformanceTestSuite defines the test suite used to run Gateway API
|
||||
// conformance tests.
|
||||
type ConformanceTestSuite struct {
|
||||
Client client.Client
|
||||
RoundTripper roundtripper.RoundTripper
|
||||
GatewayAddress string
|
||||
IngressClassName string
|
||||
Debug bool
|
||||
Cleanup bool
|
||||
BaseManifests string
|
||||
Applier kubernetes.Applier
|
||||
SupportedFeatures map[SupportedFeature]bool
|
||||
TimeoutConfig config.TimeoutConfig
|
||||
Client client.Client
|
||||
RoundTripper roundtripper.RoundTripper
|
||||
GatewayAddress string
|
||||
IngressClassName string
|
||||
Debug bool
|
||||
Cleanup bool
|
||||
BaseManifests string
|
||||
Applier kubernetes.Applier
|
||||
TimeoutConfig config.TimeoutConfig
|
||||
}
|
||||
|
||||
// Options can be used to initialize a ConformanceTestSuite.
|
||||
@@ -92,7 +50,6 @@ type Options struct {
|
||||
// CleanupBaseResources indicates whether or not the base test
|
||||
// resources such as Gateways should be cleaned up after the run.
|
||||
CleanupBaseResources bool
|
||||
SupportedFeatures map[SupportedFeature]bool
|
||||
TimeoutConfig config.TimeoutConfig
|
||||
}
|
||||
|
||||
@@ -105,16 +62,6 @@ func New(s Options) *ConformanceTestSuite {
|
||||
roundTripper = &roundtripper.DefaultRoundTripper{Debug: s.Debug, TimeoutConfig: s.TimeoutConfig}
|
||||
}
|
||||
|
||||
if s.SupportedFeatures == nil {
|
||||
s.SupportedFeatures = StandardCoreFeatures
|
||||
} else {
|
||||
for feature, val := range StandardCoreFeatures {
|
||||
if _, ok := s.SupportedFeatures[feature]; !ok {
|
||||
s.SupportedFeatures[feature] = val
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
suite := &ConformanceTestSuite{
|
||||
Client: s.Client,
|
||||
RoundTripper: roundTripper,
|
||||
@@ -126,8 +73,7 @@ func New(s Options) *ConformanceTestSuite {
|
||||
Applier: kubernetes.Applier{
|
||||
NamespaceLabels: s.NamespaceLabels,
|
||||
},
|
||||
SupportedFeatures: s.SupportedFeatures,
|
||||
TimeoutConfig: s.TimeoutConfig,
|
||||
TimeoutConfig: s.TimeoutConfig,
|
||||
}
|
||||
|
||||
// apply defaults
|
||||
@@ -189,7 +135,6 @@ func globalConformanceTestsListInfo(tests []ConformanceTest) string {
|
||||
type ConformanceTest struct {
|
||||
ShortName string
|
||||
Description string
|
||||
Features []SupportedFeature
|
||||
Manifests []string
|
||||
Slow bool
|
||||
Parallel bool
|
||||
@@ -203,14 +148,6 @@ func (test *ConformanceTest) Run(t *testing.T, suite *ConformanceTestSuite) {
|
||||
t.Parallel()
|
||||
}
|
||||
|
||||
// Check that all features exercised by the test have been opted into by
|
||||
// the suite.
|
||||
for _, feature := range test.Features {
|
||||
if supported, ok := suite.SupportedFeatures[feature]; !ok || !supported {
|
||||
t.Skipf("Skipping %s: suite does not support %s", test.ShortName, feature)
|
||||
}
|
||||
}
|
||||
|
||||
for _, manifestLocation := range test.Manifests {
|
||||
t.Logf("Applying %s", manifestLocation)
|
||||
suite.Applier.MustApplyWithCleanup(t, suite.Client, suite.TimeoutConfig, manifestLocation, true)
|
||||
@@ -23,9 +23,9 @@ import (
|
||||
"sigs.k8s.io/controller-runtime/pkg/client"
|
||||
"sigs.k8s.io/controller-runtime/pkg/client/config"
|
||||
|
||||
"github.com/alibaba/higress/test/ingress/conformance/tests"
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/flags"
|
||||
"github.com/alibaba/higress/test/ingress/conformance/utils/suite"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/tests"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/flags"
|
||||
"github.com/alibaba/higress/test/e2e/conformance/utils/suite"
|
||||
)
|
||||
|
||||
var isWasmPluginTest = flag.Bool("isWasmPluginTest", false, "")
|
||||
@@ -46,7 +46,6 @@ func TestHigressConformanceTests(t *testing.T) {
|
||||
IngressClassName: *flags.IngressClassName,
|
||||
Debug: *flags.ShowDebug,
|
||||
CleanupBaseResources: *flags.CleanupBaseResources,
|
||||
SupportedFeatures: map[suite.SupportedFeature]bool{},
|
||||
GatewayAddress: "localhost",
|
||||
})
|
||||
|
||||
|
Before Width: | Height: | Size: 359 KiB After Width: | Height: | Size: 359 KiB |
@@ -1,141 +0,0 @@
|
||||
// Copyright (c) 2022 Alibaba Group Holding Ltd.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package config
|
||||
|
||||
import "time"
|
||||
|
||||
type TimeoutConfig struct {
|
||||
// CreateTimeout represents the maximum time for a Kubernetes object to be created.
|
||||
// Max value for conformant implementation: None
|
||||
CreateTimeout time.Duration
|
||||
|
||||
// DeleteTimeout represents the maximum time for a Kubernetes object to be deleted.
|
||||
// Max value for conformant implementation: None
|
||||
DeleteTimeout time.Duration
|
||||
|
||||
// GetTimeout represents the maximum time to get a Kubernetes object.
|
||||
// Max value for conformant implementation: None
|
||||
GetTimeout time.Duration
|
||||
|
||||
// GatewayMustHaveAddress represents the maximum time for at least one IP Address has been set in the status of a Gateway.
|
||||
// Max value for conformant implementation: None
|
||||
GatewayMustHaveAddress time.Duration
|
||||
|
||||
// GatewayStatusMustHaveListeners represents the maximum time for a Gateway to have listeners in status that match the expected listeners.
|
||||
// Max value for conformant implementation: None
|
||||
GatewayStatusMustHaveListeners time.Duration
|
||||
|
||||
// GWCMustBeAccepted represents the maximum time for a GatewayClass to have an Accepted condition set to true.
|
||||
// Max value for conformant implementation: None
|
||||
GWCMustBeAccepted time.Duration
|
||||
|
||||
// HTTPRouteMustNotHaveParents represents the maximum time for an HTTPRoute to have either no parents or a single parent that is not accepted.
|
||||
// Max value for conformant implementation: None
|
||||
HTTPRouteMustNotHaveParents time.Duration
|
||||
|
||||
// HTTPRouteMustHaveCondition represents the maximum time for an HTTPRoute to have the supplied Condition.
|
||||
// Max value for conformant implementation: None
|
||||
HTTPRouteMustHaveCondition time.Duration
|
||||
|
||||
// HTTPRouteMustHaveParents represents the maximum time for an HTTPRoute to have parents in status that match the expected parents.
|
||||
// Max value for conformant implementation: None
|
||||
HTTPRouteMustHaveParents time.Duration
|
||||
|
||||
// ManifestFetchTimeout represents the maximum time for getting content from a https:// URL.
|
||||
// Max value for conformant implementation: None
|
||||
ManifestFetchTimeout time.Duration
|
||||
|
||||
// MaxTimeToConsistency is the maximum time for requiredConsecutiveSuccesses (default 3) requests to succeed in a row before failing the test.
|
||||
// Max value for conformant implementation: 30 seconds
|
||||
MaxTimeToConsistency time.Duration
|
||||
|
||||
// NamespacesMustBeReady represents the maximum time for all Pods and Gateways in a namespaces to be marked as ready.
|
||||
// Max value for conformant implementation: None
|
||||
NamespacesMustBeReady time.Duration
|
||||
|
||||
// RequestTimeout represents the maximum time for making an HTTP Request with the roundtripper.
|
||||
// Max value for conformant implementation: None
|
||||
RequestTimeout time.Duration
|
||||
|
||||
// TLSHandshakeTimeout represents the maximum time for waiting for a TLS handshake. Zero means no timeout.
|
||||
// Max value for conformant implementation: None
|
||||
TLSHandshakeTimeout time.Duration
|
||||
}
|
||||
|
||||
// DefaultTimeoutConfig populates a TimeoutConfig with the default values.
|
||||
func DefaultTimeoutConfig() TimeoutConfig {
|
||||
return TimeoutConfig{
|
||||
CreateTimeout: 60 * time.Second,
|
||||
DeleteTimeout: 10 * time.Second,
|
||||
GetTimeout: 10 * time.Second,
|
||||
GatewayMustHaveAddress: 180 * time.Second,
|
||||
GatewayStatusMustHaveListeners: 60 * time.Second,
|
||||
GWCMustBeAccepted: 180 * time.Second,
|
||||
HTTPRouteMustNotHaveParents: 60 * time.Second,
|
||||
HTTPRouteMustHaveCondition: 60 * time.Second,
|
||||
HTTPRouteMustHaveParents: 60 * time.Second,
|
||||
ManifestFetchTimeout: 10 * time.Second,
|
||||
MaxTimeToConsistency: 30 * time.Second,
|
||||
NamespacesMustBeReady: 300 * time.Second,
|
||||
RequestTimeout: 10 * time.Second,
|
||||
TLSHandshakeTimeout: 10 * time.Second,
|
||||
}
|
||||
}
|
||||
|
||||
func SetupTimeoutConfig(timeoutConfig *TimeoutConfig) {
|
||||
defaultTimeoutConfig := DefaultTimeoutConfig()
|
||||
if timeoutConfig.CreateTimeout == 0 {
|
||||
timeoutConfig.CreateTimeout = defaultTimeoutConfig.CreateTimeout
|
||||
}
|
||||
if timeoutConfig.DeleteTimeout == 0 {
|
||||
timeoutConfig.DeleteTimeout = defaultTimeoutConfig.DeleteTimeout
|
||||
}
|
||||
if timeoutConfig.GetTimeout == 0 {
|
||||
timeoutConfig.GetTimeout = defaultTimeoutConfig.GetTimeout
|
||||
}
|
||||
if timeoutConfig.GatewayMustHaveAddress == 0 {
|
||||
timeoutConfig.GatewayMustHaveAddress = defaultTimeoutConfig.GatewayMustHaveAddress
|
||||
}
|
||||
if timeoutConfig.GatewayStatusMustHaveListeners == 0 {
|
||||
timeoutConfig.GatewayStatusMustHaveListeners = defaultTimeoutConfig.GatewayStatusMustHaveListeners
|
||||
}
|
||||
if timeoutConfig.GWCMustBeAccepted == 0 {
|
||||
timeoutConfig.GWCMustBeAccepted = defaultTimeoutConfig.GWCMustBeAccepted
|
||||
}
|
||||
if timeoutConfig.HTTPRouteMustNotHaveParents == 0 {
|
||||
timeoutConfig.HTTPRouteMustNotHaveParents = defaultTimeoutConfig.HTTPRouteMustNotHaveParents
|
||||
}
|
||||
if timeoutConfig.HTTPRouteMustHaveCondition == 0 {
|
||||
timeoutConfig.HTTPRouteMustHaveCondition = defaultTimeoutConfig.HTTPRouteMustHaveCondition
|
||||
}
|
||||
if timeoutConfig.HTTPRouteMustHaveParents == 0 {
|
||||
timeoutConfig.HTTPRouteMustHaveParents = defaultTimeoutConfig.HTTPRouteMustHaveParents
|
||||
}
|
||||
if timeoutConfig.ManifestFetchTimeout == 0 {
|
||||
timeoutConfig.ManifestFetchTimeout = defaultTimeoutConfig.ManifestFetchTimeout
|
||||
}
|
||||
if timeoutConfig.MaxTimeToConsistency == 0 {
|
||||
timeoutConfig.MaxTimeToConsistency = defaultTimeoutConfig.MaxTimeToConsistency
|
||||
}
|
||||
if timeoutConfig.NamespacesMustBeReady == 0 {
|
||||
timeoutConfig.NamespacesMustBeReady = defaultTimeoutConfig.NamespacesMustBeReady
|
||||
}
|
||||
if timeoutConfig.RequestTimeout == 0 {
|
||||
timeoutConfig.RequestTimeout = defaultTimeoutConfig.RequestTimeout
|
||||
}
|
||||
if timeoutConfig.TLSHandshakeTimeout == 0 {
|
||||
timeoutConfig.TLSHandshakeTimeout = defaultTimeoutConfig.TLSHandshakeTimeout
|
||||
}
|
||||
}
|
||||
@@ -1,27 +0,0 @@
|
||||
// Copyright (c) 2022 Alibaba Group Holding Ltd.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package flags
|
||||
|
||||
import (
|
||||
"flag"
|
||||
)
|
||||
|
||||
var (
|
||||
IngressClassName = flag.String("ingress-class", "higress", "Name of IngressClass to use for tests")
|
||||
ShowDebug = flag.Bool("debug", false, "Whether to print debug logs")
|
||||
CleanupBaseResources = flag.Bool("cleanup-base-resources", true, "Whether to cleanup base test resources after the run")
|
||||
SupportedFeatures = flag.String("supported-features", "", "Supported features included in conformance tests suites")
|
||||
ExemptFeatures = flag.String("exempt-features", "", "Exempt Features excluded from conformance tests suites")
|
||||
)
|
||||
@@ -1,19 +0,0 @@
|
||||
// Copyright (c) 2022 Alibaba Group Holding Ltd.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package kubernetes
|
||||
|
||||
import (
|
||||
_ "github.com/alibaba/higress/test/ingress/conformance/utils/flags"
|
||||
)
|
||||
Reference in New Issue
Block a user