0
0
mirror of https://github.com/vim/vim.git synced 2025-07-26 11:04:33 -04:00

patch 8.1.1544: some balloon tests don't run when they can

Problem:    Some balloon tests don't run when they can.
Solution:   Split GUI balloon tests off into a separate file. (Ozaki Kiichi,
            closes #4538)  Change the feature check into a command for
            consistency.
This commit is contained in:
Bram Moolenaar 2019-06-15 17:58:09 +02:00
parent b6e3b88ec8
commit b46fecd345
56 changed files with 164 additions and 181 deletions

View File

@ -120,6 +120,7 @@ SRC_ALL = \
src/testdir/sautest/autoload/*.vim \
src/testdir/runtest.vim \
src/testdir/summarize.vim \
src/testdir/check.vim \
src/testdir/shared.vim \
src/testdir/screendump.vim \
src/testdir/view_util.vim \

View File

@ -65,6 +65,7 @@ NEW_TESTS = \
test_backspace_opt \
test_backup \
test_balloon \
test_balloon_gui \
test_behave \
test_blob \
test_blockedit \
@ -297,6 +298,7 @@ NEW_TESTS_RES = \
test_autoload.res \
test_backspace_opt.res \
test_balloon.res \
test_balloon_gui.res \
test_blob.res \
test_blockedit.res \
test_breakindent.res \

23
src/testdir/check.vim Normal file
View File

@ -0,0 +1,23 @@
" Command to check for the presence of a feature.
command -nargs=1 CheckFeature call CheckFeature(<f-args>)
func CheckFeature(name)
if !has(a:name)
throw 'Skipped: ' .. a:name .. ' feature missing'
endif
endfunc
" Command to check for the presence of a working option.
command -nargs=1 CheckOption call CheckOption(<f-args>)
func CheckOption(name)
if !exists('+' .. a:name)
throw 'Skipped: ' .. a:name .. ' option not supported'
endif
endfunc
" Command to check for the presence of a function.
command -nargs=1 CheckFunction call CheckFunction(<f-args>)
func CheckFunction(name)
if !exists('*' .. a:name)
throw 'Skipped: ' .. a:name .. ' function missing'
endif
endfunc

View File

@ -2,9 +2,8 @@
" NOTE: This just checks if the code works. If you know Arabic please add
" functional tests that check the shaping works with real text.
if !has('arabic')
throw 'Skipped: arabic feature missing'
endif
source check.vim
CheckFeature arabic
source view_util.vim

View File

@ -1,11 +1,12 @@
" Tests for 'balloonevalterm'.
" A few tests only work in the terminal.
if !has('balloon_eval_term')
throw 'Skipped: balloon_eval_term feature missing'
if has('gui_running')
throw 'Skipped: only work in the terminal'
endif
" A few tests only work in the terminal.
if !has('gui_running')
source check.vim
CheckFeature balloon_eval_term
source screendump.vim
if !CanRunVimInTerminal()
@ -56,24 +57,3 @@ func Test_balloon_eval_term_visual()
call StopVimInTerminal(buf)
call delete('XTest_beval_visual')
endfunc
endif
" Tests that only work in the GUI
if has('gui_running')
func Test_balloon_show_gui()
let msg = 'this this this this'
call balloon_show(msg)
call assert_equal(msg, balloon_gettext())
sleep 10m
call balloon_show('')
let msg = 'that that'
call balloon_show(msg)
call assert_equal(msg, balloon_gettext())
sleep 10m
call balloon_show('')
endfunc
endif

View File

@ -0,0 +1,22 @@
" Tests for 'ballooneval' in the GUI.
if !has('gui_running')
throw 'Skipped: only works in the GUI'
endif
source check.vim
CheckFeature balloon_eval
func Test_balloon_show_gui()
let msg = 'this this this this'
call balloon_show(msg)
call assert_equal(msg, balloon_gettext())
sleep 10m
call balloon_show('')
let msg = 'that that'
call balloon_show(msg)
call assert_equal(msg, balloon_gettext())
sleep 10m
call balloon_show('')
endfunc

View File

@ -1,8 +1,7 @@
" Tests for encryption.
if !has('cryptv')
throw 'Skipped, encryption feature missing'
endif
source check.vim
CheckFeature cryptv
func Common_head_only(text)
" This was crashing Vim

View File

@ -1,10 +1,11 @@
" Test for cscope commands.
if !has('cscope') || !has('quickfix')
throw 'Skipped, cscope or quickfix feature missing'
endif
source check.vim
CheckFeature cscope
CheckFeature quickfix
if !executable('cscope')
throw 'Skipped, cscope program missing'
throw 'Skipped: cscope program missing'
endif
func CscopeSetupOrClean(setup)

View File

@ -1,8 +1,7 @@
" Tests for digraphs
if !has("digraphs")
throw 'Skipped, digraphs feature missing'
endif
source check.vim
CheckFeature digraphs
func Put_Dig(chars)
exe "norm! o\<c-k>".a:chars

View File

@ -1,8 +1,7 @@
" test float functions
if !has('float')
throw 'Skipped, float feature missing'
end
source check.vim
CheckFeature float
func Test_abs()
call assert_equal('1.23', string(abs(1.23)))

View File

@ -2,7 +2,7 @@
source shared.vim
if !CanRunGui()
throw 'Skipped, cannot run GUI'
throw 'Skipped: cannot run GUI'
endif
source setup_gui.vim

View File

@ -3,7 +3,7 @@
source shared.vim
if !CanRunGui()
throw 'Skipped, cannot run GUI'
throw 'Skipped: cannot run GUI'
endif
source setup_gui.vim

View File

@ -1,8 +1,7 @@
" Tests for the history functions
if !has('cmdline_hist')
throw 'Skipped, cmdline_hist feature missing'
endif
source check.vim
CheckFeature cmdline_hist
set history=7

View File

@ -1,8 +1,7 @@
" tests for 'langmap'
if !has('langmap')
throw 'Skipped, langmap feature missing'
endif
source check.vim
CheckFeature langmap
func Test_langmap()
new

View File

@ -3,12 +3,9 @@
set encoding=latin1
scriptencoding latin1
if !exists("+linebreak")
throw 'Skipped, linebreak option missing'
endif
if !has("conceal")
throw 'Skipped, conceal feature missing'
endif
source check.vim
CheckOption linebreak
CheckFeature conceal
source view_util.vim

View File

@ -3,15 +3,10 @@
set encoding=utf-8
scriptencoding utf-8
if !exists("+linebreak")
throw 'Skipped, linebreak option missing'
endif
if !has("conceal")
throw 'Skipped, conceal feature missing'
endif
if !has("signs")
throw 'Skipped, signs feature missing'
endif
source check.vim
CheckOption linebreak
CheckFeature conceal
CheckFeature signs
source view_util.vim

View File

@ -1,8 +1,7 @@
" Tests for Lua.
if !has('lua')
throw 'Skipped, lua feature missing'
endif
source check.vim
CheckFeature lua
func TearDown()
" Run garbage collection after each test to exercise luaV_setref().

View File

@ -4,7 +4,7 @@ source shared.vim
let s:python = PythonProg()
if s:python == ''
throw 'Skipped, python program missing'
throw 'Skipped: python program missing'
endif
let s:script = 'test_makeencoding.py'

View File

@ -1,8 +1,7 @@
" Test for matchadd() and conceal feature
if !has('conceal')
throw 'Skipped, conceal feature missing'
endif
source check.vim
CheckFeature conceal
if !has('gui_running') && has('unix')
set term=ansi

View File

@ -1,8 +1,7 @@
" Test for matchadd() and conceal feature using utf-8.
if !has('conceal')
throw 'Skipped, conceal feature missing'
endif
source check.vim
CheckFeature conceal
if !has('gui_running') && has('unix')
set term=ansi

View File

@ -1,15 +1,15 @@
" Tests for memory usage.
if !has('terminal')
throw 'Skipped, terminal feature missing'
endif
source check.vim
CheckFeature terminal
if has('gui_running')
throw 'Skipped, does not work in GUI'
throw 'Skipped: does not work in GUI'
endif
if execute('version') =~# '-fsanitize=[a-z,]*\<address\>'
" Skip tests on Travis CI ASAN build because it's difficult to estimate
" memory usage.
throw 'Skipped, does not work with ASAN'
throw 'Skipped: does not work with ASAN'
endif
source shared.vim
@ -20,7 +20,7 @@ endfunc
if has('win32')
if !executable('wmic')
throw 'Skipped, wmic program missing'
throw 'Skipped: wmic program missing'
endif
func s:memory_usage(pid) abort
let cmd = printf('wmic process where processid=%d get WorkingSetSize', a:pid)
@ -28,13 +28,13 @@ if has('win32')
endfunc
elseif has('unix')
if !executable('ps')
throw 'Skipped, ps program missing'
throw 'Skipped: ps program missing'
endif
func s:memory_usage(pid) abort
return s:pick_nr(system('ps -o rss= -p ' . a:pid))
endfunc
else
throw 'Skipped, not win32 or unix'
throw 'Skipped: not win32 or unix'
endif
" Wait for memory usage to level off.

View File

@ -1,8 +1,7 @@
" Test that the system menu can be loaded.
if !has('menu')
throw 'Skipped, menu feature missing'
endif
source check.vim
CheckFeature menu
func Test_load_menu()
try

View File

@ -3,9 +3,8 @@
set encoding=latin1
scriptencoding latin1
if !has('mksession')
throw 'Skipped, mksession feature missing'
endif
source check.vim
CheckFeature mksession
source shared.vim

View File

@ -3,9 +3,8 @@
set encoding=utf-8
scriptencoding utf-8
if !has('mksession')
throw 'Skipped, mksession feature missing'
endif
source check.vim
CheckFeature mksession
func Test_mksession_utf8()
tabnew

View File

@ -1,14 +1,13 @@
" Test the netbeans interface.
if !has('netbeans_intg')
throw 'Skipped, netbeans_intg feature missing'
endif
source check.vim
CheckFeature netbeans_intg
source shared.vim
let s:python = PythonProg()
if s:python == ''
throw 'Skipped, python program missing'
throw 'Skipped: python program missing'
endif
" Run "testfunc" after sarting the server and stop the server afterwards.

View File

@ -2,10 +2,10 @@
" Bracketed paste only works with "xterm". Not in GUI or Windows console.
if has('win32')
throw 'Skipped, does not work on MS-Windows'
throw 'Skipped: does not work on MS-Windows'
endif
if has('gui_running')
throw 'Skipped, does not work in the GUI'
throw 'Skipped: does not work in the GUI'
endif
set term=xterm

View File

@ -1,8 +1,7 @@
" Tests for Perl interface
if !has('perl')
throw 'Skipped, perl feature missing'
end
source check.vim
CheckFeature perl
" FIXME: RunTest don't see any error when Perl abort...
perl $SIG{__WARN__} = sub { die "Unexpected warnings from perl: @_" };

View File

@ -1,8 +1,7 @@
" Tests for popup windows
if !has('textprop')
throw 'Skipped: textprop feature missing'
endif
source check.vim
CheckFeature textprop
source screendump.vim
@ -515,7 +514,7 @@ endfunc
func Test_popup_time()
if !has('timers')
throw 'Skipped, timer feature not supported'
throw 'Skipped: timer feature not supported'
endif
topleft vnew
call setline(1, 'hello')
@ -1176,7 +1175,7 @@ endfunc
func Test_notifications()
if !has('timers')
throw 'Skipped, timer feature not supported'
throw 'Skipped: timer feature not supported'
endif
if !CanRunVimInTerminal()
throw 'Skipped: cannot make screendumps'

View File

@ -1,8 +1,7 @@
" Test Vim profiler
if !has('profile')
throw 'Skipped, profile feature missing'
endif
source check.vim
CheckFeature profile
func Test_profile_func()
let lines =<< trim [CODE]

View File

@ -1,8 +1,7 @@
" Tests for setting 'buftype' to "prompt"
if !has('channel')
throw 'Skipped, channel feature missing'
endif
source check.vim
CheckFeature channel
source shared.vim
source screendump.vim

View File

@ -1,9 +1,8 @@
" Test for python 2 commands.
" TODO: move tests from test87.in here.
if !has('python')
throw 'Skipped, python feature missing'
endif
source check.vim
CheckFeature python
func Test_pydo()
" Check deleting lines does not trigger ml_get error.

View File

@ -1,9 +1,8 @@
" Test for python 3 commands.
" TODO: move tests from test88.in here.
if !has('python3')
throw 'Skipped, python3 feature missing'
endif
source check.vim
CheckFeature python3
func Test_py3do()
" Check deleting lines does not trigger an ml_get error.

View File

@ -1,9 +1,8 @@
" Test for pyx* commands and functions with Python 2.
set pyx=2
if !has('python')
throw 'Skipped, python feature missing'
endif
source check.vim
CheckFeature python
let s:py2pattern = '^2\.[0-7]\.\d\+'
let s:py3pattern = '^3\.\d\+\.\d\+'

View File

@ -1,9 +1,8 @@
" Test for pyx* commands and functions with Python 3.
set pyx=3
if !has('python3')
throw 'Skipped, python3 feature missing'
endif
source check.vim
CheckFeature python3
let s:py2pattern = '^2\.[0-7]\.\d\+'
let s:py3pattern = '^3\.\d\+\.\d\+'

View File

@ -1,8 +1,7 @@
" Test for the quickfix feature.
if !has('quickfix')
throw 'Skipped, quickfix feature missing'
endif
source check.vim
CheckFeature quickfix
set encoding=utf-8

View File

@ -2,7 +2,7 @@
source shared.vim
if !WorkingClipboard()
throw 'Skipped, no working clipboard'
throw 'Skipped: no working clipboard'
endif
source shared.vim

View File

@ -1,11 +1,8 @@
" Tests for reltime()
if !has('reltime')
throw 'Skipped, reltime feature missing'
endif
if !has('float')
throw 'Skipped, float feature missing'
endif
source check.vim
CheckFeature reltime
CheckFeature float
func Test_reltime()
let now = reltime()

View File

@ -1,8 +1,7 @@
" Tests for ruby interface
if !has('ruby')
throw 'Skipped, ruby feature missing'
end
source check.vim
CheckFeature ruby
func Test_ruby_change_buffer()
call setline(line('$'), ['1 line 1'])

View File

@ -1,11 +1,8 @@
" Tests for the sha256() function.
if !has('cryptv')
throw 'Skipped, cryptv feature missing'
endif
if !exists('*sha256')
throw 'Skipped, sha256 function missing'
endif
source check.vim
CheckFeature cryptv
CheckFunction sha256
function Test_sha256()
" test for empty string:

View File

@ -2,7 +2,7 @@
" Only for use on Win32 systems!
if !has('win32')
throw 'Skipped, not on MS-Windows'
throw 'Skipped: not on MS-Windows'
endif
func TestIt(file, bits, expected)

View File

@ -1,7 +1,7 @@
" Test signal handling.
if !has('unix')
throw 'Skipped, not on Unix'
throw 'Skipped: not on Unix'
endif
source shared.vim

View File

@ -1,8 +1,7 @@
" Test for signs
if !has('signs')
throw 'Skipped, signs feature missing'
endif
source check.vim
CheckFeature signs
func Test_sign()
new

View File

@ -1,8 +1,7 @@
" Test spell checking
if !has('spell')
throw 'Skipped, spell feature missing'
endif
source check.vim
CheckFeature spell
func TearDown()
set nospell

View File

@ -1,8 +1,7 @@
" Test for syntax and syntax iskeyword option
if !has("syntax")
throw 'Skipped, syntax feature missing'
endif
source check.vim
CheckFeature syntax
source view_util.vim
source screendump.vim

View File

@ -1,8 +1,7 @@
" Tests for the Tcl interface.
if !has('tcl')
throw 'Skipped, tcl feature missing'
end
source check.vim
CheckFeature tcl
" Helper function as there is no builtin tcleval() function similar
" to perleval, luaevel(), pyeval(), etc.

View File

@ -2,10 +2,10 @@
" This only works for Unix in a terminal
if has('gui_running')
throw 'Skipped, does not work in the GUI'
throw 'Skipped: does not work in the GUI'
endif
if !has('unix')
throw 'Skipped, not on Unix'
throw 'Skipped: not on Unix'
endif
source shared.vim

View File

@ -1,8 +1,7 @@
" Tests for the terminal window.
if !has('terminal')
throw 'Skipped, terminal feature missing'
endif
source check.vim
CheckFeature terminal
source shared.vim
source screendump.vim

View File

@ -2,9 +2,8 @@
" leaks under valgrind. That is because when fork/exec fails memory is not
" freed. Since the process exists right away it's not a real leak.
if !has('terminal')
throw 'Skipped, terminal feature missing'
endif
source check.vim
CheckFeature terminal
source shared.vim

View File

@ -1,8 +1,7 @@
" Test for textobjects
if !has('textobjects')
throw 'Skipped, textobjects feature missing'
endif
source check.vim
CheckFeature textobjects
func CpoM(line, useM, expected)
new

View File

@ -1,9 +1,8 @@
" Tests for defining text property types and adding text properties to the
" buffer.
if !has('textprop')
throw 'Skipped, textprop feature missing'
endif
source check.vim
CheckFeature textprop
source screendump.vim

View File

@ -1,8 +1,7 @@
" Test for timers
if !has('timers')
throw 'Skipped, timers feature missing'
endif
source check.vim
CheckFeature timers
source shared.vim
source screendump.vim

View File

@ -1,8 +1,7 @@
" Test for variable tabstops
if !has("vartabs")
throw 'Skipped, vartabs feature missing'
endif
source check.vim
CheckFeature vartabs
source view_util.vim

View File

@ -1,8 +1,7 @@
" Test WinBar
if !has('menu')
throw 'Skipped, menu feature missing'
endif
source check.vim
CheckFeature menu
source shared.vim

View File

@ -1,7 +1,7 @@
" Test for $HOME on Windows.
if !has('win32')
throw 'Skipped, not on MS-Windows'
throw 'Skipped: not on MS-Windows'
endif
let s:env = {}

View File

@ -2,7 +2,7 @@
if empty($XXD) && executable('..\xxd\xxd.exe')
let s:xxd_cmd = '..\xxd\xxd.exe'
elseif empty($XXD) || !executable($XXD)
throw 'Skipped, xxd program missing'
throw 'Skipped: xxd program missing'
else
let s:xxd_cmd = $XXD
endif

View File

@ -777,6 +777,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
1544,
/**/
1543,
/**/