To: vim_dev@googlegroups.com Subject: Patch 8.1.1212 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.1.1212 Problem: Signal PWR is not tested. Solution: Test that PWR updates the swap file. (Dominique Pelle, closes #4312) Files: src/testdir/test_signals.vim *** ../vim-8.1.1211/src/testdir/test_signals.vim 2019-04-02 21:45:38.260326643 +0200 --- src/testdir/test_signals.vim 2019-04-27 17:30:53.055172109 +0200 *************** *** 4,21 **** finish endif - if has('gui_running') - " Signals only work for terminals, and won't work for GUI. - 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 --- 4,20 ---- finish endif source shared.vim + " Check whether a signal is available on this system. + func HasSignal(signal) + let signals = system('kill -l') + return signals =~# '\<' .. a:signal .. '\>' + endfunc + " Test signal WINCH (window resize signal) func Test_signal_WINCH() ! if has('gui_running') || !HasSignal('WINCH') return endif *************** *** 31,45 **** 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) --- 30,44 ---- 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) *************** *** 47,49 **** --- 46,77 ---- let &t_WS = old_WS endif endfunc + + " Test signal PWR, which should update the swap file. + func Test_signal_PWR() + if !HasSignal('PWR') + return + endif + + " Set a very large 'updatetime' and 'updatecount', so that we can be sure + " that swap file is updated as a result of sending PWR signal, and not + " because of exceeding 'updatetime' or 'updatecount' when changing buffer. + set updatetime=100000 updatecount=100000 + new Xtest_signal_PWR + let swap_name = swapname('%') + call setline(1, '123') + preserve + let swap_content = readfile(swap_name, 'b') + + " Update the buffer and check that the swap file is not yet updated, + " since we set 'updatetime' and 'updatecount' to large values. + call setline(1, 'abc') + call assert_equal(swap_content, readfile(swap_name, 'b')) + + " Sending PWR signal should update the swap file. + exe 'silent !kill -s PWR ' .. getpid() + call WaitForAssert({-> assert_notequal(swap_content, readfile(swap_name, 'b'))}) + + bwipe! + set updatetime& updatecount& + endfunc *** ../vim-8.1.1211/src/version.c 2019-04-27 15:05:04.528816589 +0200 --- src/version.c 2019-04-27 17:31:56.794872746 +0200 *************** *** 769,770 **** --- 769,772 ---- { /* Add new patch number below this line */ + /**/ + 1212, /**/ -- CUSTOMER: You're not fooling anyone y'know. Look, isn't there something you can do? DEAD PERSON: I feel happy... I feel happy. [whop] CUSTOMER: Ah, thanks very much. MORTICIAN: Not at all. See you on Thursday. CUSTOMER: Right. The Quest for the Holy Grail (Monty Python) /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///