From d1b7a39fc36cdc76eab12a4ac80c9ee1c2ad37f7 Mon Sep 17 00:00:00 2001 From: "Justin M. Keyes" Date: Sat, 11 Jul 2026 14:45:10 +0200 Subject: [PATCH] test: unreliable "TUI split sequences within 'ttimeoutlen'" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit FAILED ...Xtest_xdg_terminal/test/functional/terminal/tui_spec.lua @ 1200: TUI split sequences work within 'ttimeoutlen' time .../runner/work/neovim/neovim/test/functional/ui/screen.lua:774: Row 1 did not match. Expected: |*^ | |{100:~ }| |{100:~ }| |{100:~ }| |*{3:[No Name] }| |{5:-- INSERT --} | |{5:-- TERMINAL --} | Actual: |*�^ | |{100:~ }| |{100:~ }| |{100:~ }| |*{3:[No Name] [+] }| |{5:-- INSERT --} | |{5:-- TERMINAL --} | --- test/functional/terminal/tui_spec.lua | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/test/functional/terminal/tui_spec.lua b/test/functional/terminal/tui_spec.lua index 63d600c1f8..34e7b12bc6 100644 --- a/test/functional/terminal/tui_spec.lua +++ b/test/functional/terminal/tui_spec.lua @@ -1199,7 +1199,9 @@ describe('TUI', function() it("split sequences work within 'ttimeoutlen' time", function() poke_both_eventloop() -- Make sure startup requests have finished. - child_session:request('nvim_set_option_value', 'ttimeoutlen', 250, {}) + -- The split sequences below are always completed, so this timeout never actually fires; it only + -- needs to exceed the inter-byte gap, which balloons on slow CI. + child_session:request('nvim_set_option_value', 'ttimeoutlen', n.load_adjust(1000), {}) feed_data('i') screen:expect([[ ^ | @@ -1236,7 +1238,11 @@ describe('TUI', function() {5:-- ^X mode (^]^D^E^F^I^K^L^N^O^P^Rs^U^V^Y)} | {5:-- TERMINAL --} | ]]) - -- is sent after 'ttimeoutlen' exceeds. + + -- is sent after 'ttimeoutlen' exceeds. Use a small value so the sleep below reliably exceeds it. + child_session:request('nvim_set_option_value', 'ttimeoutlen', 250, {}) + poke_both_eventloop() + feed_data('\027') screen:expect_unchanged(false, 25) vim.uv.sleep(225)