mirror of
https://github.com/neovim/neovim.git
synced 2025-09-06 19:38:20 +00:00
vim-patch:8.1.1047: WINCH signal is not tested
Problem: WINCH signal is not tested.
Solution: Add a test. (Dominique Pelle, closes vim/vim#4158)
db77b84ac2
This commit is contained in:
45
src/nvim/testdir/test_signals.vim
Normal file
45
src/nvim/testdir/test_signals.vim
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
" Test signal handling.
|
||||||
|
|
||||||
|
if !has('unix')
|
||||||
|
finish
|
||||||
|
endif
|
||||||
|
|
||||||
|
source shared.vim
|
||||||
|
|
||||||
|
" Test signal WINCH (window resize signal)
|
||||||
|
func Test_signal_WINCH()
|
||||||
|
throw 'skipped: Nvim cannot avoid terminal resize'
|
||||||
|
let signals = system('kill -l')
|
||||||
|
if signals !~ '\<WINCH\>'
|
||||||
|
" signal WINCH is not available, skip the test.
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
|
||||||
|
" We do not actually want to change the size of the terminal.
|
||||||
|
let old_WS = ''
|
||||||
|
if exists('&t_WS')
|
||||||
|
let old_WS = &t_WS
|
||||||
|
let &t_WS = ''
|
||||||
|
endif
|
||||||
|
|
||||||
|
let old_lines = &lines
|
||||||
|
let old_columns = &columns
|
||||||
|
let new_lines = &lines - 2
|
||||||
|
let new_columns = &columns - 2
|
||||||
|
|
||||||
|
exe 'set lines=' . new_lines
|
||||||
|
exe 'set columns=' . new_columns
|
||||||
|
call assert_equal(new_lines, &lines)
|
||||||
|
call assert_equal(new_columns, &columns)
|
||||||
|
|
||||||
|
" Send signal and wait for signal to be processed.
|
||||||
|
" 'lines' and 'columns' should have been restored
|
||||||
|
" after handing signal WINCH.
|
||||||
|
exe 'silent !kill -s WINCH ' . getpid()
|
||||||
|
call WaitForAssert({-> assert_equal(old_lines, &lines)})
|
||||||
|
call assert_equal(old_columns, &columns)
|
||||||
|
|
||||||
|
if old_WS != ''
|
||||||
|
let &t_WS = old_WS
|
||||||
|
endif
|
||||||
|
endfunc
|
Reference in New Issue
Block a user