Little helper to run CNCF's k3s in Docker
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
k3d/tests/runner.sh

84 lines
2.1 KiB

5 years ago
#!/bin/bash
CURR_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
[ -d "$CURR_DIR" ] || { echo "FATAL: no current dir (maybe running in zsh?)"; exit 1; }
: "${E2E_INCLUDE:=""}"
: "${E2E_EXCLUDE:=""}"
: "${E2E_EXTRA:=""}"
export CURRENT_STAGE="Runner"
# shellcheck disable=SC1091
5 years ago
source "$CURR_DIR/common.sh"
#########################################################################################
[ -n "$EXE" ] || abort "no EXE provided"
info "Preparing filesystem and environment..."
mkdir -p "$HOME"/.kube
echo "Start time inside runner: $(date)"
section "BASIC TESTS"
for i in "$CURR_DIR"/test_*.sh ; do
base=$(basename "$i" .sh)
skip=false
included=false
excluded=false
# prepare to skip test, if it's in the exclusion list
for excludetest in "${E2E_EXCLUDE[@]}"; do
[[ "$excludetest" =~ (^| )${base}($| ) ]] && excluded=true
done
# (re-)add test to list, if it's on inclusion list
for includetest in "${E2E_INCLUDE[@]}"; do
[[ "$includetest" =~ (^| )${base}($| ) ]] && included=true
done
if [[ -z "${E2E_INCLUDE}" ]]; then # no explicit include list given
if $excluded; then # test is on explicit exclude list
skip=true
fi
else
if $included && $excluded; then # test is in both lists, so we include it
warn "Test ${base} is in both, exclude and include list. Include list takes precedence."
skip=false
fi
if ! $included; then # test is not in include list -> skip
skip=true
fi
fi
# skip or run test
if [ "$skip" = true ]; then
highlight "***** Skipping $base *****"
else
highlight "***** Running $base *****"
"$i" || abort "test $base failed"
fi
5 years ago
done
# Additional (extra) tests
if [[ -n "$E2E_EXTRA" ]]; then
section "EXTRA TESTS"
for i in "$CURR_DIR"/extra_test_*.sh ; do
base=$(basename "$i" .sh)
if [[ $E2E_EXCLUDE =~ (^| )$base($| ) ]]; then
highlight "***** Skipping $base *****"
else
highlight "***** Running $base *****"
"$i" || abort "test $base failed"
fi
done
else
info "NOT running EXTRA tests, please set E2E_EXTRA=1 if you wish to do so"
fi
5 years ago
exit 0