aboutsummaryrefslogtreecommitdiff
path: root/test/functional/autocmd/signal_spec.lua
blob: d4f65cc61d4df8d4d521f243f5aefc24c57adc4a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
local helpers = require('test.functional.helpers')(after_each)

local clear = helpers.clear
local command = helpers.command
local eq = helpers.eq
local funcs = helpers.funcs
local next_msg = helpers.next_msg

if helpers.pending_win32(pending) then
  -- Only applies to POSIX systems.
  return
end

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")')
    posix_kill('USR1', funcs.getpid())
    eq({'notification', 'foo', {}}, next_msg())
  end)

  it('matches SIGUSR1', function()
    command('autocmd Signal SIGUSR1 call rpcnotify(1, "foo")')
    posix_kill('USR1', funcs.getpid())
    eq({'notification', 'foo', {}}, next_msg())
  end)

  it('matches SIGWINCH', function()
    command('autocmd Signal SIGWINCH call rpcnotify(1, "foo")')
    posix_kill('WINCH', funcs.getpid())
    eq({'notification', 'foo', {}}, next_msg())
  end)

  it('does not match unknown patterns', function()
    command('autocmd Signal SIGUSR2 call rpcnotify(1, "foo")')
    posix_kill('USR1', funcs.getpid())
    eq(nil, next_msg(500))
  end)
end)