...
1
16
17
18 package conformance_test
19
20 import (
21 "testing"
22
23 v1 "sigs.k8s.io/gateway-api/apis/v1"
24 "sigs.k8s.io/gateway-api/apis/v1alpha2"
25 "sigs.k8s.io/gateway-api/apis/v1beta1"
26 "sigs.k8s.io/gateway-api/conformance/tests"
27 "sigs.k8s.io/gateway-api/conformance/utils/flags"
28 "sigs.k8s.io/gateway-api/conformance/utils/suite"
29
30 "k8s.io/client-go/kubernetes"
31 _ "k8s.io/client-go/plugin/pkg/client/auth"
32 "sigs.k8s.io/controller-runtime/pkg/client"
33 "sigs.k8s.io/controller-runtime/pkg/client/config"
34 )
35
36 func TestConformance(t *testing.T) {
37 cfg, err := config.GetConfig()
38 if err != nil {
39 t.Fatalf("Error loading Kubernetes config: %v", err)
40 }
41 client, err := client.New(cfg, client.Options{})
42 if err != nil {
43 t.Fatalf("Error initializing Kubernetes client: %v", err)
44 }
45 clientset, err := kubernetes.NewForConfig(cfg)
46 if err != nil {
47 t.Fatalf("Error initializing Kubernetes REST client: %v", err)
48 }
49
50 v1alpha2.AddToScheme(client.Scheme())
51 v1beta1.AddToScheme(client.Scheme())
52 v1.AddToScheme(client.Scheme())
53
54 supportedFeatures := suite.ParseSupportedFeatures(*flags.SupportedFeatures)
55 exemptFeatures := suite.ParseSupportedFeatures(*flags.ExemptFeatures)
56 skipTests := suite.ParseSkipTests(*flags.SkipTests)
57 namespaceLabels := suite.ParseKeyValuePairs(*flags.NamespaceLabels)
58 namespaceAnnotations := suite.ParseKeyValuePairs(*flags.NamespaceAnnotations)
59
60 t.Logf("Running conformance tests with %s GatewayClass\n cleanup: %t\n debug: %t\n enable all features: %t \n supported features: [%v]\n exempt features: [%v]",
61 *flags.GatewayClassName, *flags.CleanupBaseResources, *flags.ShowDebug, *flags.EnableAllSupportedFeatures, *flags.SupportedFeatures, *flags.ExemptFeatures)
62
63 cSuite := suite.New(suite.Options{
64 Client: client,
65 RestConfig: cfg,
66
67
68 Clientset: clientset,
69 GatewayClassName: *flags.GatewayClassName,
70 Debug: *flags.ShowDebug,
71 CleanupBaseResources: *flags.CleanupBaseResources,
72 SupportedFeatures: supportedFeatures,
73 ExemptFeatures: exemptFeatures,
74 EnableAllSupportedFeatures: *flags.EnableAllSupportedFeatures,
75 NamespaceLabels: namespaceLabels,
76 NamespaceAnnotations: namespaceAnnotations,
77 SkipTests: skipTests,
78 RunTest: *flags.RunTest,
79 })
80 cSuite.Setup(t)
81
82 cSuite.Run(t, tests.ConformanceTests)
83 }
84
View as plain text