Establish host properties and isolated kind matrix
This commit is contained in:
parent
84ccfdb445
commit
06d1383456
1 changed files with 1076 additions and 120 deletions
|
|
@ -4,11 +4,156 @@ set -euo pipefail
|
|||
ROOT="$(cd "$(dirname "$0")/../.." && pwd)"
|
||||
source "$ROOT/tests/kind/lib.sh"
|
||||
|
||||
assert_matrix() {
|
||||
local expected="$1"
|
||||
shift
|
||||
local actual
|
||||
actual="$(expand_fixture_matrix "$@")"
|
||||
if [[ "$actual" != "$expected" ]]; then
|
||||
printf 'unexpected matrix for %s\nexpected:\n%s\nactual:\n%s\n' \
|
||||
"$*" "$expected" "$actual" >&2
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
assert_matrix $'001\t-\t-\t-' durable
|
||||
assert_matrix $'001\tredis\t-\t-\n002\tdragonfly\t-\t-' coordination
|
||||
assert_matrix $'001\t-\tkeycloak\tgarage\n002\t-\tkeycloak\tversitygw\n003\t-\tzitadel\tgarage\n004\t-\tzitadel\tversitygw' oidc target
|
||||
assert_matrix $'001\tredis\tkeycloak\tgarage\n002\tredis\tkeycloak\tversitygw\n003\tredis\tzitadel\tgarage\n004\tredis\tzitadel\tversitygw\n005\tdragonfly\tkeycloak\tgarage\n006\tdragonfly\tkeycloak\tversitygw\n007\tdragonfly\tzitadel\tgarage\n008\tdragonfly\tzitadel\tversitygw' all
|
||||
|
||||
if expand_fixture_matrix redis >/dev/null 2>&1; then
|
||||
printf 'individual provider selector was accepted\n' >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
select_fixture_families target durable target
|
||||
if [[ "${FIXTURE_FAMILIES[*]}" != "durable target" ]]; then
|
||||
printf 'families were not normalized: %s\n' "${FIXTURE_FAMILIES[*]}" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if kube get namespaces >/dev/null 2>&1; then
|
||||
printf 'kube helper unexpectedly reached a cluster without fixture setup\n' >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
kube() {
|
||||
return 1
|
||||
}
|
||||
select_fixture_families durable
|
||||
if write_lane_profile 001 - - - >/dev/null 2>&1; then
|
||||
printf 'lane provisioning failure was ignored\n' >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
select_fixture_families base
|
||||
if write_lane_profile 001 - - - >/dev/null 2>&1; then
|
||||
printf 'ConfigMap provisioning failure was ignored\n' >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
source "$ROOT/tests/kind/lib.sh"
|
||||
kube_calls=0
|
||||
kube() {
|
||||
kube_calls=$((kube_calls + 1))
|
||||
case "$kube_calls" in
|
||||
1) return 1 ;;
|
||||
2) return 0 ;;
|
||||
3) return 1 ;;
|
||||
*) return 0 ;;
|
||||
esac
|
||||
}
|
||||
if reset_lane_target_store garage nuthatch-lane-001 >/dev/null 2>&1; then
|
||||
printf 'target-store emptying failure was ignored\n' >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
source "$ROOT/tests/kind/lib.sh"
|
||||
write_lane_profile() {
|
||||
printf 'nuthatch-fixture-lane-001\n'
|
||||
}
|
||||
render_lane_job() {
|
||||
return 0
|
||||
}
|
||||
run_job_manifest() {
|
||||
return 42
|
||||
}
|
||||
cleanup_called=false
|
||||
cleanup_lane_resources() {
|
||||
cleanup_called=true
|
||||
}
|
||||
cleanup_lane_state() {
|
||||
cleanup_called=true
|
||||
}
|
||||
if run_job_matrix fixture-consumer /dev/null nuthatch-test:local durable; then
|
||||
printf 'Job failure was ignored\n' >&2
|
||||
exit 1
|
||||
fi
|
||||
if [[ "$cleanup_called" = true ]]; then
|
||||
printf 'failed lane was not retained for inspection\n' >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
source "$ROOT/tests/kind/lib.sh"
|
||||
kube() {
|
||||
return 1
|
||||
}
|
||||
if run_job_manifest fixture-consumer /dev/null >/dev/null 2>&1; then
|
||||
printf 'Job cleanup failure was ignored\n' >&2
|
||||
exit 1
|
||||
fi
|
||||
if cleanup_lane_resources fixture-consumer nuthatch-fixture-lane-001 >/dev/null 2>&1; then
|
||||
printf 'lane resource cleanup failure was ignored\n' >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
source "$ROOT/tests/kind/lib.sh"
|
||||
select_fixture_families all
|
||||
cleanup_calls=()
|
||||
cleanup_lane_durable_store() {
|
||||
cleanup_calls+=(durable)
|
||||
return 1
|
||||
}
|
||||
cleanup_lane_coordination_store() {
|
||||
cleanup_calls+=(coordination)
|
||||
}
|
||||
cleanup_lane_target_store() {
|
||||
cleanup_calls+=(target)
|
||||
}
|
||||
if cleanup_lane_state 001 redis keycloak garage >/dev/null 2>&1; then
|
||||
printf 'partial lane cleanup failure was ignored\n' >&2
|
||||
exit 1
|
||||
fi
|
||||
if [[ "${cleanup_calls[*]}" != "durable coordination target" ]]; then
|
||||
printf 'lane cleanup stopped early: %s\n' "${cleanup_calls[*]}" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! declare -F load_local_image >/dev/null; then
|
||||
printf 'local application image loading is unavailable\n' >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
source "$ROOT/tests/kind/lib.sh"
|
||||
configure_provider() {
|
||||
return 0
|
||||
}
|
||||
delete_cluster() {
|
||||
return 1
|
||||
}
|
||||
runtime_cleanup_called=false
|
||||
remove_runtime_namespace() {
|
||||
runtime_cleanup_called=true
|
||||
}
|
||||
if destroy_fixture >/dev/null 2>&1; then
|
||||
printf 'fixture teardown failure was ignored\n' >&2
|
||||
exit 1
|
||||
fi
|
||||
if [[ "$runtime_cleanup_called" != true ]]; then
|
||||
printf 'fixture teardown stopped before runtime cleanup\n' >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
FIXTURE_LOCK_DIR="$RUNTIME/lock-test"
|
||||
FIXTURE_LOCK_PATH="$FIXTURE_LOCK_DIR/nuthatch-testbed-kind.lock"
|
||||
acquire_fixture_lock
|
||||
|
|
@ -19,4 +164,4 @@ if XDG_RUNTIME_DIR="$FIXTURE_LOCK_DIR" bash -c \
|
|||
fi
|
||||
exec 9>&-
|
||||
|
||||
printf 'fixture isolation tests passed\n'
|
||||
printf 'fixture family matrix tests passed\n'
|
||||
|
|
|
|||
Loading…
Reference in a new issue