Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 0e35d8d978 | |||
| 3da86dbf8a |
@@ -1,32 +1,33 @@
|
||||
# Task 06G4M8WHGQ4P3GQMPEEH0RJRHM
|
||||
# Task 06G4SWEVP71FYYKAV5FV0ZK5ZG
|
||||
|
||||
Give the healthcheck a --list-checks flag
|
||||
Give the healthcheck a --summary flag
|
||||
|
||||
- Project: test-e2e
|
||||
- Source: burnin/run14-c
|
||||
- Source: burnin/run16-rotation
|
||||
- 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.
|
||||
Give scripts/orchestra_e2e_healthcheck.sh a --summary flag that prints one line per check with its result, then the usual success line.
|
||||
|
||||
This is deliberately two pieces of work, and the plan should carry two phases:
|
||||
Plan this as three phases, because each piece is independently verifiable:
|
||||
|
||||
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.
|
||||
1. Introduce a results list. Record each check's name and outcome as it runs, with no change to any existing output or exit status.
|
||||
2. Add the --summary flag. It prints one line per recorded result, then the existing success line.
|
||||
3. Update the usage text and scripts/test_healthcheck.sh so the expected --help output matches.
|
||||
|
||||
## Verification policy for this project
|
||||
|
||||
Only two commands may appear on a `- run:` line, exactly:
|
||||
Only two commands may appear on a run: line, exactly:
|
||||
|
||||
- `["bash", "-n", "<path>"]`
|
||||
- `["bash", "scripts/orchestra_e2e_healthcheck.sh"]`
|
||||
- ["bash", "-n", "<path>"]
|
||||
- ["bash", "scripts/orchestra_e2e_healthcheck.sh"]
|
||||
|
||||
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.
|
||||
Anything else is refused when you seal the plan. Give every phase at least one automated check from that list, and add a manual check where a human should confirm the printed text.
|
||||
|
||||
## Research first
|
||||
|
||||
Establish at least three findings with distinct confidence: at least one `fact`, one `inference`, one `assumption`.
|
||||
Establish at least three findings with distinct confidence: at least one fact, one inference, one assumption.
|
||||
|
||||
|
||||
## Quality gate
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
#!/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,
|
||||
@@ -15,36 +14,43 @@ emit() {
|
||||
main() {
|
||||
local quiet=
|
||||
local json=
|
||||
local summary=
|
||||
local -a results=()
|
||||
for arg in "$@"; do
|
||||
if [ "$arg" = --help ]; then
|
||||
emit text 'Usage: %s [--quiet]\n\n' "${0##*/}"
|
||||
emit text 'Usage: %s [--quiet] [--summary]\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 ' --summary Print one line per check before the success message.\n'
|
||||
emit text 'Version: %s\n' "$VERSION"
|
||||
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
|
||||
elif [ "$arg" = --summary ]; then
|
||||
summary=1
|
||||
fi
|
||||
done
|
||||
|
||||
results+=("healthcheck ok")
|
||||
|
||||
local format=text
|
||||
[ -n "$quiet" ] && format=none
|
||||
[ -n "$json" ] && format=json
|
||||
|
||||
if [ "$format" = json ]; then
|
||||
emit "$format" '{"status":"ok","checks":%d}\n' "${#CHECKS[@]}"
|
||||
emit "$format" '{"status":"ok","checks":1}\n'
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ -n "$summary" ]; then
|
||||
for r in "${results[@]}"; do
|
||||
emit "$format" '%s: %s\n' "${r%% *}" "${r#* }"
|
||||
done
|
||||
fi
|
||||
|
||||
emit "$format" 'OK - all healthchecks passed\n'
|
||||
exit 0
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
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')"
|
||||
USAGE="$(printf 'Usage: orchestra_e2e_healthcheck.sh [--quiet] [--summary]\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 --summary Print one line per check before the success message.\nVersion: 1.0.0')"
|
||||
fails=0
|
||||
|
||||
check() { # check <expected-stdout> <label> [args...]
|
||||
|
||||
Reference in New Issue
Block a user