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.
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 \
test_backspace_opt \
test_backup \
test_balloon \
+ test_balloon_gui \
test_behave \
test_blob \
test_blockedit \
test_autoload.res \
test_backspace_opt.res \
test_balloon.res \
+ test_balloon_gui.res \
test_blob.res \
test_blockedit.res \
test_breakindent.res \
--- /dev/null
+" 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
" 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
" 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()
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
--- /dev/null
+" 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
" 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
" 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)
" 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
" 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)))
source shared.vim
if !CanRunGui()
- throw 'Skipped, cannot run GUI'
+ throw 'Skipped: cannot run GUI'
endif
source setup_gui.vim
source shared.vim
if !CanRunGui()
- throw 'Skipped, cannot run GUI'
+ throw 'Skipped: cannot run GUI'
endif
source setup_gui.vim
" 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
" tests for 'langmap'
-if !has('langmap')
- throw 'Skipped, langmap feature missing'
-endif
+source check.vim
+CheckFeature langmap
func Test_langmap()
new
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
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
" 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().
let s:python = PythonProg()
if s:python == ''
- throw 'Skipped, python program missing'
+ throw 'Skipped: python program missing'
endif
let s:script = 'test_makeencoding.py'
" 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
" 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
" 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
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)
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.
" 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
set encoding=latin1
scriptencoding latin1
-if !has('mksession')
- throw 'Skipped, mksession feature missing'
-endif
+source check.vim
+CheckFeature mksession
source shared.vim
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
" 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.
" 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
" 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: @_" };
" Tests for popup windows
-if !has('textprop')
- throw 'Skipped: textprop feature missing'
-endif
+source check.vim
+CheckFeature textprop
source screendump.vim
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')
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'
" 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]
" 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
" 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.
" 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.
" 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\+'
" 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\+'
" Test for the quickfix feature.
-if !has('quickfix')
- throw 'Skipped, quickfix feature missing'
-endif
+source check.vim
+CheckFeature quickfix
set encoding=utf-8
source shared.vim
if !WorkingClipboard()
- throw 'Skipped, no working clipboard'
+ throw 'Skipped: no working clipboard'
endif
source shared.vim
" 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()
" 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'])
" 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:
" 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)
" Test signal handling.
if !has('unix')
- throw 'Skipped, not on Unix'
+ throw 'Skipped: not on Unix'
endif
source shared.vim
" Test for signs
-if !has('signs')
- throw 'Skipped, signs feature missing'
-endif
+source check.vim
+CheckFeature signs
func Test_sign()
new
" Test spell checking
-if !has('spell')
- throw 'Skipped, spell feature missing'
-endif
+source check.vim
+CheckFeature spell
func TearDown()
set nospell
" 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
" 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.
" 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
" 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
" 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
" Test for textobjects
-if !has('textobjects')
- throw 'Skipped, textobjects feature missing'
-endif
+source check.vim
+CheckFeature textobjects
func CpoM(line, useM, expected)
new
" 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
" Test for timers
-if !has('timers')
- throw 'Skipped, timers feature missing'
-endif
+source check.vim
+CheckFeature timers
source shared.vim
source screendump.vim
" Test for variable tabstops
-if !has("vartabs")
- throw 'Skipped, vartabs feature missing'
-endif
+source check.vim
+CheckFeature vartabs
source view_util.vim
" Test WinBar
-if !has('menu')
- throw 'Skipped, menu feature missing'
-endif
+source check.vim
+CheckFeature menu
source shared.vim
" Test for $HOME on Windows.
if !has('win32')
- throw 'Skipped, not on MS-Windows'
+ throw 'Skipped: not on MS-Windows'
endif
let s:env = {}
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
static int included_patches[] =
{ /* Add new patch number below this line */
+/**/
+ 1544,
/**/
1543,
/**/