41 lines
1.4 KiB
Bash
41 lines
1.4 KiB
Bash
#!/usr/bin/env bash
|
|
set -Eeuo pipefail
|
|
cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.."
|
|
source <(awk '/^\[\[ "\$EUID"/{exit} {print}' ochenstarik-server-2.sh)
|
|
test_dir="$(mktemp -d)"
|
|
trap 'rm -rf -- "$test_dir"' EXIT
|
|
|
|
systemctl() {
|
|
printf '%s\n' "$*" >> "$test_dir/calls"
|
|
case "$*" in
|
|
'is-enabled ufw.service') cat "$test_dir/state"; return 1 ;;
|
|
'enable ufw.service')
|
|
[[ "$scenario" != enable-failed ]] || return 1
|
|
[[ "$scenario" == verify-failed ]] || printf enabled > "$test_dir/state"
|
|
;;
|
|
'is-enabled --quiet ufw.service') [[ "$(cat "$test_dir/state")" == enabled ]] ;;
|
|
*) return 99 ;;
|
|
esac
|
|
}
|
|
|
|
for state in masked masked-runtime; do
|
|
printf '%s' "$state" > "$test_dir/state"
|
|
: > "$test_dir/calls"
|
|
scenario=masked
|
|
if (ensure_ufw_boot_service) > "$test_dir/output" 2>&1; then exit 1; fi
|
|
! grep -q '^enable ' "$test_dir/calls"
|
|
[[ "$(cat "$test_dir/state")" == "$state" ]]
|
|
done
|
|
|
|
for scenario in disabled enabled enable-failed verify-failed; do
|
|
printf '%s' "$scenario" > "$test_dir/state"
|
|
: > "$test_dir/calls"
|
|
if [[ "$scenario" == *-failed ]]; then
|
|
if (ensure_ufw_boot_service) > "$test_dir/output" 2>&1; then exit 1; fi
|
|
else
|
|
ensure_ufw_boot_service
|
|
[[ "$(cat "$test_dir/state")" == enabled ]]
|
|
grep -qx 'is-enabled --quiet ufw.service' "$test_dir/calls"
|
|
fi
|
|
done
|
|
printf 'Step 2 UFW boot readiness tests passed.\n'
|