julia
eb1b5072 - REPL: Sync the ^C sweep test on the evaluation result (#63295)

Commit
18 days ago
REPL: Sync the ^C sweep test on the evaluation result (#63295) * REPL: Sync the ^C sweep test on the evaluation result In julia-pr build 2541 this test hung at the `Cancelled all in-flight work.` read and was hard-killed after the 900s timeout, on both i686-linux-gnu and aarch64-linux-gnu: https://buildkite.com/julialang/julia-pr/builds/2541#01a0aee0-fc2e-43c8-a079-4161fe774fa9 The sweep had in fact thrown - a `CancellationTokenSource` walk reached freed memory, since fixed by #63234 - and the keymap logs and swallows that, so the message never came and the read blocked forever. The test widened that window. Its stand-down step types `1` and reads until `julia> `, but the `^C` handler that armed the sweep ends in `transition(s, :reset); refresh_line(s)`, so a prompt is already sitting unread in the pipe and the read matches that instead, before `1` has been processed at all. The step meant to stand the arm down is never waited for, and everything after it races the evaluation. Looping the block under `-t1` hit the freed-memory error 5 times in 600 iterations as written, and once in 900 with the read below. Communicate through a result value, as the rest of the block does; the concatenation keeps the needle out of LineEdit's echo of the typed characters. Assisted-by: Claude Code (Opus 5) Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * REPL: Reword the double-^C test comments Review of this test found its comments hard to read: they lean on invented vocabulary ("arms the sweep", "stands the arm down", "session epoch") instead of saying what each key press does. Describe the behaviour in plain terms, and spell out why the awaited results are written as concatenations. The marker expression is renamed to match. Assisted-by: Claude Code (Fable 5.1) Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Author
Parents
Loading