aboutsummaryrefslogtreecommitdiff
path: root/test/functional/core/job_spec.lua
diff options
context:
space:
mode:
authorGregory Anders <greg@gpanders.com>2025-01-01 18:43:16 -0600
committerGitHub <noreply@github.com>2025-01-01 18:43:16 -0600
commitefe1732c6fd802ca8fdccc1f0a26be87427f1e70 (patch)
tree470313a5c2e9dc968edbd43ce7fd890198c0d5ec /test/functional/core/job_spec.lua
parent6dc0eb9f41e6453fe003dd3a28c58b701fd003c9 (diff)
downloadrneovim-efe1732c6fd802ca8fdccc1f0a26be87427f1e70.tar.gz
rneovim-efe1732c6fd802ca8fdccc1f0a26be87427f1e70.tar.bz2
rneovim-efe1732c6fd802ca8fdccc1f0a26be87427f1e70.zip
fix(jobs): do not block UI when jobwait() doesn't block (#31803)
Diffstat (limited to 'test/functional/core/job_spec.lua')
-rw-r--r--test/functional/core/job_spec.lua33
1 files changed, 33 insertions, 0 deletions
diff --git a/test/functional/core/job_spec.lua b/test/functional/core/job_spec.lua
index 952437d80e..e833b5127d 100644
--- a/test/functional/core/job_spec.lua
+++ b/test/functional/core/job_spec.lua
@@ -973,6 +973,39 @@ describe('jobs', function()
feed('<CR>')
fn.jobstop(api.nvim_get_var('id'))
end)
+
+ it('does not set UI busy with zero timeout #31712', function()
+ local screen = Screen.new(50, 6)
+ command([[let g:id = jobstart(['sleep', '0.3'])]])
+ local busy = 0
+ screen._handle_busy_start = (function(orig)
+ return function()
+ orig(screen)
+ busy = busy + 1
+ end
+ end)(screen._handle_busy_start)
+ source([[
+ func PrintAndPoll()
+ echon "aaa\nbbb"
+ call jobwait([g:id], 0)
+ echon "\nccc"
+ endfunc
+ ]])
+ feed_command('call PrintAndPoll()')
+ screen:expect {
+ grid = [[
+ |
+ {3: }|
+ aaa |
+ bbb |
+ ccc |
+ {6:Press ENTER or type command to continue}^ |
+ ]],
+ }
+ feed('<CR>')
+ fn.jobstop(api.nvim_get_var('id'))
+ eq(0, busy)
+ end)
end)
pending('exit event follows stdout, stderr', function()