Skip to content

test(zsh): add interactive E2E harness#57

Merged
lemtoc merged 2 commits into
mainfrom
test/24-zsh-e2e
Jul 10, 2026
Merged

test(zsh): add interactive E2E harness#57
lemtoc merged 2 commits into
mainfrom
test/24-zsh-e2e

Conversation

@lemtoc

@lemtoc lemtoc commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

Issue

Fixes #24

Changes

  • Add a zpty harness that drives a real interactive zsh -f session through Nova startup, async git redraws, and vi keymap changes.
  • Verify that SIGKILLing the shell removes both its worker process and runtime directory.
  • Run the harness in a dedicated Ubuntu CI job and document the local command.

Verification

  • tests/zsh_e2e.zsh reports all four checks as successful.
  • The git branch appears through a later ZLE redraw after the initial prompt.
  • Killing the child shell leaves no worker process or runtime directory.

Additional Notes

  • The harness uses zsh's built-in zpty module and adds no Rust dependency.
  • It clears inherited XDG_RUNTIME_DIR so hosted runners keep worker files in the isolated fixture TMPDIR.
  • The corrected harness passed 10 consecutive runs with a simulated hosted-runner XDG_RUNTIME_DIR.
  • Local zsh-bench (16 runs): first prompt 29.1 ms, command lag 0.478 ms, input lag 0.516 ms.
  • No additional manual zsh verification is required because the harness itself drives a real ZLE session.

- Drive zsh -f through zpty to cover startup, async git redraws, and vi keymaps
- Verify SIGKILLed shells release their worker process and runtime directory
- Run the harness in a dedicated CI job and document local usage

Co-authored-by: Codex GPT-5.6 Sol Ultra <noreply@openai.com>
@github-actions

github-actions Bot commented Jul 10, 2026

Copy link
Copy Markdown

Nova zsh-bench

metric median previous delta status green yellow orange red
first prompt lag 33.02 ms 29.79 ms +3.23 ms yellow 25 ms 50 ms 100 ms > 100 ms
first command lag 33.27 ms 29.95 ms +3.32 ms green 75 ms 150 ms 300 ms > 300 ms
command lag 1.14 ms 0.58 ms +0.56 ms green 5 ms 10 ms 20 ms > 20 ms
input lag 0.42 ms 0.58 ms -0.16 ms green 10 ms 20 ms 40 ms > 40 ms

Previous is the stored benchmark for 9ce8bf3.
Delta is current median minus previous median. Lower is faster.

Red status fails CI. Values are medians from zsh-bench raw iterations.

88803ce

Workflow run

- Clear inherited XDG_RUNTIME_DIR before starting the child shell
- Keep worker runtime files under the harness temporary directory on hosted runners

Co-authored-by: Codex GPT-5.6 Sol Ultra <noreply@openai.com>
@lemtoc lemtoc merged commit 7a85cb1 into main Jul 10, 2026
10 checks passed
@lemtoc lemtoc deleted the test/24-zsh-e2e branch July 10, 2026 12:55
@lemtoc lemtoc self-assigned this Jul 10, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

test(zsh): add an interactive zsh E2E harness (zpty)

1 participant