From e5b7c43e4c0285e894a6c76cea7188d27b1fb20e Mon Sep 17 00:00:00 2001 From: zhangzujian Date: Thu, 23 Feb 2023 16:37:56 +0800 Subject: [PATCH] e2e: run specs in parallel --- Makefile.e2e | 54 +++++++++++++++++--------------- test/e2e/k8s-network/e2e_test.go | 6 ++-- test/e2e/kube-ovn/e2e_test.go | 6 ++-- test/e2e/lb-svc/e2e_test.go | 6 ++-- test/e2e/ovn-eip/e2e_test.go | 6 ++-- test/e2e/ovn-ic/e2e_test.go | 10 +++--- test/e2e/security/e2e_test.go | 6 ++-- 7 files changed, 43 insertions(+), 51 deletions(-) diff --git a/Makefile.e2e b/Makefile.e2e index 0d5f397eb39e..2dabfd635c6c 100644 --- a/Makefile.e2e +++ b/Makefile.e2e @@ -33,7 +33,7 @@ K8S_CONFORMANCE_E2E_FOCUS += "sig-network.*Feature:IPv6DualStack" endif define ginkgo_option ---ginkgo.$(1)=$(shell echo '$(2)' | sed -E 's/^[[:space:]]+//' | sed -E 's/"[[:space:]]+"/" --ginkgo.$(1)="/g') +--$(1)=$(shell echo '$(2)' | sed -E 's/^[[:space:]]+//' | sed -E 's/"[[:space:]]+"/" --$(1)="/g') endef .PHONY: e2e @@ -41,31 +41,35 @@ e2e: kube-ovn-conformance-e2e .PHONY: e2e-compile e2e-compile: - go test ./test/e2e/k8s-network -c -o test/e2e/k8s-network/e2e.test - go test ./test/e2e/kube-ovn -c -o test/e2e/kube-ovn/e2e.test - go test ./test/e2e/ovn-ic -c -o test/e2e/ovn-ic/e2e.test - go test ./test/e2e/lb-svc -c -o test/e2e/lb-svc/e2e.test - go test ./test/e2e/security -c -o test/e2e/security/e2e.test + ginkgo build ./test/e2e/k8s-network + ginkgo build ./test/e2e/kube-ovn + ginkgo build ./test/e2e/ovn-ic + ginkgo build ./test/e2e/lb-svc + ginkgo build ./test/e2e/ovn-eip + ginkgo build ./test/e2e/security .PHONY: k8s-conformance-e2e k8s-conformance-e2e: - go test ./test/e2e/k8s-network -c -o test/e2e/k8s-network/e2e.test - ./test/e2e/k8s-network/e2e.test --ginkgo.timeout=1h \ + ginkgo build ./test/e2e/k8s-network + ginkgo -p --randomize-all --timeout=1h \ $(call ginkgo_option,focus,$(K8S_CONFORMANCE_E2E_FOCUS)) \ - $(call ginkgo_option,skip,$(K8S_CONFORMANCE_E2E_SKIP)) + $(call ginkgo_option,skip,$(K8S_CONFORMANCE_E2E_SKIP)) \ + ./test/e2e/k8s-network/k8s-network.test .PHONY: k8s-netpol-legacy-e2e k8s-netpol-legacy-e2e: - go test ./test/e2e/k8s-network -c -o test/e2e/k8s-network/e2e.test - ./test/e2e/k8s-network/e2e.test --ginkgo.timeout=2h \ - $(call ginkgo_option,focus,$(K8S_NETPOL_LEGACY_E2E_FOCUS)) + ginkgo build ./test/e2e/k8s-network + ginkgo -p --randomize-all --timeout=2h \ + $(call ginkgo_option,focus,$(K8S_NETPOL_LEGACY_E2E_FOCUS)) \ + ./test/e2e/k8s-network/k8s-network.test .PHONY: k8s-netpol-e2e k8s-netpol-e2e: - go test ./test/e2e/k8s-network -c -o test/e2e/k8s-network/e2e.test - ./test/e2e/k8s-network/e2e.test --ginkgo.timeout=2h \ + ginkgo build ./test/e2e/k8s-network + ginkgo -p --randomize-all --timeout=2h \ $(call ginkgo_option,focus,$(K8S_NETPOL_E2E_FOCUS)) \ - $(call ginkgo_option,skip,$(K8S_NETPOL_E2E_SKIP)) + $(call ginkgo_option,skip,$(K8S_NETPOL_E2E_SKIP)) \ + ./test/e2e/k8s-network/k8s-network.test .PHONY: cyclonus-netpol-e2e cyclonus-netpol-e2e: @@ -83,40 +87,40 @@ cyclonus-netpol-e2e: .PHONY: kube-ovn-conformance-e2e kube-ovn-conformance-e2e: - go test ./test/e2e/kube-ovn -c -o test/e2e/kube-ovn/e2e.test + ginkgo build ./test/e2e/kube-ovn E2E_BRANCH=$(E2E_BRANCH) \ E2E_IP_FAMILY=$(E2E_IP_FAMILY) \ E2E_NETWORK_MODE=$(E2E_NETWORK_MODE) \ - ./test/e2e/kube-ovn/e2e.test --ginkgo.focus=CNI:Kube-OVN + ginkgo -p --randomize-all --focus="CNI:Kube-OVN" ./test/e2e/kube-ovn/kube-ovn.test .PHONY: kube-ovn-ic-conformance-e2e kube-ovn-ic-conformance-e2e: - go test ./test/e2e/ovn-ic -c -o test/e2e/ovn-ic/e2e.test + ginkgo build ./test/e2e/ovn-ic E2E_BRANCH=$(E2E_BRANCH) \ E2E_IP_FAMILY=$(E2E_IP_FAMILY) \ E2E_NETWORK_MODE=$(E2E_NETWORK_MODE) \ - ./test/e2e/ovn-ic/e2e.test --ginkgo.focus=CNI:Kube-OVN + ginkgo -p --randomize-all --focus="CNI:Kube-OVN" ./test/e2e/ovn-ic/ovn-ic.test .PHONY: kube-ovn-lb-svc-conformance-e2e kube-ovn-lb-svc-conformance-e2e: - go test ./test/e2e/lb-svc -c -o test/e2e/lb-svc/e2e.test + ginkgo build ./test/e2e/lb-svc E2E_BRANCH=$(E2E_BRANCH) \ E2E_IP_FAMILY=$(E2E_IP_FAMILY) \ E2E_NETWORK_MODE=$(E2E_NETWORK_MODE) \ - ./test/e2e/lb-svc/e2e.test --ginkgo.focus=CNI:Kube-OVN + ginkgo -p --randomize-all --focus="CNI:Kube-OVN" ./test/e2e/lb-svc/lb-svc.test .PHONY: kube-ovn-eip-conformance-e2e kube-ovn-eip-conformance-e2e: - go test ./test/e2e/ovn-eip -c -o test/e2e/ovn-eip/e2e.test + ginkgo build ./test/e2e/ovn-eip E2E_BRANCH=$(E2E_BRANCH) \ E2E_IP_FAMILY=$(E2E_IP_FAMILY) \ E2E_NETWORK_MODE=$(E2E_NETWORK_MODE) \ - ./test/e2e/ovn-eip/e2e.test --ginkgo.focus=CNI:Kube-OVN + ginkgo -p --randomize-all --focus="CNI:Kube-OVN" ./test/e2e/ovn-eip/ovn-eip.test .PHONY: kube-ovn-security-e2e kube-ovn-security-e2e: - go test ./test/e2e/security -c -o test/e2e/security/e2e.test + ginkgo build ./test/e2e/security E2E_BRANCH=$(E2E_BRANCH) \ E2E_IP_FAMILY=$(E2E_IP_FAMILY) \ E2E_NETWORK_MODE=$(E2E_NETWORK_MODE) \ - ./test/e2e/security/e2e.test --ginkgo.focus=CNI:Kube-OVN + ginkgo -p --randomize-all --focus="CNI:Kube-OVN" ./test/e2e/security/security.test diff --git a/test/e2e/k8s-network/e2e_test.go b/test/e2e/k8s-network/e2e_test.go index 4ea81101dd01..6d9192e22987 100644 --- a/test/e2e/k8s-network/e2e_test.go +++ b/test/e2e/k8s-network/e2e_test.go @@ -24,15 +24,13 @@ func init() { config.CopyFlags(config.Flags, flag.CommandLine) framework.RegisterCommonFlags(flag.CommandLine) framework.RegisterClusterFlags(flag.CommandLine) +} - // Parse all the flags - flag.Parse() +func TestE2E(t *testing.T) { if framework.TestContext.KubeConfig == "" { framework.TestContext.KubeConfig = filepath.Join(os.Getenv("HOME"), ".kube", "config") } framework.AfterReadingAllFlags(&framework.TestContext) -} -func TestE2E(t *testing.T) { e2e.RunE2ETests(t) } diff --git a/test/e2e/kube-ovn/e2e_test.go b/test/e2e/kube-ovn/e2e_test.go index 481bbc7d13fe..8651d81d775b 100644 --- a/test/e2e/kube-ovn/e2e_test.go +++ b/test/e2e/kube-ovn/e2e_test.go @@ -31,15 +31,13 @@ func init() { config.CopyFlags(config.Flags, flag.CommandLine) framework.RegisterCommonFlags(flag.CommandLine) framework.RegisterClusterFlags(flag.CommandLine) +} - // Parse all the flags - flag.Parse() +func TestE2E(t *testing.T) { if framework.TestContext.KubeConfig == "" { framework.TestContext.KubeConfig = filepath.Join(os.Getenv("HOME"), ".kube", "config") } framework.AfterReadingAllFlags(&framework.TestContext) -} -func TestE2E(t *testing.T) { e2e.RunE2ETests(t) } diff --git a/test/e2e/lb-svc/e2e_test.go b/test/e2e/lb-svc/e2e_test.go index 9ca8468fa08e..b42461cf0330 100644 --- a/test/e2e/lb-svc/e2e_test.go +++ b/test/e2e/lb-svc/e2e_test.go @@ -40,16 +40,14 @@ func init() { config.CopyFlags(config.Flags, flag.CommandLine) k8sframework.RegisterCommonFlags(flag.CommandLine) k8sframework.RegisterClusterFlags(flag.CommandLine) +} - // Parse all the flags - flag.Parse() +func TestE2E(t *testing.T) { if k8sframework.TestContext.KubeConfig == "" { k8sframework.TestContext.KubeConfig = filepath.Join(os.Getenv("HOME"), ".kube", "config") } k8sframework.AfterReadingAllFlags(&k8sframework.TestContext) -} -func TestE2E(t *testing.T) { e2e.RunE2ETests(t) } diff --git a/test/e2e/ovn-eip/e2e_test.go b/test/e2e/ovn-eip/e2e_test.go index bccfcf5667d2..d48557cf1ed6 100644 --- a/test/e2e/ovn-eip/e2e_test.go +++ b/test/e2e/ovn-eip/e2e_test.go @@ -336,15 +336,13 @@ func init() { config.CopyFlags(config.Flags, flag.CommandLine) k8sframework.RegisterCommonFlags(flag.CommandLine) k8sframework.RegisterClusterFlags(flag.CommandLine) +} - // Parse all the flags - flag.Parse() +func TestE2E(t *testing.T) { if k8sframework.TestContext.KubeConfig == "" { k8sframework.TestContext.KubeConfig = filepath.Join(os.Getenv("HOME"), ".kube", "config") } k8sframework.AfterReadingAllFlags(&k8sframework.TestContext) -} -func TestE2E(t *testing.T) { e2e.RunE2ETests(t) } diff --git a/test/e2e/ovn-ic/e2e_test.go b/test/e2e/ovn-ic/e2e_test.go index 4a33460ee9dd..76618f44c669 100644 --- a/test/e2e/ovn-ic/e2e_test.go +++ b/test/e2e/ovn-ic/e2e_test.go @@ -42,9 +42,9 @@ func init() { config.CopyFlags(config.Flags, flag.CommandLine) k8sframework.RegisterCommonFlags(flag.CommandLine) k8sframework.RegisterClusterFlags(flag.CommandLine) +} - // Parse all the flags - flag.Parse() +func TestE2E(t *testing.T) { if k8sframework.TestContext.KubeConfig == "" { k8sframework.TestContext.KubeConfig = filepath.Join(os.Getenv("HOME"), ".kube", "config") } @@ -52,14 +52,12 @@ func init() { var err error if clusters, err = kind.ListClusters(); err != nil { - panic(fmt.Sprintf("failed to list kind clusters: %v", err)) + t.Fatalf("failed to list kind clusters: %v", err) } if len(clusters) < 2 { - panic("no enough kind clusters to run ovn-ic e2e testing") + t.Fatal("no enough kind clusters to run ovn-ic e2e testing") } -} -func TestE2E(t *testing.T) { e2e.RunE2ETests(t) } diff --git a/test/e2e/security/e2e_test.go b/test/e2e/security/e2e_test.go index 2deb83bc8300..9453255e04d8 100644 --- a/test/e2e/security/e2e_test.go +++ b/test/e2e/security/e2e_test.go @@ -34,16 +34,14 @@ func init() { config.CopyFlags(config.Flags, flag.CommandLine) k8sframework.RegisterCommonFlags(flag.CommandLine) k8sframework.RegisterClusterFlags(flag.CommandLine) +} - // Parse all the flags - flag.Parse() +func TestE2E(t *testing.T) { if k8sframework.TestContext.KubeConfig == "" { k8sframework.TestContext.KubeConfig = filepath.Join(os.Getenv("HOME"), ".kube", "config") } k8sframework.AfterReadingAllFlags(&k8sframework.TestContext) -} -func TestE2E(t *testing.T) { e2e.RunE2ETests(t) }