xref: /vim-8.2.3635/src/testdir/check.vim (revision c5a8fdc4)
1source shared.vim
2source term_util.vim
3
4command -nargs=1 MissingFeature throw 'Skipped: ' .. <args> .. ' feature missing'
5
6" Command to check for the presence of a feature.
7command -nargs=1 CheckFeature call CheckFeature(<f-args>)
8func CheckFeature(name)
9  if !has(a:name, 1)
10    throw 'Checking for non-existent feature ' .. a:name
11  endif
12  if !has(a:name)
13    MissingFeature a:name
14  endif
15endfunc
16
17" Command to check for the presence of a working option.
18command -nargs=1 CheckOption call CheckOption(<f-args>)
19func CheckOption(name)
20  if !exists('&' .. a:name)
21    throw 'Checking for non-existent option ' .. a:name
22  endif
23  if !exists('+' .. a:name)
24    throw 'Skipped: ' .. a:name .. ' option not supported'
25  endif
26endfunc
27
28" Command to check for the presence of a function.
29command -nargs=1 CheckFunction call CheckFunction(<f-args>)
30func CheckFunction(name)
31  if !exists('*' .. a:name)
32    throw 'Skipped: ' .. a:name .. ' function missing'
33  endif
34endfunc
35
36" Command to check for the presence of an Ex command
37command -nargs=1 CheckCommand call CheckCommand(<f-args>)
38func CheckCommand(name)
39  if !exists(':' .. a:name)
40    throw 'Skipped: ' .. a:name .. ' command not supported'
41  endif
42endfunc
43
44" Command to check for the presence of a shell command
45command -nargs=1 CheckExecutable call CheckExecutable(<f-args>)
46func CheckExecutable(name)
47  if !executable(a:name)
48    throw 'Skipped: ' .. a:name .. ' program not executable'
49  endif
50endfunc
51
52" Command to check for running on MS-Windows
53command CheckMSWindows call CheckMSWindows()
54func CheckMSWindows()
55  if !has('win32')
56    throw 'Skipped: only works on MS-Windows'
57  endif
58endfunc
59
60" Command to check for NOT running on MS-Windows
61command CheckNotMSWindows call CheckNotMSWindows()
62func CheckNotMSWindows()
63  if has('win32')
64    throw 'Skipped: does not work on MS-Windows'
65  endif
66endfunc
67
68" Command to check for running on Unix
69command CheckUnix call CheckUnix()
70func CheckUnix()
71  if !has('unix')
72    throw 'Skipped: only works on Unix'
73  endif
74endfunc
75
76" Command to check for not running on a BSD system.
77" TODO: using this checks should not be needed
78command CheckNotBSD call CheckNotBSD()
79func CheckNotBSD()
80  if has('bsd')
81    throw 'Skipped: does not work on BSD'
82  endif
83endfunc
84
85" Command to check that making screendumps is supported.
86" Caller must source screendump.vim
87command CheckScreendump call CheckScreendump()
88func CheckScreendump()
89  if !CanRunVimInTerminal()
90    throw 'Skipped: cannot make screendumps'
91  endif
92endfunc
93
94" Command to check that we can Run Vim in a terminal window
95command CheckRunVimInTerminal call CheckRunVimInTerminal()
96func CheckRunVimInTerminal()
97  if !CanRunVimInTerminal()
98    throw 'Skipped: cannot run Vim in a terminal window'
99  endif
100endfunc
101
102" Command to check that we can run the GUI
103command CheckCanRunGui call CheckCanRunGui()
104func CheckCanRunGui()
105  if !has('gui') || ($DISPLAY == "" && !has('gui_running'))
106    throw 'Skipped: cannot start the GUI'
107  endif
108endfunc
109
110" Command to check that we are using the GUI
111command CheckGui call CheckGui()
112func CheckGui()
113  if !has('gui_running')
114    throw 'Skipped: only works in the GUI'
115  endif
116endfunc
117
118" Command to check that not currently using the GUI
119command CheckNotGui call CheckNotGui()
120func CheckNotGui()
121  if has('gui_running')
122    throw 'Skipped: only works in the terminal'
123  endif
124endfunc
125
126" Command to check that test is not running as root
127command CheckNotRoot call CheckNotRoot()
128func CheckNotRoot()
129  if IsRoot()
130    throw 'Skipped: cannot run test as root'
131  endif
132endfunc
133