patch 8.1.1047: WINCH signal is not tested
Problem: WINCH signal is not tested.
Solution: Add a test. (Dominique Pelle, closes #4158)
diff --git a/src/testdir/Make_all.mak b/src/testdir/Make_all.mak
index c12a59e..8581700 100644
--- a/src/testdir/Make_all.mak
+++ b/src/testdir/Make_all.mak
@@ -224,6 +224,7 @@
test_searchpos \
test_set \
test_sha256 \
+ test_signals \
test_signs \
test_smartindent \
test_sort \
@@ -385,6 +386,7 @@
test_scrollbind.res \
test_search.res \
test_shortpathname.res \
+ test_signals.res \
test_signs.res \
test_smartindent.res \
test_source.res \
diff --git a/src/testdir/test_signals.vim b/src/testdir/test_signals.vim
new file mode 100644
index 0000000..3fea76b
--- /dev/null
+++ b/src/testdir/test_signals.vim
@@ -0,0 +1,44 @@
+" Test signal handling.
+
+if !has('unix')
+ finish
+endif
+
+source shared.vim
+
+" Test signal WINCH (window resize signal)
+func Test_signal_WINCH()
+ 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
diff --git a/src/version.c b/src/version.c
index 3a195e5..cb044bc 100644
--- a/src/version.c
+++ b/src/version.c
@@ -776,6 +776,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1047,
+/**/
1046,
/**/
1045,