2024-04-20 08:44:13 -07:00
|
|
|
local t = require('test.testutil')
|
|
|
|
local n = require('test.functional.testnvim')()
|
2024-04-08 02:03:20 -07:00
|
|
|
|
2024-04-20 08:44:13 -07:00
|
|
|
local clear = n.clear
|
|
|
|
local command = n.command
|
2024-04-08 02:03:20 -07:00
|
|
|
local eq = t.eq
|
2024-04-20 08:44:13 -07:00
|
|
|
local fn = n.fn
|
|
|
|
local next_msg = n.next_msg
|
2024-04-08 02:03:20 -07:00
|
|
|
local is_os = t.is_os
|
|
|
|
local skip = t.skip
|
2019-02-03 18:39:05 -07:00
|
|
|
|
2022-11-21 17:13:30 -07:00
|
|
|
if skip(is_os('win'), 'Only applies to POSIX systems') then
|
|
|
|
return
|
|
|
|
end
|
2019-02-03 18:39:05 -07:00
|
|
|
|
|
|
|
local function posix_kill(signame, pid)
|
|
|
|
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")')
|
2024-01-12 10:59:57 -07:00
|
|
|
posix_kill('USR1', fn.getpid())
|
2019-02-03 18:39:05 -07:00
|
|
|
eq({ 'notification', 'foo', {} }, next_msg())
|
|
|
|
end)
|
|
|
|
|
|
|
|
it('matches SIGUSR1', function()
|
|
|
|
command('autocmd Signal SIGUSR1 call rpcnotify(1, "foo")')
|
2024-01-12 10:59:57 -07:00
|
|
|
posix_kill('USR1', fn.getpid())
|
2019-02-03 18:39:05 -07:00
|
|
|
eq({ 'notification', 'foo', {} }, next_msg())
|
|
|
|
end)
|
|
|
|
|
2022-04-10 15:56:08 -07:00
|
|
|
it('matches SIGWINCH', function()
|
|
|
|
command('autocmd Signal SIGWINCH call rpcnotify(1, "foo")')
|
2024-01-12 10:59:57 -07:00
|
|
|
posix_kill('WINCH', fn.getpid())
|
2022-04-10 15:56:08 -07:00
|
|
|
eq({ 'notification', 'foo', {} }, next_msg())
|
|
|
|
end)
|
|
|
|
|
2019-02-03 18:39:05 -07:00
|
|
|
it('does not match unknown patterns', function()
|
|
|
|
command('autocmd Signal SIGUSR2 call rpcnotify(1, "foo")')
|
2024-01-12 10:59:57 -07:00
|
|
|
posix_kill('USR1', fn.getpid())
|
2019-02-03 18:39:05 -07:00
|
|
|
eq(nil, next_msg(500))
|
|
|
|
end)
|
|
|
|
end)
|