neovim/test/old/testdir/check.vim

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

218 lines
5.8 KiB
VimL
Raw Normal View History

source shared.vim
source term_util.vim
command -nargs=1 MissingFeature throw 'Skipped: ' .. <args> .. ' feature missing'
" Command to check for the presence of a feature.
command -nargs=1 CheckFeature call CheckFeature(<f-args>)
func CheckFeature(name)
" if !has(a:name, 1)
" throw 'Checking for non-existent feature ' .. a:name
" endif
if !has(a:name)
MissingFeature a:name
endif
endfunc
" Command to check for the absence of a feature.
command -nargs=1 CheckNotFeature call CheckNotFeature(<f-args>)
func CheckNotFeature(name)
" if !has(a:name, 1)
" throw 'Checking for non-existent feature ' .. a:name
" endif
if has(a:name)
throw 'Skipped: ' .. a:name .. ' feature present'
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 'Checking for non-existent option ' .. a:name
endif
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
" Command to check for the presence of an Ex command
command -nargs=1 CheckCommand call CheckCommand(<f-args>)
func CheckCommand(name)
if !exists(':' .. a:name)
throw 'Skipped: ' .. a:name .. ' command not supported'
endif
endfunc
" Command to check for the presence of a shell command
command -nargs=1 CheckExecutable call CheckExecutable(<f-args>)
func CheckExecutable(name)
if !executable(a:name)
throw 'Skipped: ' .. a:name .. ' program not executable'
endif
endfunc
vim-patch:8.2.0665: wrongly assuming Python executable is called "python" Problem: Wrongly assuming Python executable is called "python". Solution: Use detected python command. (Ken Takata, closes vim/vim#6016) Also use CheckFunction if possible. https://github.com/vim/vim/commit/a161cb5dddd6d374899e46fde834ce9ba5c80c0b CheckPython() is used only in test_terminal.vim as of patch 8.2.1794. test_terminal.vim is no-opt in Neovim. I ported it only for merging Vim patches. N/A patches for version.c: vim-patch:8.1.2239: CI fails when running tests without building Vim Problem: CI fails when running tests without building Vim. Solution: Skip creating doc tags if the execute does not exist. https://github.com/vim/vim/commit/1a577433ac77b74a965476799619ad0fb2676d31 vim-patch:8.1.2242: creating docs tags uses user preferences Problem: Creating docs tags uses user preferences. (Tony Mechelynck) Solution: Add "--clean". https://github.com/vim/vim/commit/70def98a957620cc325d1ab6ee35f13187598693 vim-patch:8.1.2247: "make vimtags" does not work in runtime/doc Problem: "make vimtags" does not work in runtime/doc. Solution: Test existence with "which" instead of "test -x". (Ken Takata) https://github.com/vim/vim/commit/e890b9f5dd3ae76e301b2df7f3151366acaba5dc vim-patch:8.1.2249: "make vimtags" does not print any message Problem: "make vimtags" does not print any message. Solution: Add a message that the tags have been updated. https://github.com/vim/vim/commit/d047840ce4b770a86bacab0d62e72d0f61a2b8ab vim-patch:8.1.2253: using "which" to check for an executable is not reliable Problem: Using "which" to check for an executable is not reliable. Solution: Use "command -v" instead. Also exit with error code when generating tags has an error. (closes vim/vim#5174) https://github.com/vim/vim/commit/ad4de52510d5b4a949c0c9e25b5d5333744820b3 vim-patch:8.2.0354: Python 3.9 does not define _Py_DEC_REFTOTAL Problem: Python 3.9 does not define _Py_DEC_REFTOTAL. (Zdenek Dohnal) Solution: Remove it, it was only for debugging. https://github.com/vim/vim/commit/a65bb53514a1af1ec0dc5c4831dfaef69f139a48 vim-patch:8.2.0603: configure does not detect moonjit Problem: Configure does not detect moonjit. Solution: Add check for moonjit. (Shlomi Fish, closes vim/vim#5947) https://github.com/vim/vim/commit/f49e5640821d8ef752fb50d99edcf40bb62a4d4d vim-patch:8.2.0609: configure does not detect moonjit correctly Problem: Configure does not detect moonjit correctly. Solution: Double the brackets. (Ozaki Kiichi) https://github.com/vim/vim/commit/ad4dc83389931a0354c3691b42f99a5bb98c766f vim-patch:8.2.1570: configure check for dirfd() does not work on HPUX Problem: Configure check for dirfd() does not work on HPUX. (Michael Osipov) Solution: Use AC_TRY_LINK instead of AC_TRY_COMPILE. (closes vim/vim#6838) https://github.com/vim/vim/commit/9d8bfae50fdaf5f5ec6307c60ebd1fad0927c6be vim-patch:8.2.1790: MS-Windows with Python: crash when executed from Vifm Problem: MS-Windows with Python: crash when executed from Vifm. Solution: Use NUL instead of CONIN. (Ken Takata, closes vim/vim#7061, closes vim/vim#7053) https://github.com/vim/vim/commit/794771cfd83af2a0d1926bed301e784447e7290b vim-patch:8.2.1792: Configure does not recognize Racket 6.1+ Problem: Configure does not recognize Racket 6.1+. Solution: Add a check for "rktio". (closes vim/vim#7062) https://github.com/vim/vim/commit/588d241d44fc25ad4c5a635ee4fdeafdfcee0fde
2020-10-03 14:05:09 -07:00
" Command to check for the presence of python. Argument should have been
" obtained with PythonProg()
func CheckPython(name)
if a:name == ''
throw 'Skipped: python command not available'
endif
endfunc
" Command to check for running on MS-Windows
command CheckMSWindows call CheckMSWindows()
func CheckMSWindows()
if !has('win32')
throw 'Skipped: only works on MS-Windows'
endif
endfunc
" Command to check for NOT running on MS-Windows
command CheckNotMSWindows call CheckNotMSWindows()
func CheckNotMSWindows()
if has('win32')
throw 'Skipped: does not work on MS-Windows'
endif
endfunc
" Command to check for running on Unix
command CheckUnix call CheckUnix()
func CheckUnix()
if !has('unix')
throw 'Skipped: only works on Unix'
endif
endfunc
" Command to check for running on Linux
command CheckLinux call CheckLinux()
func CheckLinux()
if !has('linux')
throw 'Skipped: only works on Linux'
endif
endfunc
" Command to check that making screendumps is supported.
" Caller must source screendump.vim
command CheckScreendump call CheckScreendump()
func CheckScreendump()
if !CanRunVimInTerminal()
throw 'Skipped: cannot make screendumps'
endif
endfunc
" Command to check that we can Run Vim in a terminal window
command CheckRunVimInTerminal call CheckRunVimInTerminal()
func CheckRunVimInTerminal()
if !CanRunVimInTerminal()
throw 'Skipped: cannot run Vim in a terminal window'
endif
endfunc
" Command to check that we can run the GUI
command CheckCanRunGui call CheckCanRunGui()
func CheckCanRunGui()
if !has('gui') || ($DISPLAY == "" && !has('gui_running'))
throw 'Skipped: cannot start the GUI'
endif
endfunc
" Command to Check for an environment variable
command -nargs=1 CheckEnv call CheckEnv(<f-args>)
func CheckEnv(name)
if empty(eval('$' .. a:name))
throw 'Skipped: Environment variable ' .. a:name .. ' is not set'
endif
endfunc
" Command to check that we are using the GUI
command CheckGui call CheckGui()
func CheckGui()
if !has('gui_running')
throw 'Skipped: only works in the GUI'
endif
endfunc
" Command to check that not currently using the GUI
command CheckNotGui call CheckNotGui()
func CheckNotGui()
if has('gui_running')
throw 'Skipped: only works in the terminal'
endif
endfunc
" Command to check that test is not running as root
command CheckNotRoot call CheckNotRoot()
func CheckNotRoot()
if IsRoot()
throw 'Skipped: cannot run test as root'
endif
endfunc
" Command to check that the current language is English
command CheckEnglish call CheckEnglish()
func CheckEnglish()
if v:lang != "C" && v:lang !~ '^[Ee]n'
throw 'Skipped: only works in English language environment'
endif
endfunc
" Command to check for not running under ASAN
command CheckNotAsan call CheckNotAsan()
func CheckNotAsan()
if execute('verbose version') =~# '-fsanitize=[a-z,]*\<address\>'
throw 'Skipped: does not work with ASAN'
endif
endfunc
" Command to check for not running under valgrind
command CheckNotValgrind call CheckNotValgrind()
func CheckNotValgrind()
if RunningWithValgrind()
throw 'Skipped: does not work well with valgrind'
endif
endfunc
" Command to check for X11 based GUI
command CheckX11BasedGui call CheckX11BasedGui()
func CheckX11BasedGui()
if !g:x11_based_gui
throw 'Skipped: requires X11 based GUI'
endif
endfunc
" Command to check for satisfying any of the conditions.
" e.g. CheckAnyOf Feature:bsd Feature:sun Linux
command -nargs=+ CheckAnyOf call CheckAnyOf(<f-args>)
func CheckAnyOf(...)
let excp = []
for arg in a:000
try
exe 'Check' .. substitute(arg, ':', ' ', '')
return
catch /^Skipped:/
let excp += [substitute(v:exception, '^Skipped:\s*', '', '')]
endtry
endfor
throw 'Skipped: ' .. join(excp, '; ')
endfunc
" Command to check for satisfying all of the conditions.
" e.g. CheckAllOf Unix Gui Option:ballooneval
command -nargs=+ CheckAllOf call CheckAllOf(<f-args>)
func CheckAllOf(...)
for arg in a:000
exe 'Check' .. substitute(arg, ':', ' ', '')
endfor
endfunc
" vim: shiftwidth=2 sts=2 expandtab