531a96ac
test: e2e — the empty-wall detach leg stops pinning a deadline it cannot fail on
a73x 2026-08-28 19:53
Commit message
test/e2e_09_hosts.sh
| Old | New | ||
|---|---|---|---|
| @@ -596,17 +596,20 @@ ok "hosts rm takes the daemon off the wall and ends nothing" | |||
| 596 | # nothing has ever written here, so the run refuses every chord rather | 596 | # nothing has ever written here, so the run refuses every chord rather |
| 597 | # than reading one off it, and `Ctrl-\ d` is the one it honours. | 597 | # than reading one off it, and `Ctrl-\ d` is the one it honours. |
| 598 | # | 598 | # |
| 599 | # Two claims, and the second is the one that catches a fall-through: | 599 | # One claim, and the sentence is the whole of it: it says `mux: left the |
| 600 | # wall`. `detached (session still running)` is what the ordinary road | ||
| 601 | # prints, and on a wall with no session that sentence is a lie about the | ||
| 602 | # user's shells. | ||
| 600 | # | 603 | # |
| 601 | # * the client leaves within a SECOND of the key. The ordinary detach | 604 | # NOT a deadline. `awaitDetach` bounds the ordinary road at 400ms, so a `d` |
| 602 | # waits up to 400ms for a pump's ack, and on this wall there is no | 605 | # that fell through to it still exits inside any waitexit worth writing: a |
| 603 | # pump to ack — a `d` that took the ordinary road would stall for the | 606 | # bound both branches satisfy asserts nothing and only imports flake — the |
| 604 | # whole bound before saying anything. | 607 | # `waitexit 1000` that used to stand here needed 600ms of fixture teardown |
| 605 | # * it says `mux: left the wall`. `detached (session still running)` is | 608 | # under a loaded Debug build to turn this leg red. Pinning "leaves at once" |
| 606 | # what the ordinary road prints, and on a wall with no session that | 609 | # wants a measurement either side of the run with a threshold under 400ms, |
| 607 | # sentence is a lie about the user's shells. | 610 | # which is a different leg. |
| 608 | # | 611 | # |
| 609 | # ...and a third, ahead of both: the empty wall OPENS THE PICKER by itself. | 612 | # ...and, ahead of it: the empty wall OPENS THE PICKER by itself. |
| 610 | # A blank screen is no place to act from, and the list of machines is the | 613 | # A blank screen is no place to act from, and the list of machines is the |
| 611 | # only thing left to act on. Esc there leaves the one-line text standing — | 614 | # only thing left to act on. Esc there leaves the one-line text standing — |
| 612 | # once, so the popup does not come straight back over the answer. | 615 | # once, so the popup does not come straight back over the answer. |
| @@ -634,12 +637,12 @@ expect Enter/c new session 20000 | |||
| 634 | send \x1b | 637 | send \x1b |
| 635 | settle 500 15000 | 638 | settle 500 15000 |
| 636 | send \x1cd | 639 | send \x1cd |
| 637 | waitexit 1000 | 640 | waitexit 10000 |
| 638 | EOF | 641 | EOF |
| 639 | RC=$? | 642 | RC=$? |
| 640 | set -e | 643 | set -e |
| 641 | [ "$RC" -eq 0 ] || { | 644 | [ "$RC" -eq 0 ] || { |
| 642 | echo "e2e FAIL: empty wall: Ctrl-\\ d did not leave within a second (exit $RC):" | 645 | echo "e2e FAIL: empty wall: Ctrl-\\ d did not leave the empty wall (exit $RC):" |
| 643 | cat "$OUT.empc"; echo "--- stderr ---"; cat "$OUT.emcap.err"; exit 1; } | 646 | cat "$OUT.empc"; echo "--- stderr ---"; cat "$OUT.emcap.err"; exit 1; } |
| 644 | # mux's own last word, off its stderr — ptyclient gives the client a real | 647 | # mux's own last word, off its stderr — ptyclient gives the client a real |
| 645 | # stderr file, so this is the process's sentence and not something the | 648 | # stderr file, so this is the process's sentence and not something the |