mirror of
https://github.com/neovim/neovim.git
synced 2025-09-06 11:28:22 +00:00
vim-patch:8.2.0433: INT signal not properly tested
Problem: INT signal not properly tested.
Solution: Add a test. Also clean up some unnecessary lines. (Dominique
Pelle, closes vim/vim#5828)
bad8804cdd
This commit is contained in:
@@ -195,8 +195,6 @@ func Test_edit_long_file_name()
|
|||||||
|
|
||||||
call VerifyScreenDump(buf, 'Test_long_file_name_1', {})
|
call VerifyScreenDump(buf, 'Test_long_file_name_1', {})
|
||||||
|
|
||||||
call term_sendkeys(buf, ":q\<cr>")
|
|
||||||
|
|
||||||
" clean up
|
" clean up
|
||||||
call StopVimInTerminal(buf)
|
call StopVimInTerminal(buf)
|
||||||
call delete(longName)
|
call delete(longName)
|
||||||
|
@@ -97,7 +97,6 @@ func Test_Ex_substitute()
|
|||||||
call term_sendkeys(buf, ":vi\<CR>")
|
call term_sendkeys(buf, ":vi\<CR>")
|
||||||
call WaitForAssert({-> assert_match('foo bar', term_getline(buf, 1))}, 1000)
|
call WaitForAssert({-> assert_match('foo bar', term_getline(buf, 1))}, 1000)
|
||||||
|
|
||||||
call term_sendkeys(buf, ":q!\n")
|
|
||||||
call StopVimInTerminal(buf)
|
call StopVimInTerminal(buf)
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
@@ -53,7 +53,7 @@ endfunc
|
|||||||
" Test signal PWR, which should update the swap file.
|
" Test signal PWR, which should update the swap file.
|
||||||
func Test_signal_PWR()
|
func Test_signal_PWR()
|
||||||
if !HasSignal('PWR')
|
if !HasSignal('PWR')
|
||||||
return
|
throw 'Skipped: PWR signal not supported'
|
||||||
endif
|
endif
|
||||||
|
|
||||||
" Set a very large 'updatetime' and 'updatecount', so that we can be sure
|
" Set a very large 'updatetime' and 'updatecount', so that we can be sure
|
||||||
@@ -79,6 +79,35 @@ func Test_signal_PWR()
|
|||||||
set updatetime& updatecount&
|
set updatetime& updatecount&
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
" Test signal INT. Handler sets got_int. It should be like typing CTRL-C.
|
||||||
|
func Test_signal_INT()
|
||||||
|
if !HasSignal('INT')
|
||||||
|
throw 'Skipped: INT signal not supported'
|
||||||
|
endif
|
||||||
|
|
||||||
|
" Skip the rest of the test when running with valgrind as signal INT is not
|
||||||
|
" received somehow by Vim when running with valgrind.
|
||||||
|
let cmd = GetVimCommand()
|
||||||
|
if cmd =~ 'valgrind'
|
||||||
|
throw 'Skipped: cannot test signal INT with valgrind'
|
||||||
|
endif
|
||||||
|
|
||||||
|
if !CanRunVimInTerminal()
|
||||||
|
throw 'Skipped: cannot run vim in terminal'
|
||||||
|
endif
|
||||||
|
let buf = RunVimInTerminal('', {'rows': 6})
|
||||||
|
let pid_vim = term_getjob(buf)->job_info().process
|
||||||
|
|
||||||
|
" Check that an endless loop in Vim is interrupted by signal INT.
|
||||||
|
call term_sendkeys(buf, ":while 1 | endwhile\n")
|
||||||
|
call WaitForAssert({-> assert_equal(':while 1 | endwhile', term_getline(buf, 6))})
|
||||||
|
exe 'silent !kill -s INT ' .. pid_vim
|
||||||
|
call term_sendkeys(buf, ":call setline(1, 'INTERUPTED')\n")
|
||||||
|
call WaitForAssert({-> assert_equal('INTERUPTED', term_getline(buf, 1))})
|
||||||
|
|
||||||
|
call StopVimInTerminal(buf)
|
||||||
|
endfunc
|
||||||
|
|
||||||
" Test a deadly signal.
|
" Test a deadly signal.
|
||||||
"
|
"
|
||||||
" There are several deadly signals: SISEGV, SIBUS, SIGTERM...
|
" There are several deadly signals: SISEGV, SIBUS, SIGTERM...
|
||||||
|
Reference in New Issue
Block a user