neovim/test/functional/autocmd/signal_spec.lua

46 lines
1.2 KiB
Lua
Raw Normal View History

local t = require('test.functional.testutil')()
local clear = t.clear
local command = t.command
local eq = t.eq
local fn = t.fn
local next_msg = t.next_msg
local is_os = t.is_os
local skip = t.skip
2024-01-02 19:09:18 -06:00
if skip(is_os('win'), 'Only applies to POSIX systems') then
return
end
local function posix_kill(signame, pid)
2024-01-02 19:09:18 -06:00
os.execute('kill -s ' .. signame .. ' -- ' .. pid .. ' >/dev/null')
end
describe('autocmd Signal', function()
before_each(clear)
it('matches *', function()
command('autocmd Signal * call rpcnotify(1, "foo")')
posix_kill('USR1', fn.getpid())
2024-01-02 19:09:18 -06:00
eq({ 'notification', 'foo', {} }, next_msg())
end)
it('matches SIGUSR1', function()
command('autocmd Signal SIGUSR1 call rpcnotify(1, "foo")')
posix_kill('USR1', fn.getpid())
2024-01-02 19:09:18 -06:00
eq({ 'notification', 'foo', {} }, next_msg())
end)
it('matches SIGWINCH', function()
command('autocmd Signal SIGWINCH call rpcnotify(1, "foo")')
posix_kill('WINCH', fn.getpid())
2024-01-02 19:09:18 -06:00
eq({ 'notification', 'foo', {} }, next_msg())
end)
it('does not match unknown patterns', function()
command('autocmd Signal SIGUSR2 call rpcnotify(1, "foo")')
posix_kill('USR1', fn.getpid())
eq(nil, next_msg(500))
end)
end)