view src/testdir/test_signals.vim @ 16192:1ab0d1f7807a v8.1.1101

patch 8.1.1101: signals test may fail in the GUI commit https://github.com/vim/vim/commit/690a905a0199f5ff733e5a12be9ba94ae6043ef4 Author: Bram Moolenaar <Bram@vim.org> Date: Tue Apr 2 21:45:41 2019 +0200 patch 8.1.1101: signals test may fail in the GUI Problem: Signals test may fail in the GUI. Solution: Skip the test for the GUI. (Yee Checng Chin, closes https://github.com/vim/vim/issues/4202)
author Bram Moolenaar <Bram@vim.org>
date Tue, 02 Apr 2019 22:00:05 +0200
parents ed1482db2d72
children a0e98821a2ed
line wrap: on
line source

" Test signal handling.

if !has('unix')
  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 !~ '\<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