Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| dcd0578925 |
@@ -1,37 +1,49 @@
|
||||
# Task 06G4M8WHGQ4P3GQMPEEH0RJRHM
|
||||
# Task 06G4E83E4KRXM8DS90M2648MGM
|
||||
|
||||
Give the healthcheck a --list-checks flag
|
||||
Add a --quiet flag to the healthcheck script
|
||||
|
||||
- Project: test-e2e
|
||||
- Source: burnin/run14-c
|
||||
- Source: gitea:test-e2e/8
|
||||
- Priority: 0
|
||||
|
||||
## Instructions
|
||||
|
||||
Give `scripts/orchestra_e2e_healthcheck.sh` a `--list-checks` flag that prints the name of each check it performs, one per line, and exits 0.
|
||||
## Goal
|
||||
|
||||
This is deliberately two pieces of work, and the plan should carry two phases:
|
||||
Add a --quiet flag to the healthcheck script
|
||||
|
||||
1. Name the checks. The script performs its checks inline. Introduce one list of check names and drive the existing run from that list, with no change to any output or exit status.
|
||||
2. Add the flag. `--list-checks` prints the names from that list and exits 0. Add one line to the usage text describing it.
|
||||
scripts/orchestra_e2e_healthcheck.sh already handles --help. Add a --quiet flag alongside it that suppresses the success line and still exits 0. Leave the default behaviour and the --help output unchanged.
|
||||
|
||||
## Verification policy for this project
|
||||
## Verification
|
||||
|
||||
Only two commands may appear on a `- run:` line, exactly:
|
||||
- `bash -n scripts/*.sh && bash scripts/orchestra_e2e_healthcheck.sh` exited 0
|
||||
- commit: 41dee802416aaa9020a2e31ae5b79fa084a4f150
|
||||
- independent review of 41dee802416aaa9020a2e31ae5b79fa084a4f150: pass
|
||||
- accepted plan: 6c62e3cde23ed9aca296ed5b60295384b35cdad9fe0e1e45fa381d5801fb9af3
|
||||
|
||||
- `["bash", "-n", "<path>"]`
|
||||
- `["bash", "scripts/orchestra_e2e_healthcheck.sh"]`
|
||||
## Behavioural changes
|
||||
|
||||
Anything else is refused when you seal the plan. `scripts/test_healthcheck.sh` is NOT permitted as an automated command. Update it as a manual step so its expected `--help` text matches, and list that as a manual check.
|
||||
- none reported
|
||||
|
||||
## Research first
|
||||
## Deviations from plan
|
||||
|
||||
Establish at least three findings with distinct confidence: at least one `fact`, one `inference`, one `assumption`.
|
||||
- none reported
|
||||
|
||||
## Remaining risks
|
||||
|
||||
## Quality gate
|
||||
- none reported
|
||||
|
||||
bash -n scripts/*.sh && bash scripts/orchestra_e2e_healthcheck.sh
|
||||
## Review hotspots
|
||||
|
||||
- none reported
|
||||
|
||||
The sections above are derived from Orchestra state. The reported
|
||||
changes, deviations, risks, and hotspots are the implementing agent's
|
||||
own account and are not verified.
|
||||
|
||||
## Acceptance criteria
|
||||
|
||||
- not stated in the task contract
|
||||
|
||||
## Completion
|
||||
|
||||
|
||||
@@ -1,51 +1,16 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
readonly VERSION=1.0.0
|
||||
readonly CHECKS=(script-runs)
|
||||
|
||||
# emit <format> <template> [args...]: the single output path.
|
||||
# format: text or json print; none suppresses (--quiet). Explicit argument,
|
||||
# never read from an enclosing variable.
|
||||
emit() {
|
||||
local format=$1
|
||||
shift
|
||||
[ "$format" = none ] || printf "$@"
|
||||
}
|
||||
|
||||
main() {
|
||||
local quiet=
|
||||
local json=
|
||||
for arg in "$@"; do
|
||||
if [ "$arg" = --help ]; then
|
||||
emit text 'Usage: %s [--quiet]\n\n' "${0##*/}"
|
||||
emit text 'Healthcheck script for Orchestra E2E tests.\n'
|
||||
emit text 'Exits 0 with a success message if all checks pass.\n'
|
||||
emit text ' --quiet Suppress the success message; still exits 0.\n'
|
||||
emit text ' --list-checks Print the name of each check; exits 0.\n'
|
||||
emit text 'Version: %s\n' "$VERSION"
|
||||
printf 'Usage: %s\n\n' "${0##*/}"
|
||||
printf 'Healthcheck script for Orchestra E2E tests.\n'
|
||||
printf 'Exits 0 with a success message if all checks pass.\n'
|
||||
exit 0
|
||||
elif [ "$arg" = --list-checks ]; then
|
||||
for name in "${CHECKS[@]}"; do
|
||||
emit text '%s\n' "$name"
|
||||
done
|
||||
exit 0
|
||||
elif [ "$arg" = --quiet ]; then
|
||||
quiet=1
|
||||
elif [ "$arg" = --json ]; then
|
||||
json=1
|
||||
fi
|
||||
done
|
||||
|
||||
local format=text
|
||||
[ -n "$quiet" ] && format=none
|
||||
[ -n "$json" ] && format=json
|
||||
|
||||
if [ "$format" = json ]; then
|
||||
emit "$format" '{"status":"ok","checks":%d}\n' "${#CHECKS[@]}"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
emit "$format" 'OK - all healthchecks passed\n'
|
||||
printf 'OK - all healthchecks passed\n'
|
||||
exit 0
|
||||
}
|
||||
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# Self-test for the Orchestra E2E healthcheck.
|
||||
|
||||
here=$(cd "$(dirname "$0")" && pwd)
|
||||
healthcheck="$here/orchestra_e2e_healthcheck.sh"
|
||||
|
||||
# fail <assertion> <captured stdout>: always echo what the healthcheck printed,
|
||||
# so a red run is diagnosable without rerunning it by hand.
|
||||
fail() {
|
||||
printf 'selftest: FAILED %s\n' "$1" >&2
|
||||
printf 'selftest: healthcheck stdout was:\n%s\n' "$2" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
# plain run
|
||||
out=$(bash "$healthcheck")
|
||||
status=$?
|
||||
|
||||
[ "$status" -eq 0 ] || fail "plain run exit status: want 0, got $status" "$out"
|
||||
case "$out" in
|
||||
*OK*) ;;
|
||||
*) fail "plain run stdout contains OK" "$out" ;;
|
||||
esac
|
||||
|
||||
# --json run
|
||||
jout=$(bash "$healthcheck" --json)
|
||||
jstatus=$?
|
||||
|
||||
[ "$jstatus" -eq 0 ] || fail "--json run exit status: want 0, got $jstatus" "$jout"
|
||||
jlines=$(printf '%s\n' "$jout" | wc -l)
|
||||
[ "$jlines" -eq 1 ] || fail "--json run line count: want 1, got $jlines" "$jout"
|
||||
case "$jout" in
|
||||
'{"status":'*) ;;
|
||||
*) fail '--json run stdout prefix: want {"status":' "$jout" ;;
|
||||
esac
|
||||
|
||||
printf 'selftest: ok\n'
|
||||
@@ -1,28 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# Self-check for orchestra_e2e_healthcheck.sh.
|
||||
|
||||
HC="$(dirname "$0")/orchestra_e2e_healthcheck.sh"
|
||||
OK='OK - all healthchecks passed'
|
||||
USAGE="$(printf 'Usage: orchestra_e2e_healthcheck.sh [--quiet]\n\nHealthcheck script for Orchestra E2E tests.\nExits 0 with a success message if all checks pass.\n --quiet Suppress the success message; still exits 0.\n --list-checks Print the name of each check; exits 0.\nVersion: 1.0.0')"
|
||||
fails=0
|
||||
|
||||
check() { # check <expected-stdout> <label> [args...]
|
||||
local want=$1 label=$2 got status
|
||||
shift 2
|
||||
got=$(bash "$HC" "$@" 2>/dev/null)
|
||||
status=$?
|
||||
if [ "$got" != "$want" ] || [ "$status" -ne 0 ]; then
|
||||
printf 'FAIL: %s (exit=%s)\n---got---\n%s\n---want---\n%s\n' "$label" "$status" "$got" "$want"
|
||||
fails=$((fails + 1))
|
||||
fi
|
||||
}
|
||||
|
||||
check "$OK" 'no args'
|
||||
check '' '--quiet' --quiet
|
||||
check "$USAGE" '--help' --help
|
||||
check "$USAGE" '--help --quiet' --help --quiet
|
||||
check "$USAGE" '--quiet --help' --quiet --help
|
||||
check "$OK" 'unknown flag ignored' --bogus
|
||||
|
||||
[ "$fails" -eq 0 ] || exit 1
|
||||
printf 'all checks passed\n'
|
||||
Reference in New Issue
Block a user