5f608210
test: the restored wall does not move after it paints
a73x 2026-08-30 16:55
Commit message
test/e2e_12_panes.sh
| Old | New | ||
|---|---|---|---|
| @@ -665,6 +665,18 @@ _max_rail=$(rail_cols "$OUT.lprcap2" | tail -1) | |||
| 665 | [ "$_max_rail" -ge 43 ] || { | 665 | [ "$_max_rail" -ge 43 ] || { |
| 666 | echo "e2e FAIL: layout-restore: rail column $_max_rail < 43 (resize did not survive)" | 666 | echo "e2e FAIL: layout-restore: rail column $_max_rail < 43 (resize did not survive)" |
| 667 | cat "$OUT.lprcap2"; exit 1; } | 667 | cat "$OUT.lprcap2"; exit 1; } |
| 668 | # The seed's whole point: the restored wall paints its saved cut FIRST | ||
| 669 | # and never moves. Run 2 does no resizing, so a second rail column in | ||
| 670 | # its capture is a re-cut the user watched (the old restore painted the | ||
| 671 | # default cut at ~40, then healed to 43+ two seconds in). The glyph is | ||
| 672 | # matched whole — CUP, reverse video, ONE space, reset — because a label | ||
| 673 | # bar starts with the same CUP+SGR at its pane's own left column, and | ||
| 674 | # `rail_cols`' looser prefix reads the right pane's bar as a rail. | ||
| 675 | _rail_count=$(grep -aoE $'\x1b\[[0-9]+;[0-9]+H\x1b\[7m \x1b\[0m' "$OUT.lprcap2" | | ||
| 676 | sed -E 's/.*;([0-9]+)H.*/\1/' | sort -n | uniq | wc -l) | ||
| 677 | [ "$_rail_count" -eq 1 ] || { | ||
| 678 | echo "e2e FAIL: layout-restore: $_rail_count rail columns in run 2 — the restored wall moved after it painted:" | ||
| 679 | rail_cols "$OUT.lprcap2"; cat "$OUT.lprpc2"; exit 1; } | ||
| 668 | # The marker typed into the restored wall landed in session b — the | 680 | # The marker typed into the restored wall landed in session b — the |
| 669 | # focus was saved on pane b and restore put it back there, not tile 0. | 681 | # focus was saved on pane b and restore put it back there, not tile 0. |
| 670 | timeout 20 "$MUX" a capture --sock "$SOCK59" --session b > "$OUT.lprfb" 2>&1 | 682 | timeout 20 "$MUX" a capture --sock "$SOCK59" --session b > "$OUT.lprfb" 2>&1 |