test: value of has("gui_running") after :restart (#34439)

This commit is contained in:
zeertzjq
2025-06-11 10:41:56 +08:00
committed by GitHub
parent 37d6ac8a15
commit fb7a234f01

View File

@@ -217,6 +217,12 @@ describe('TUI :restart', function()
screen:expect(s)
end
-- The value of has("gui_running") should be 0 before and after :restart.
local function gui_running_check()
tt.feed_data(':echo "GUI Running: " .. has("gui_running")\013')
screen:expect({ any = 'GUI Running: 0' })
end
local s0 = [[
^ |
{4:~ }|*3
@@ -225,6 +231,7 @@ describe('TUI :restart', function()
{3:-- TERMINAL --} |
]]
screen_expect(s0)
gui_running_check()
local server_session --[[@type test.Session]]
local server_pid --[[@type any]]
@@ -255,6 +262,7 @@ describe('TUI :restart', function()
tt.feed_data(':restart\013')
screen_expect(s0)
restart_pid_check()
gui_running_check()
tt.feed_data('ithis will be removed\027')
screen_expect([[
@@ -281,20 +289,13 @@ describe('TUI :restart', function()
tt.feed_data(':restart!\013')
screen_expect(s0)
restart_pid_check()
tt.feed_data(':echo\n')
screen_expect([[
^ |
{4:~ }|*3
{5:[No Name] }|
|
{3:-- TERMINAL --} |
]])
gui_running_check()
-- No --listen conflict when server exit is delayed.
feed_data(':lua vim.schedule(function() vim.wait(100) end); vim.cmd.restart()\n')
screen_expect(s0)
restart_pid_check()
gui_running_check()
screen:try_resize(60, 6)
screen_expect([[
@@ -315,6 +316,7 @@ describe('TUI :restart', function()
{3:-- TERMINAL --} |
]])
restart_pid_check()
gui_running_check()
end)
end)
@@ -3762,6 +3764,9 @@ describe('TUI client', function()
]]
screen_server:expect(s0)
feed_data(':echo "GUI Running: " .. has("gui_running")\013')
screen_server:expect({ any = 'GUI Running: 0' })
set_session(client_super)
local screen_client = tt.setup_child_nvim({
'--remote-ui',
@@ -3770,6 +3775,10 @@ describe('TUI client', function()
})
screen_client:expect(s0)
-- XXX: should has("gui_running") be 1 when there is a remote TUI?
feed_data(':echo "GUI Running: " .. has("gui_running")\013')
screen_client:expect({ any = 'GUI Running: 1' })
-- grid smaller than containing terminal window is cleared properly
feed_data(":call setline(1,['a'->repeat(&columns)]->repeat(&lines))\n")
feed_data('0:set lines=3\n')
@@ -3794,6 +3803,9 @@ describe('TUI client', function()
]])
screen_server:expect({ any = vim.pesc('[Process exited 0]') })
feed_data(':echo "GUI Running: " .. has("gui_running")\013')
screen_client:expect({ any = 'GUI Running: 0' })
feed_data(':q!\n')
server_super:close()
@@ -3840,6 +3852,7 @@ describe('TUI client', function()
eq(1, api.nvim_get_vvar('shell_error'))
command('bwipe!')
-- Start another remote client to attach to the same server.
fn.jobstart({ nvim_prog, '--remote-ui', '--server', server_pipe }, { term = true })
command('startinsert')
screen_client:expect([[
@@ -3849,10 +3862,15 @@ describe('TUI client', function()
{3:-- INSERT --} |
{3:-- TERMINAL --} |
]])
feed_data('\027')
-- XXX: should has("gui_running") be 1 when there is a remote TUI?
feed_data(':echo "GUI Running: " .. has("gui_running")\013')
screen_client:expect({ any = 'GUI Running: 1' })
-- Run :restart! on the client.
-- The client should start a new server while the original server should exit.
feed_data('\027:restart!\n')
feed_data(':restart!\n')
screen_client:expect([[
^ |
{4:~ }|*4
@@ -3863,6 +3881,9 @@ describe('TUI client', function()
eq(nil, vim.uv.fs_stat(server_pipe))
end)
feed_data(':echo "GUI Running: " .. has("gui_running")\013')
screen_client:expect({ any = 'GUI Running: 0' })
client_super:close()
server:close()
if is_os('mac') then