Skip to content

Commit 678d473

Browse files
test: Add E2E_DRYRUN and E2E_VERBOSE make vars (#666)
**What problem does this PR solve?**: - Use Ginkgo dry-run mode to debug e2e test selection logic - Verbosity is enabled in CI, and dry-run mode I'm using this to debug an issue with e2e tests. <details> <summary>Example output</summary> <code> > make e2e-test E2E_LABEL='provider:Nutanix && cni:Cilium && addonStrategy:HelmAddon' E2E_DRYRUN=true ▶ dry-running e2e tests labelled "provider:Nutanix && cni:Cilium && addonStrategy:HelmAddon" make[1]: Entering directory '/home/dlipovetsky/nutanix/capi-runtime-extensions' ▶ running go generate ▶ building snapshot release ... Will run 1 of 16 specs ------------------------------ [SynchronizedBeforeSuite] /home/dlipovetsky/nutanix/capi-runtime-extensions/test/e2e/e2e_suite_test.go:87 [SynchronizedBeforeSuite] PASSED [0.000 seconds] ------------------------------ S [SKIPPED] Quick start /home/dlipovetsky/nutanix/capi-runtime-extensions/test/e2e/quick_start_test.go:25 topology-cilium-crs [provider:AWS, cni:Cilium, addonStrategy:ClusterResourceSet] /home/dlipovetsky/nutanix/capi-runtime-extensions/test/e2e/quick_start_test.go:44 Should create a workload cluster /home/dlipovetsky/.local/share/go/pkg/mod/sigs.k8s.io/cluster-api/[email protected]/e2e/quick_start.go:106 ------------------------------ S [SKIPPED] Quick start /home/dlipovetsky/nutanix/capi-runtime-extensions/test/e2e/quick_start_test.go:25 topology-calico-helm-addon [provider:AWS, cni:Calico, addonStrategy:HelmAddon] /home/dlipovetsky/nutanix/capi-runtime-extensions/test/e2e/quick_start_test.go:44 Should create a workload cluster /home/dlipovetsky/.local/share/go/pkg/mod/sigs.k8s.io/cluster-api/[email protected]/e2e/quick_start.go:106 ------------------------------ S [SKIPPED] Self-hosted /home/dlipovetsky/nutanix/capi-runtime-extensions/test/e2e/self_hosted_test.go:24 topology-calico-helm-addon [provider:Docker, cni:Calico, addonStrategy:HelmAddon] /home/dlipovetsky/nutanix/capi-runtime-extensions/test/e2e/self_hosted_test.go:43 Should pivot the bootstrap cluster to a self-hosted cluster /home/dlipovetsky/nutanix/capi-runtime-extensions/test/e2e/framework/self_hosted.go:139 ------------------------------ S [SKIPPED] Quick start /home/dlipovetsky/nutanix/capi-runtime-extensions/test/e2e/quick_start_test.go:25 topology-cilium-helm-addon [provider:Docker, cni:Cilium, addonStrategy:HelmAddon] /home/dlipovetsky/nutanix/capi-runtime-extensions/test/e2e/quick_start_test.go:44 Should create a workload cluster /home/dlipovetsky/.local/share/go/pkg/mod/sigs.k8s.io/cluster-api/[email protected]/e2e/quick_start.go:106 ------------------------------ S [SKIPPED] Quick start /home/dlipovetsky/nutanix/capi-runtime-extensions/test/e2e/quick_start_test.go:25 topology-cilium-helm-addon [provider:AWS, cni:Cilium, addonStrategy:HelmAddon] /home/dlipovetsky/nutanix/capi-runtime-extensions/test/e2e/quick_start_test.go:44 Should create a workload cluster /home/dlipovetsky/.local/share/go/pkg/mod/sigs.k8s.io/cluster-api/[email protected]/e2e/quick_start.go:106 ------------------------------ S [SKIPPED] Quick start /home/dlipovetsky/nutanix/capi-runtime-extensions/test/e2e/quick_start_test.go:25 topology-calico-helm-addon [provider:Docker, cni:Calico, addonStrategy:HelmAddon] /home/dlipovetsky/nutanix/capi-runtime-extensions/test/e2e/quick_start_test.go:44 Should create a workload cluster /home/dlipovetsky/.local/share/go/pkg/mod/sigs.k8s.io/cluster-api/[email protected]/e2e/quick_start.go:106 ------------------------------ S [SKIPPED] Quick start /home/dlipovetsky/nutanix/capi-runtime-extensions/test/e2e/quick_start_test.go:25 topology-calico-helm-addon [provider:Nutanix, cni:Calico, addonStrategy:HelmAddon] /home/dlipovetsky/nutanix/capi-runtime-extensions/test/e2e/quick_start_test.go:44 Should create a workload cluster /home/dlipovetsky/.local/share/go/pkg/mod/sigs.k8s.io/cluster-api/[email protected]/e2e/quick_start.go:106 ------------------------------ S [SKIPPED] Quick start /home/dlipovetsky/nutanix/capi-runtime-extensions/test/e2e/quick_start_test.go:25 topology-cilium-crs [provider:Nutanix, cni:Cilium, addonStrategy:ClusterResourceSet] /home/dlipovetsky/nutanix/capi-runtime-extensions/test/e2e/quick_start_test.go:44 Should create a workload cluster /home/dlipovetsky/.local/share/go/pkg/mod/sigs.k8s.io/cluster-api/[email protected]/e2e/quick_start.go:106 ------------------------------ S [SKIPPED] Self-hosted /home/dlipovetsky/nutanix/capi-runtime-extensions/test/e2e/self_hosted_test.go:24 topology-calico-crs [provider:Docker, cni:Calico, addonStrategy:ClusterResourceSet] /home/dlipovetsky/nutanix/capi-runtime-extensions/test/e2e/self_hosted_test.go:43 Should pivot the bootstrap cluster to a self-hosted cluster /home/dlipovetsky/nutanix/capi-runtime-extensions/test/e2e/framework/self_hosted.go:139 ------------------------------ Quick start /home/dlipovetsky/nutanix/capi-runtime-extensions/test/e2e/quick_start_test.go:25 topology-cilium-crs [provider:Docker, cni:Cilium, addonStrategy:ClusterResourceSet] /home/dlipovetsky/nutanix/capi-runtime-extensions/test/e2e/quick_start_test.go:44 Should create a workload cluster /home/dlipovetsky/.local/share/go/pkg/mod/sigs.k8s.io/cluster-api/[email protected]/e2e/quick_start.go:106 • [0.000 seconds] ------------------------------ S [SKIPPED] Self-hosted /home/dlipovetsky/nutanix/capi-runtime-extensions/test/e2e/self_hosted_test.go:24 topology-cilium-crs [provider:Docker, cni:Cilium, addonStrategy:ClusterResourceSet] /home/dlipovetsky/nutanix/capi-runtime-extensions/test/e2e/self_hosted_test.go:43 Should pivot the bootstrap cluster to a self-hosted cluster /home/dlipovetsky/nutanix/capi-runtime-extensions/test/e2e/framework/self_hosted.go:139 ------------------------------ S [SKIPPED] Quick start /home/dlipovetsky/nutanix/capi-runtime-extensions/test/e2e/quick_start_test.go:25 topology-calico-crs [provider:AWS, cni:Calico, addonStrategy:ClusterResourceSet] /home/dlipovetsky/nutanix/capi-runtime-extensions/test/e2e/quick_start_test.go:44 Should create a workload cluster /home/dlipovetsky/.local/share/go/pkg/mod/sigs.k8s.io/cluster-api/[email protected]/e2e/quick_start.go:106 ------------------------------ S [SKIPPED] Quick start /home/dlipovetsky/nutanix/capi-runtime-extensions/test/e2e/quick_start_test.go:25 topology-calico-crs [provider:Nutanix, cni:Calico, addonStrategy:ClusterResourceSet] /home/dlipovetsky/nutanix/capi-runtime-extensions/test/e2e/quick_start_test.go:44 Should create a workload cluster /home/dlipovetsky/.local/share/go/pkg/mod/sigs.k8s.io/cluster-api/[email protected]/e2e/quick_start.go:106 ------------------------------ S [SKIPPED] Quick start /home/dlipovetsky/nutanix/capi-runtime-extensions/test/e2e/quick_start_test.go:25 topology-cilium-helm-addon [provider:Nutanix, cni:Cilium, addonStrategy:HelmAddon] /home/dlipovetsky/nutanix/capi-runtime-extensions/test/e2e/quick_start_test.go:44 Should create a workload cluster /home/dlipovetsky/.local/share/go/pkg/mod/sigs.k8s.io/cluster-api/[email protected]/e2e/quick_start.go:106 ------------------------------ S [SKIPPED] Quick start /home/dlipovetsky/nutanix/capi-runtime-extensions/test/e2e/quick_start_test.go:25 topology-calico-crs [provider:Docker, cni:Calico, addonStrategy:ClusterResourceSet] /home/dlipovetsky/nutanix/capi-runtime-extensions/test/e2e/quick_start_test.go:44 Should create a workload cluster /home/dlipovetsky/.local/share/go/pkg/mod/sigs.k8s.io/cluster-api/[email protected]/e2e/quick_start.go:106 ------------------------------ S [SKIPPED] Self-hosted /home/dlipovetsky/nutanix/capi-runtime-extensions/test/e2e/self_hosted_test.go:24 topology-cilium-helm-addon [provider:Docker, cni:Cilium, addonStrategy:HelmAddon] /home/dlipovetsky/nutanix/capi-runtime-extensions/test/e2e/self_hosted_test.go:43 Should pivot the bootstrap cluster to a self-hosted cluster /home/dlipovetsky/nutanix/capi-runtime-extensions/test/e2e/framework/self_hosted.go:139 ------------------------------ [SynchronizedAfterSuite] /home/dlipovetsky/nutanix/capi-runtime-extensions/test/e2e/e2e_suite_test.go:165 [SynchronizedAfterSuite] PASSED [0.000 seconds] ------------------------------ [ReportAfterSuite] Autogenerated ReportAfterSuite for --json-report --junit-report autogenerated by Ginkgo > Enter [ReportAfterSuite] TOP-LEVEL - autogenerated by Ginkgo @ 05/17/24 15:38:26.869 < Exit [ReportAfterSuite] TOP-LEVEL - autogenerated by Ginkgo @ 05/17/24 15:38:26.871 (2ms) [ReportAfterSuite] PASSED [0.002 seconds] ------------------------------ Ran 1 of 16 Specs in 0.001 seconds SUCCESS! -- 1 Passed | 0 Failed | 0 Pending | 15 Skipped PASS coverage: 0.0% of statements composite coverage: [no statements] Ginkgo ran 1 suite in 2.238661303s Test Suite Passed </code> </details> **Which issue(s) this PR fixes**: Fixes # **How Has This Been Tested?**: <!-- Please describe the tests that you ran to verify your changes. Provide output from the tests and any manual steps needed to replicate the tests. --> **Special notes for your reviewer**: <!-- Use this to provide any additional information to the reviewers. This may include: - Best way to review the PR. - Where the author wants the most review attention on. - etc. --> --------- Co-authored-by: Jimmi Dyson <[email protected]>
1 parent 845826a commit 678d473

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

make/go.mk

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,9 @@ bench.%: ## Runs go benchmarks for a specific module
7474
bench.%: ; $(info $(M) running benchmarks$(if $(GOTEST_RUN), matching "$(GOTEST_RUN)") for $* module)
7575
$(if $(filter-out root,$*),cd $* && )go test $(if $(GOTEST_RUN),-run "$(GOTEST_RUN)") -race -cover -v ./...
7676

77-
E2E_PARALLEL_NODES ?= $(shell nproc --ignore=1)
77+
E2E_DRYRUN ?= false
78+
E2E_VERBOSE ?= $(filter $(E2E_DRYRUN)$(CI),true) # If dry-run or CI, enable verbosity
79+
E2E_PARALLEL_NODES ?= $(if $(filter $(E2E_DRYRUN),true),1,$(shell nproc --ignore=1)) # Ginkgo cannot dry-run in parallel
7880
E2E_FLAKE_ATTEMPTS ?= 1
7981
E2E_CONF_FILE ?= $(REPO_ROOT)/test/e2e/config/caren.yaml
8082
E2E_CONF_FILE_ENVSUBST ?= $(basename $(E2E_CONF_FILE))-envsubst.yaml
@@ -88,7 +90,7 @@ e2e-test:
8890
ifneq ($(SKIP_BUILD),true)
8991
$(MAKE) GORELEASER_FLAGS=$$'--config=<(env GOOS=$(shell go env GOOS) GOARCH=$(shell go env GOARCH) gojq --yaml-input --yaml-output \'del(.builds[0].goarch) | del(.builds[0].goos) | .builds[0].targets|=(["linux_amd64","linux_arm64",env.GOOS+"_"+env.GOARCH] | unique | map(. | sub("_amd64";"_amd64_v1")))\' .goreleaser.yml)' release-snapshot
9092
endif
91-
$(info $(M) running e2e tests$(if $(E2E_LABEL), labelled "$(E2E_LABEL)")$(if $(E2E_FOCUS), matching "$(E2E_FOCUS)"))
93+
$(info $(M) $(if $(E2E_DRYRUN),dry-,)running e2e tests$(if $(E2E_LABEL), labelled "$(E2E_LABEL)")$(if $(E2E_FOCUS), matching "$(E2E_FOCUS)"))
9294
env E2E_IMAGE_TAG="$$(gojq --raw-output '.version' $(REPO_ROOT)/dist/metadata.json)" \
9395
envsubst -no-unset -no-empty -i '$(E2E_CONF_FILE)' -o '$(E2E_CONF_FILE_ENVSUBST)'
9496
env AWS_B64ENCODED_CREDENTIALS="$$(clusterawsadm bootstrap credentials encode-as-profile 2>/dev/null)" \
@@ -100,9 +102,10 @@ endif
100102
--randomize-suites \
101103
--fail-on-pending \
102104
--keep-going \
103-
$(if $(filter $(CI),true),-v) \
105+
$(if $(filter $(E2E_VERBOSE),true),--vv) \
104106
--covermode=atomic \
105107
--coverprofile coverage-e2e.out \
108+
$(if $(filter $(E2E_DRYRUN), true),--dry-run) \
106109
--procs=$(E2E_PARALLEL_NODES) \
107110
--compilers=$(E2E_PARALLEL_NODES) \
108111
--flake-attempts=$(E2E_FLAKE_ATTEMPTS) \

0 commit comments

Comments
 (0)