mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-09-06 11:42:14 +00:00
New e2e script (in go this time) that doesn't completely suck
This commit is contained in:
@@ -14,88 +14,7 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
# Starts a Kubernetes cluster, runs the e2e test suite, and shuts it
|
||||
# down.
|
||||
#
|
||||
# Environment flags:
|
||||
# TEST_PATTERN: A pattern to match test filenames against.
|
||||
# Example: "TEST_PATTERN=up" would match tests named "update.sh" and
|
||||
# "hiccup.sh".
|
||||
# Provided for backwards compatibility
|
||||
go run e2e.go -v -build -up -tests="*" -down
|
||||
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
|
||||
# Use testing config
|
||||
export KUBE_CONFIG_FILE="config-test.sh"
|
||||
KUBE_ROOT=$(dirname "${BASH_SOURCE}")/..
|
||||
|
||||
# TODO(jbeda): This will break on usage if there is a space in
|
||||
# ${KUBE_ROOT}. Covert to an array? Or an exported function?
|
||||
export KUBECFG="${KUBE_ROOT}/cluster/kubecfg.sh -expect_version_match"
|
||||
|
||||
source "${KUBE_ROOT}/cluster/kube-env.sh"
|
||||
source "${KUBE_ROOT}/cluster/$KUBERNETES_PROVIDER/util.sh"
|
||||
|
||||
# For debugging of this test's components, it's helpful to leave the test
|
||||
# cluster running.
|
||||
ALREADY_UP=${1:-0}
|
||||
LEAVE_UP=${2:-0}
|
||||
TEAR_DOWN=${3:-0}
|
||||
|
||||
if [[ $TEAR_DOWN -ne 0 ]]; then
|
||||
detect-project
|
||||
trap test-teardown EXIT
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Build a release required by the test provider [if any]
|
||||
test-build-release
|
||||
|
||||
if [[ ${ALREADY_UP} -ne 1 ]]; then
|
||||
# Now bring a test cluster up with that release.
|
||||
"${KUBE_ROOT}/cluster/kube-up.sh"
|
||||
else
|
||||
# Just push instead
|
||||
"${KUBE_ROOT}/cluster/kube-push.sh"
|
||||
fi
|
||||
|
||||
# Perform any required setup of the cluster
|
||||
test-setup
|
||||
|
||||
set +e
|
||||
|
||||
if [[ ${LEAVE_UP} -ne 1 ]]; then
|
||||
trap test-teardown EXIT
|
||||
fi
|
||||
|
||||
TEST_PATTERN="${TEST_PATTERN:-}"
|
||||
failed=()
|
||||
for test_file in $(ls "${KUBE_ROOT}/hack/e2e-suite/"); do
|
||||
if [[ "${TEST_PATTERN}" != "" ]]; then
|
||||
check=".*${TEST_PATTERN}.*"
|
||||
if [[ ! "$test_file" =~ $check ]]; then
|
||||
echo "skipping $test_file"
|
||||
continue
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "+++ Running $test_file"
|
||||
result=0
|
||||
"${KUBE_ROOT}/hack/e2e-suite/${test_file}" || result="$?"
|
||||
if [[ "${result}" -eq "0" ]]; then
|
||||
echo "${test_file} returned ${result}; passed!"
|
||||
else
|
||||
echo "${test_file} returned ${result}; FAIL!"
|
||||
failed+=(${test_file})
|
||||
fi
|
||||
done
|
||||
|
||||
echo
|
||||
if [[ "${#failed[*]}" -eq 0 ]]; then
|
||||
echo "Final: All tests passed."
|
||||
else
|
||||
echo "Final: ${#failed[@]} tests failed: ${failed[@]}."
|
||||
fi
|
||||
|
||||
exit "${#failed[@]}"
|
||||
exit $?
|
||||
|
Reference in New Issue
Block a user