aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorDaniel Hahler <git@thequod.de>2019-10-03 08:04:24 +0200
committerGitHub <noreply@github.com>2019-10-03 08:04:24 +0200
commitf96d1e6bc416fe0d1d11321234637695ff0e514e (patch)
treec9cf04d21a9fe8872dcda6e6256f455004e88872 /test
parent30479417e808eac338025dbbfbd3724e158fb344 (diff)
downloadrneovim-f96d1e6bc416fe0d1d11321234637695ff0e514e.tar.gz
rneovim-f96d1e6bc416fe0d1d11321234637695ff0e514e.tar.bz2
rneovim-f96d1e6bc416fe0d1d11321234637695ff0e514e.zip
tui: fix handling of bg response after suspend (#11145)
`tui_terminal_after_startup` gets called right after resuming from suspending (via `Ctrl-z`) already (not delayed as with the startup itself), and would set `waiting_for_bg_response` to false then directly. This results in the terminal response not being processed then anymore, and leaking into Neovim itself. This changes it to try 5 times always, which means that it typically would stop after a few characters of input from the user typically, e.g. with tmux, which does not send a reply. While it might be better to have something based on the time (e.g. only wait for max 1s), this appears to be easier to do. Fixes regression in 8a4ae3d.
Diffstat (limited to 'test')
-rw-r--r--test/unit/tui_spec.lua21
1 files changed, 9 insertions, 12 deletions
diff --git a/test/unit/tui_spec.lua b/test/unit/tui_spec.lua
index 47dbd87b71..e6b5c889d7 100644
--- a/test/unit/tui_spec.lua
+++ b/test/unit/tui_spec.lua
@@ -16,7 +16,7 @@ itp('handle_background_color', function()
local events = globals.main_loop.thread_events
-- Short-circuit when not waiting for response.
- term_input.waiting_for_bg_response = false
+ term_input.waiting_for_bg_response = 0
eq(false, handle_background_color(term_input))
local capacity = 100
@@ -27,9 +27,9 @@ itp('handle_background_color', function()
local term_response = '\027]11;'..colorspace..':'..color..'\007'
rbuffer.rbuffer_write(rbuf, to_cstr(term_response), #term_response)
- term_input.waiting_for_bg_response = true
+ term_input.waiting_for_bg_response = 1
eq(true, handle_background_color(term_input))
- eq(false, term_input.waiting_for_bg_response)
+ eq(0, term_input.waiting_for_bg_response)
eq(1, multiqueue.multiqueue_size(events))
local event = multiqueue.multiqueue_get(events)
@@ -101,10 +101,9 @@ itp('handle_background_color', function()
local term_response = '\027]11;rgba:f/f/f/f' -- missing '\007
rbuffer.rbuffer_write(rbuf, to_cstr(term_response), #term_response)
- term_input.waiting_for_bg_response = true
- eq(true, term_input.waiting_for_bg_response)
+ term_input.waiting_for_bg_response = 1
eq(false, handle_background_color(term_input))
- eq(false, term_input.waiting_for_bg_response)
+ eq(0, term_input.waiting_for_bg_response)
eq(0, multiqueue.multiqueue_size(events))
eq(0, rbuf.size)
@@ -114,10 +113,9 @@ itp('handle_background_color', function()
term_response = '123\027]11;rgba:f/f/f/f\007456'
rbuffer.rbuffer_write(rbuf, to_cstr(term_response), #term_response)
- term_input.waiting_for_bg_response = true
- eq(true, term_input.waiting_for_bg_response)
+ term_input.waiting_for_bg_response = 3
eq(false, handle_background_color(term_input))
- eq(true, term_input.waiting_for_bg_response)
+ eq(2, term_input.waiting_for_bg_response)
eq(0, multiqueue.multiqueue_size(events))
eq(#term_response, rbuf.size)
@@ -128,10 +126,9 @@ itp('handle_background_color', function()
term_response = '\027]11;rgba:f/f/f/f\007456'
rbuffer.rbuffer_write(rbuf, to_cstr(term_response), #term_response)
- term_input.waiting_for_bg_response = true
- eq(true, term_input.waiting_for_bg_response)
+ term_input.waiting_for_bg_response = 1
eq(true, handle_background_color(term_input))
- eq(false, term_input.waiting_for_bg_response)
+ eq(0, term_input.waiting_for_bg_response)
eq(1, multiqueue.multiqueue_size(events))
eq(3, rbuf.size)