# HG changeset patch # User Bram Moolenaar # Date 1553436007 -3600 # Node ID ed1482db2d72e7ebd1010e8ee00c1dc052ce8e5c # Parent 2412e9d043a712f4ad1653e8d971c9dc751e4a1f patch 8.1.1047: WINCH signal is not tested commit https://github.com/vim/vim/commit/db77b84ac2b6373ae4200d47945fc6ca64337e31 Author: Bram Moolenaar Date: Sun Mar 24 14:58:31 2019 +0100 patch 8.1.1047: WINCH signal is not tested Problem: WINCH signal is not tested. Solution: Add a test. (Dominique Pelle, closes https://github.com/vim/vim/issues/4158) diff --git a/src/testdir/Make_all.mak b/src/testdir/Make_all.mak --- a/src/testdir/Make_all.mak +++ b/src/testdir/Make_all.mak @@ -224,6 +224,7 @@ NEW_TESTS = \ test_searchpos \ test_set \ test_sha256 \ + test_signals \ test_signs \ test_smartindent \ test_sort \ @@ -385,6 +386,7 @@ NEW_TESTS_RES = \ 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 --- /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 !~ '\' + " 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 --- a/src/version.c +++ b/src/version.c @@ -776,6 +776,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1047, +/**/ 1046, /**/ 1045,