Files
neovim/test/old/testdir/check.vim
Justin M. Keyes 9c55674ba9 test(oldtest): skip 2 tests on s390x
Failures:
    From test_plugin_tar.vim:
    Found errors in Test_tar_evil():
    command line..script …/test/old/testdir/runtest.vim[659]..function RunTheTest[61]..Test_tar_evil line 12: Pattern '/etc/ax-pwn' does not match '/usr/bin/tar: Removing leading `/'' from member names'
    Caught exception in Test_tar_evil(): Vim(read):E484: Can't open file usr/bin/tar: Removing leading `/' from member names @ command line..script …/test/old/testdir/runtest.vim[659]..function
    RunTheTest[61]..Test_tar_evil[22]..<SNR>10_TarBrowseSelect[27]..tar#Read, line 114
    Found errors in Test_tar_path_traversal_with_nowrapscan():
    command line..script …/test/old/testdir/runtest.vim[659]..function RunTheTest[61]..Test_tar_path_traversal_with_nowrapscan[1]..<SNR>8_CopyFile line 2: Can't copy samples/evil.tar
    command line..script …/test/old/testdir/runtest.vim[659]..function RunTheTest[61]..Test_tar_path_traversal_with_nowrapscan line 14: Pattern '/etc/ax-pwn' does not match '/usr/bin/tar: Removing leading `/'' from
    member names'
    From test_search_stat.vim:
    Found errors in Test_search_stat_option():
    Run 1, 00:17:24 - 00:17:26 in  2.405525 seconds:
    command line..script …/test/old/testdir/runtest.vim[659]..function RunTheTest[61]..Test_search_stat_option line 31: Pattern 'fo\\*\\\\(bar\\\\?\\\\)\\\\?\\s\\+\\[2/>999\\]' does not match '\n/fo*\\(bar\\?\\)\\?\[
    occurs 63 times]\n\n/fo*\\(bar\\?\\)\\?\[  occurs 57 times][?/??]'
    command line..script …/test/old/testdir/runtest.vim[659]..function RunTheTest[61]..Test_search_stat_option line 32: Expected {'incomplete': 2, 'total': 1000} but got {'incomplete': 1, 'total': 980} - 3 equal items
    omitted
    command line..script …/test/old/testdir/runtest.vim[659]..function RunTheTest[61]..Test_search_stat_option line 52: Expected {'exact_match': 1, 'current': 27992, 'incomplete': 0, 'total': 28000} but got
    {'exact_match': 0, 'current': 18044, 'incomplete': 1, 'total': 18044} - 1 equal item omitted
    command line..script …/test/old/testdir/runtest.vim[659]..function RunTheTest[61]..Test_search_stat_option line 55: Expected {'incomplete': 0, 'total': 28000} but got {'incomplete': 1, 'total': 18143} - 3 equal
    items omitted
    command line..script …/test/old/testdir/runtest.vim[659]..function RunTheTest[61]..Test_search_stat_option line 65: Expected {'total': 28000, 'incomplete': 0} but got {'total': 18168, 'incomplete': 1} - 3 equal
    items omitted
    command line..script …/test/old/testdir/runtest.vim[659]..function RunTheTest[61]..Test_search_stat_option line 68: Expected {'exact_match': 1, 'current': 27991, 'total': 28000, 'incomplete': 0} but got
    {'exact_match': 0, 'current': 18167, 'total': 18167, 'incomplete': 1} - 1 equal item omitted
    Run 2, 00:17:28 - 00:17:32 in  3.437275 seconds:
    command line..script …/test/old/testdir/runtest.vim[700]..function RunTheTest[61]..Test_search_stat_option line 31: Pattern 'fo\\*\\\\(bar\\\\?\\\\)\\\\?\\s\\+\\[2/>999\\]' does not match '\n/fo*\\(bar\\?\\)\\?\[
    occurs 63 times]\n\n/fo*\\(bar\\?\\)\\?\[  occurs 57 times][?/??]'
    command line..script …/test/old/testdir/runtest.vim[700]..function RunTheTest[61]..Test_search_stat_option line 32: Expected {'incomplete': 2, 'total': 1000} but got {'incomplete': 1, 'total': 991} - 3 equal items
    omitted
    Run 3, 00:17:36 - 00:17:39 in  3.408885 seconds:
    command line..script …/test/old/testdir/runtest.vim[700]..function RunTheTest[61]..Test_search_stat_option line 31: Pattern 'fo\\*\\\\(bar\\\\?\\\\)\\\\?\\s\\+\\[2/>999\\]' does not match '\n/fo*\\(bar\\?\\)\\?\[
    occurs 63 times]\n\n/fo*\\(bar\\?\\)\\?\[  occurs 57 times][?/??]'
    command line..script …/test/old/testdir/runtest.vim[700]..function RunTheTest[61]..Test_search_stat_option line 32: Expected {'incomplete': 2, 'total': 1000} but got {'incomplete': 1, 'total': 994} - 3 equal items
    omitted
    Flaky test failed too often, giving up
2026-03-29 13:36:56 +02:00

287 lines
8.0 KiB
VimL

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
" 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 for not running on a BSD system.
command CheckNotBSD call CheckNotBSD()
func CheckNotBSD()
if has('bsd')
throw 'Skipped: does not work on BSD'
endif
endfunc
" Command to check for not running on OpenBSD
command CheckNotOpenBSD call CheckNotOpenBSD()
func CheckNotOpenBSD()
if has('bsd')
let uname = trim(system('uname'))
if uname == 'OpenBSD'
throw 'Skipped: does not work on OpenBSD'
endif
endif
endfunc
" Command to check for not running on a MacOS
command CheckNotMac call CheckNotMac()
func CheckNotMac()
if has('mac')
throw 'Skipped: does not work on MacOS'
endif
endfunc
" Command to check for not running on a MacOS M1 system.
command CheckNotMacM1 call CheckNotMacM1()
func CheckNotMacM1()
if has('mac') && system('uname -a') =~ '\<arm64\>'
throw 'Skipped: does not work on MacOS M1'
endif
endfunc
func SetupWindowSizeToForVisualDumps()
" The dumps used as reference in these tests were created with a terminal
" width of 75 columns. The vim window that uses the remainder of the GUI
" window width must be at least 3 columns. In theory this means we need the
" GUI shell to provide 78+ columns. However the GTK3 resize logic is flaky,
" sometimes resulting in X11 Configure events that are narrower than
" expected by a number of pixels equal to 2 column widths. Therefore
" setting 80 columns ensures that the GUI shell can still provide 78+
" columns. This is very likely papering over a GTK3 resize bug but one that
" has existed for a very long time. Establishing this workaround is meant to
" get the GTK3 code working under CI so that we can focus on removing this
" over the long term.
if &columns != 80
set columns=80
endif
" Without resetting lines, some GTK3 resize events can carry over between
" tests, which invalidate assumptions in the scrollbar offset calculations.
if &lines != 25
set lines=25
endif
endfunc
" Command to check that making screendumps is supported.
" Caller must source screendump.vim
command CheckScreendump call CheckScreendump()
func CheckScreendump()
let g:check_screendump_called = v:true
if !CanRunVimInTerminal()
throw 'Skipped: cannot make screendumps'
endif
if has('gui_running')
call SetupWindowSizeToForVisualDumps()
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 not running on s390x (too slow for some timing tests)
command CheckNotS390 call CheckNotS390()
func CheckNotS390()
if has('unix') && trim(system('uname -m')) == 's390x'
throw 'Skipped: does not work well on s390x'
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