Compare commits

...

1 Commits

3 changed files with 46 additions and 27 deletions
+36
View File
@@ -0,0 +1,36 @@
#!/usr/bin/env bash
# Flag parsing for orchestra_e2e_healthcheck.sh. Sourced, not executed.
# parse_flags sets quiet, json and strict; it exits 0 on --help, and exits 1
# under --strict on the first unrecognised argument.
parse_flags() {
quiet=
json=
strict=
unset unknown
for arg in "$@"; do
if [ "$arg" = --help ]; then
printf 'Usage: %s [--quiet]\n\n' "${0##*/}"
printf 'Healthcheck script for Orchestra E2E tests.\n'
printf 'Exits 0 with a success message if all checks pass.\n'
printf ' --quiet Suppress the success message; still exits 0.\n'
exit 0
elif [ "$arg" = --quiet ]; then
quiet=1
elif [ "$arg" = --json ]; then
json=1
elif [ "$arg" = --strict ]; then
strict=1
else
# Keep the first unrecognised argument only. ${unknown+x} tests set-ness,
# so an empty-string argument is recorded too.
[ -n "${unknown+x}" ] || unknown=$arg
fi
done
# Deferred past the loop so --help still wins from any position.
if [ -n "$strict" ] && [ -n "${unknown+x}" ]; then
printf 'unknown flag: %s\n' "$unknown" >&2
exit 1
fi
}
+3 -26
View File
@@ -1,32 +1,9 @@
#!/usr/bin/env bash
main() {
local quiet=
local json=
local strict=
local unknown=
for arg in "$@"; do
if [ "$arg" = --help ]; then
printf 'Usage: %s [--quiet]\n\n' "${0##*/}"
printf 'Healthcheck script for Orchestra E2E tests.\n'
printf 'Exits 0 with a success message if all checks pass.\n'
printf ' --quiet Suppress the success message; still exits 0.\n'
exit 0
elif [ "$arg" = --quiet ]; then
quiet=1
elif [ "$arg" = --json ]; then
json=1
elif [ "$arg" = --strict ]; then
strict=1
else
[ -n "$unknown" ] || unknown=$arg
fi
done
. "$(dirname "$0")/flags.sh"
if [ -n "$strict" ] && [ -n "$unknown" ]; then
printf 'unknown flag: %s\n' "$unknown" >&2
exit 2
fi
main() {
parse_flags "$@"
if [ -n "$json" ]; then
printf '{"status":"ok","checks":1}\n'
+7 -1
View File
@@ -38,7 +38,7 @@ esac
sout=$(bash "$healthcheck" --strict --nonsense 2>&1)
sstatus=$?
[ "$sstatus" -eq 2 ] || fail "--strict --nonsense exit status: want 2, got $sstatus" "$sout"
[ "$sstatus" -eq 1 ] || fail "--strict --nonsense exit status: want 1, got $sstatus" "$sout"
# --strict alone is accepted
gout=$(bash "$healthcheck" --strict)
@@ -46,4 +46,10 @@ gstatus=$?
[ "$gstatus" -eq 0 ] || fail "--strict run exit status: want 0, got $gstatus" "$gout"
# --strict rejects an empty-string argument too
eout=$(bash "$healthcheck" --strict "" 2>&1)
estatus=$?
[ "$estatus" -eq 1 ] || fail "--strict '' exit status: want 1, got $estatus" "$eout"
printf 'selftest: ok\n'