diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-03-23 20:54:32 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-03-23 20:54:32 +0100 |
commit | bad8804cdd739a5a7321b8411ad7fd4f45741b54 (patch) | |
tree | 5ebb0a983c9f0523f3c2a502f116955e8b67c670 | |
parent | ab505b1a4868b3e21356f95a275537551700c955 (diff) | |
download | vim-git-bad8804cdd739a5a7321b8411ad7fd4f45741b54.tar.gz |
patch 8.2.0433: INT signal not properly testedv8.2.0433
Problem: INT signal not properly tested.
Solution: Add a test. Also clean up some unnecessary lines. (Dominique
Pelle, closes #5828)
-rw-r--r-- | src/testdir/test_display.vim | 2 | ||||
-rw-r--r-- | src/testdir/test_ex_mode.vim | 1 | ||||
-rw-r--r-- | src/testdir/test_excmd.vim | 1 | ||||
-rw-r--r-- | src/testdir/test_messages.vim | 2 | ||||
-rw-r--r-- | src/testdir/test_signals.vim | 33 | ||||
-rw-r--r-- | src/version.c | 2 |
6 files changed, 34 insertions, 7 deletions
diff --git a/src/testdir/test_display.vim b/src/testdir/test_display.vim index 199a25f1f..f439bfe27 100644 --- a/src/testdir/test_display.vim +++ b/src/testdir/test_display.vim @@ -192,8 +192,6 @@ func Test_edit_long_file_name() call VerifyScreenDump(buf, 'Test_long_file_name_1', {}) - call term_sendkeys(buf, ":q\<cr>") - " clean up call StopVimInTerminal(buf) call delete(longName) diff --git a/src/testdir/test_ex_mode.vim b/src/testdir/test_ex_mode.vim index e50e6a57f..a72486b37 100644 --- a/src/testdir/test_ex_mode.vim +++ b/src/testdir/test_ex_mode.vim @@ -92,7 +92,6 @@ func Test_Ex_substitute() call term_sendkeys(buf, ":vi\<CR>") call WaitForAssert({-> assert_match('foo bar', term_getline(buf, 1))}, 1000) - call term_sendkeys(buf, ":q!\n") call StopVimInTerminal(buf) endfunc diff --git a/src/testdir/test_excmd.vim b/src/testdir/test_excmd.vim index 5dbb701b1..27fdd8835 100644 --- a/src/testdir/test_excmd.vim +++ b/src/testdir/test_excmd.vim @@ -255,7 +255,6 @@ func Test_confirm_cmd() call WaitForAssert({-> assert_match('^\[Y\]es, (N)o, (C)ancel: *$', \ term_getline(buf, 20))}, 1000) call term_sendkeys(buf, "N") - call term_sendkeys(buf, ":quit\n") call StopVimInTerminal(buf) call delete('foo') diff --git a/src/testdir/test_messages.vim b/src/testdir/test_messages.vim index 2f8e2faf9..23e7735cb 100644 --- a/src/testdir/test_messages.vim +++ b/src/testdir/test_messages.vim @@ -265,7 +265,6 @@ func Test_message_more() call term_sendkeys(buf, 'q') call WaitForAssert({-> assert_equal('100', term_getline(buf, 5))}) - call term_sendkeys(buf, ":q!\n") call StopVimInTerminal(buf) endfunc @@ -295,7 +294,6 @@ func Test_ask_yesno() call WaitForAssert({-> assert_equal('y1', term_getline(buf, 1))}) call WaitForAssert({-> assert_equal('y2', term_getline(buf, 2))}) - call term_sendkeys(buf, ":q!\n") call StopVimInTerminal(buf) endfunc diff --git a/src/testdir/test_signals.vim b/src/testdir/test_signals.vim index cc1c3fb50..7a2be899f 100644 --- a/src/testdir/test_signals.vim +++ b/src/testdir/test_signals.vim @@ -1,6 +1,8 @@ " Test signal handling. source check.vim +source term_util.vim + CheckUnix source shared.vim @@ -50,7 +52,7 @@ endfunc " Test signal PWR, which should update the swap file. func Test_signal_PWR() if !HasSignal('PWR') - return + throw 'Skipped: PWR signal not supported' endif " Set a very large 'updatetime' and 'updatecount', so that we can be sure @@ -75,3 +77,32 @@ func Test_signal_PWR() bwipe! set updatetime& updatecount& 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 diff --git a/src/version.c b/src/version.c index 236e6f73f..b8552ed92 100644 --- a/src/version.c +++ b/src/version.c @@ -739,6 +739,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 433, +/**/ 432, /**/ 431, |