|
|
|
#!/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
|
|
|
|
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
|
|
|
|
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
|
|
|
|
|
|
|
|
exit 0
|
|
|
|
|