aboutsummaryrefslogtreecommitdiff
path: root/docs/project-workflows
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-05-20 09:58:01 -0500
committerCraig Jennings <c@cjennings.net>2026-05-20 09:58:01 -0500
commit4ef30e5c84ab22ba1724608009093d6725a1ceda (patch)
treea52907d5929d1bee2aae04b92ece44d51b34cc6a /docs/project-workflows
parent21b745d7634cf8e743020b591df101b439883511 (diff)
downloadarchangel-4ef30e5c84ab22ba1724608009093d6725a1ceda.tar.gz
archangel-4ef30e5c84ab22ba1724608009093d6725a1ceda.zip
feat(test): retry pacstrap through transient mirror flakes
test-install.sh aborts a whole 5-minute VM run when pacstrap hits a transient mirror blip, and the suite reports a failure indistinguishable from a real install regression. run_test now retries the install up to twice, but only when the in-VM log shows both pacstrap's "Failed to install packages to new root" marker and a download/network indicator. A deterministic failure like "target not found" carries the marker without a network indicator, so it still fails fast. archangel's failure trap exports the pool and unmounts on abort, so each retry re-partitions and re-pacstraps from a clean state. Wiring the predicate up needed a source-guard so bats can source the harness, which had none. With that in place I unit-covered the pure helpers — is_transient_install_failure, char_to_qemu_key, get_disk_count, get_disk_args — and lifted char_to_qemu_key out of monitor_sendkeys so the QEMU keymap is testable on its own. The keymap test found a dead branch. The backslash case pattern was '\\', which never matches a lone backslash because bash matches one against '\', so a passphrase containing a backslash would have sent an invalid QEMU keyname instead of "backslash". No test passphrase uses one, so it never bit. I fixed the pattern.
Diffstat (limited to 'docs/project-workflows')
0 files changed, 0 insertions, 0 deletions