From f301e3189a10d7691e14bbe3f2fa7d5d216bae08 Mon Sep 17 00:00:00 2001 From: Mauricio Poppe Date: Sat, 13 Mar 2021 00:25:40 +0000 Subject: [PATCH] enable debug mode of E2E tests --- hack/ginkgo-e2e.sh | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/hack/ginkgo-e2e.sh b/hack/ginkgo-e2e.sh index a3c3db08131..8b877860b10 100755 --- a/hack/ginkgo-e2e.sh +++ b/hack/ginkgo-e2e.sh @@ -41,6 +41,13 @@ GINKGO_NO_COLOR=${GINKGO_NO_COLOR:-n} # If 'y', will rerun failed tests once to give them a second chance. GINKGO_TOLERATE_FLAKES=${GINKGO_TOLERATE_FLAKES:-n} +# If set, the command executed will be: +# - `dlv exec` if set to "delve" +# - `gdb` if set to "gdb" +# NOTE: for this to work the e2e.test binary has to be compiled with +# make WHAT=test/e2e/e2e.test GOGCFLAGS="all=-N -l" GOLDFLAGS="" +E2E_TEST_DEBUG_TOOL=${E2E_TEST_DEBUG_TOOL:-} + : "${KUBECTL:="${KUBE_ROOT}/cluster/kubectl.sh"}" : "${KUBE_CONFIG_FILE:="config-test.sh"}" @@ -152,7 +159,20 @@ CONTAINER_RUNTIME=${CONTAINER_RUNTIME:-${KUBE_CONTAINER_RUNTIME:-}} # Add path for things like running kubectl binary. PATH=$(dirname "${e2e_test}"):"${PATH}" export PATH -"${ginkgo}" "${ginkgo_args[@]:+${ginkgo_args[@]}}" "${e2e_test}" -- \ + +# Choose the program to execute. +program="${ginkgo}" +program_args="${ginkgo_args[@]}" +if [[ "${E2E_TEST_DEBUG_TOOL}" == "delve" ]]; then + program="dlv" + program_args=("exec") +fi +if [[ "${E2E_TEST_DEBUG_TOOL}" == "gdb" ]]; then + program="gdb" + program_args=("") +fi + +"${program}" "${program_args[@]:+${program_args[@]}}" "${e2e_test}" -- \ "${auth_config[@]:+${auth_config[@]}}" \ --ginkgo.flakeAttempts="${FLAKE_ATTEMPTS}" \ --host="${KUBE_MASTER_URL}" \