Frame terminal reports across input reads
ci / test (push) Canceled after 0s
ci / fuzz-smoke (push) Canceled after 0s
ci / macos-client (macos-aarch64, macos-14) (push) Canceled after 0s
ci / macos-client (macos-x86_64, macos-13) (push) Canceled after 0s
ci / windows-client (push) Canceled after 0s
ci / package-release (linux-x86_64, ubuntu-latest, , , ) (push) Canceled after 0s
ci / package-release (macos-aarch64, macos-14, , , ) (push) Canceled after 0s
ci / package-release (macos-x86_64, macos-13, , , ) (push) Canceled after 0s
ci / package-release (windows-aarch64, windows-latest, aarch64, windows, aarch64-pc-windows-msvc) (push) Canceled after 0s
ci / package-release (windows-x86_64, windows-latest, , , ) (push) Canceled after 0s
ci / remote-bench (push) Canceled after 0s
ci / publish-gitea-release (push) Canceled after 0s

This commit is contained in:
DuProcess
2026-07-17 22:01:02 -04:00
parent f8693f08b5
commit eb0c1db837
2 changed files with 509 additions and 262 deletions
+501 -261
View File
File diff suppressed because it is too large Load Diff
+8 -1
View File
@@ -16,6 +16,8 @@ const SESSION_KEY: [u8; 32] = [0x91; 32];
const INPUT_BYTES: &[u8] = concat!( const INPUT_BYTES: &[u8] = concat!(
"\x1b[A", "\x1b[A",
"\x1b[B", "\x1b[B",
"\x1b[I",
"\x1b[O",
"\x1b[200~", "\x1b[200~",
"paste-λ-界", "paste-λ-界",
"\x1b[201~", "\x1b[201~",
@@ -149,6 +151,10 @@ fn native_client_terminal_round_trip_is_platform_complete() {
contains(&output, b"\x1b[?1006h"), contains(&output, b"\x1b[?1006h"),
"SGR mouse mode was not preserved: {output:?}" "SGR mouse mode was not preserved: {output:?}"
); );
assert!(
contains(&output, b"\x1b[?1004h"),
"focus-report mode was not preserved: {output:?}"
);
assert!( assert!(
contains(&output, b"\x1b[?25h"), contains(&output, b"\x1b[?25h"),
"terminal cleanup did not restore the cursor: {output:?}" "terminal cleanup did not restore the cursor: {output:?}"
@@ -565,6 +571,7 @@ fn run_fake_terminal_server(socket: UdpSocket, observations: mpsc::Sender<Server
"\x1b[?1049h", "\x1b[?1049h",
"\x1b[?1003h", "\x1b[?1003h",
"\x1b[?1006h", "\x1b[?1006h",
"\x1b[?1004h",
"\x1b[?2004h", "\x1b[?2004h",
"\x1b[2J\x1b[H", "\x1b[2J\x1b[H",
"DOSH_PARITY_READY" "DOSH_PARITY_READY"
@@ -603,7 +610,7 @@ fn run_fake_terminal_server(socket: UdpSocket, observations: mpsc::Sender<Server
PacketKind::Frame, PacketKind::Frame,
20, 20,
16, 16,
b"\x1b[?1003l\x1b[?1006l\x1b[?1049lDOSH_PARITY_DONE", b"\x1b[?1003l\x1b[?1006l\x1b[?1004l\x1b[?1049lDOSH_PARITY_DONE",
false, false,
true, true,
); );