summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-03-23 20:54:32 +0100
committerBram Moolenaar <Bram@vim.org>2020-03-23 20:54:32 +0100
commitbad8804cdd739a5a7321b8411ad7fd4f45741b54 (patch)
tree5ebb0a983c9f0523f3c2a502f116955e8b67c670
parentab505b1a4868b3e21356f95a275537551700c955 (diff)
downloadvim-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.vim2
-rw-r--r--src/testdir/test_ex_mode.vim1
-rw-r--r--src/testdir/test_excmd.vim1
-rw-r--r--src/testdir/test_messages.vim2
-rw-r--r--src/testdir/test_signals.vim33
-rw-r--r--src/version.c2
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,