14a6fcf80SBram Moolenaar" Tests for the exists() function 2*6d91bcb4SBram Moolenaar 34a6fcf80SBram Moolenaarfunc Test_exists() 44a6fcf80SBram Moolenaar augroup myagroup 54a6fcf80SBram Moolenaar autocmd! BufEnter *.my echo "myfile edited" 64a6fcf80SBram Moolenaar autocmd! FuncUndefined UndefFun exec "fu UndefFun()\nendfu" 74a6fcf80SBram Moolenaar augroup END 84a6fcf80SBram Moolenaar set rtp+=./sautest 94a6fcf80SBram Moolenaar 104a6fcf80SBram Moolenaar " valid autocmd group 114a6fcf80SBram Moolenaar call assert_equal(1, exists('#myagroup')) 124a6fcf80SBram Moolenaar " valid autocmd group with garbage 134a6fcf80SBram Moolenaar call assert_equal(0, exists('#myagroup+b')) 144a6fcf80SBram Moolenaar " Valid autocmd group and event 154a6fcf80SBram Moolenaar call assert_equal(1, exists('#myagroup#BufEnter')) 164a6fcf80SBram Moolenaar " Valid autocmd group, event and pattern 174a6fcf80SBram Moolenaar call assert_equal(1, exists('#myagroup#BufEnter#*.my')) 184a6fcf80SBram Moolenaar " Valid autocmd event 194a6fcf80SBram Moolenaar call assert_equal(1, exists('#BufEnter')) 204a6fcf80SBram Moolenaar " Valid autocmd event and pattern 214a6fcf80SBram Moolenaar call assert_equal(1, exists('#BufEnter#*.my')) 224a6fcf80SBram Moolenaar " Non-existing autocmd group or event 234a6fcf80SBram Moolenaar call assert_equal(0, exists('#xyzagroup')) 244a6fcf80SBram Moolenaar " Non-existing autocmd group and valid autocmd event 254a6fcf80SBram Moolenaar call assert_equal(0, exists('#xyzagroup#BufEnter')) 264a6fcf80SBram Moolenaar " Valid autocmd group and event with no matching pattern 274a6fcf80SBram Moolenaar call assert_equal(0, exists('#myagroup#CmdwinEnter')) 284a6fcf80SBram Moolenaar " Valid autocmd group and non-existing autocmd event 294a6fcf80SBram Moolenaar call assert_equal(0, exists('#myagroup#xyzacmd')) 304a6fcf80SBram Moolenaar " Valid autocmd group and event and non-matching pattern 314a6fcf80SBram Moolenaar call assert_equal(0, exists('#myagroup#BufEnter#xyzpat')) 324a6fcf80SBram Moolenaar " Valid autocmd event and non-matching pattern 334a6fcf80SBram Moolenaar call assert_equal(0, exists('#BufEnter#xyzpat')) 344a6fcf80SBram Moolenaar " Empty autocmd group, event and pattern 354a6fcf80SBram Moolenaar call assert_equal(0, exists('###')) 364a6fcf80SBram Moolenaar " Empty autocmd group and event or empty event and pattern 374a6fcf80SBram Moolenaar call assert_equal(0, exists('##')) 384a6fcf80SBram Moolenaar " Valid autocmd event 394a6fcf80SBram Moolenaar call assert_equal(1, exists('##FileReadCmd')) 404a6fcf80SBram Moolenaar " Non-existing autocmd event 414a6fcf80SBram Moolenaar call assert_equal(0, exists('##MySpecialCmd')) 424a6fcf80SBram Moolenaar 434a6fcf80SBram Moolenaar " Existing and working option (long form) 444a6fcf80SBram Moolenaar call assert_equal(1, exists('&textwidth')) 454a6fcf80SBram Moolenaar " Existing and working option (short form) 464a6fcf80SBram Moolenaar call assert_equal(1, exists('&tw')) 474a6fcf80SBram Moolenaar " Existing and working option with garbage 484a6fcf80SBram Moolenaar call assert_equal(0, exists('&tw-')) 494a6fcf80SBram Moolenaar " Global option 504a6fcf80SBram Moolenaar call assert_equal(1, exists('&g:errorformat')) 514a6fcf80SBram Moolenaar " Local option 524a6fcf80SBram Moolenaar call assert_equal(1, exists('&l:errorformat')) 534a6fcf80SBram Moolenaar " Negative form of existing and working option (long form) 544a6fcf80SBram Moolenaar call assert_equal(0, exists('&nojoinspaces')) 554a6fcf80SBram Moolenaar " Negative form of existing and working option (short form) 564a6fcf80SBram Moolenaar call assert_equal(0, exists('&nojs')) 574a6fcf80SBram Moolenaar " Non-existing option 584a6fcf80SBram Moolenaar call assert_equal(0, exists('&myxyzoption')) 594a6fcf80SBram Moolenaar 604a6fcf80SBram Moolenaar " Existing and working option (long form) 614a6fcf80SBram Moolenaar call assert_equal(1, exists('+incsearch')) 624a6fcf80SBram Moolenaar " Existing and working option with garbage 634a6fcf80SBram Moolenaar call assert_equal(0, exists('+incsearch!1')) 644a6fcf80SBram Moolenaar " Existing and working option (short form) 654a6fcf80SBram Moolenaar call assert_equal(1, exists('+is')) 664a6fcf80SBram Moolenaar " Existing option that is hidden. 674a6fcf80SBram Moolenaar call assert_equal(0, exists('+autoprint')) 684a6fcf80SBram Moolenaar 694a6fcf80SBram Moolenaar " Existing environment variable 704a6fcf80SBram Moolenaar let $EDITOR_NAME = 'Vim Editor' 714a6fcf80SBram Moolenaar call assert_equal(1, exists('$EDITOR_NAME')) 720e05de46SBram Moolenaar if has('unix') 730e05de46SBram Moolenaar " ${name} environment variables are supported only on Unix-like systems 740e05de46SBram Moolenaar call assert_equal(1, exists('${VIM}')) 750e05de46SBram Moolenaar endif 764a6fcf80SBram Moolenaar " Non-existing environment variable 774a6fcf80SBram Moolenaar call assert_equal(0, exists('$NON_ENV_VAR')) 784a6fcf80SBram Moolenaar 794a6fcf80SBram Moolenaar " Valid internal function 804a6fcf80SBram Moolenaar call assert_equal(1, exists('*bufnr')) 814a6fcf80SBram Moolenaar " Valid internal function with () 824a6fcf80SBram Moolenaar call assert_equal(1, exists('*bufnr()')) 834a6fcf80SBram Moolenaar " Non-existing internal function 844a6fcf80SBram Moolenaar call assert_equal(0, exists('*myxyzfunc')) 854a6fcf80SBram Moolenaar " Valid internal function with garbage 864a6fcf80SBram Moolenaar call assert_equal(0, exists('*bufnr&6')) 874a6fcf80SBram Moolenaar " Valid user defined function 884a6fcf80SBram Moolenaar call assert_equal(1, exists('*Test_exists')) 894a6fcf80SBram Moolenaar " Non-existing user defined function 904a6fcf80SBram Moolenaar call assert_equal(0, exists('*MyxyzFunc')) 914a6fcf80SBram Moolenaar " Function that may be created by FuncUndefined event 924a6fcf80SBram Moolenaar call assert_equal(0, exists('*UndefFun')) 934a6fcf80SBram Moolenaar " Function that may be created by script autoloading 944a6fcf80SBram Moolenaar call assert_equal(0, exists('*footest#F')) 954a6fcf80SBram Moolenaar 9615c47602SBram Moolenaar call assert_equal(has('float'), exists('*acos')) 9715c47602SBram Moolenaar call assert_equal(1, exists('?acos')) 9815c47602SBram Moolenaar call assert_equal(has('win32'), exists('*debugbreak')) 9915c47602SBram Moolenaar call assert_equal(1, exists('?debugbreak')) 10015c47602SBram Moolenaar 1014a6fcf80SBram Moolenaar " Valid internal command (full match) 1024a6fcf80SBram Moolenaar call assert_equal(2, exists(':edit')) 1034a6fcf80SBram Moolenaar " Valid internal command (full match) with garbage 1044a6fcf80SBram Moolenaar call assert_equal(0, exists(':edit/a')) 1054a6fcf80SBram Moolenaar " Valid internal command (partial match) 1064a6fcf80SBram Moolenaar call assert_equal(1, exists(':q')) 107f0cee197SBram Moolenaar " Valid internal command with a digit 108f0cee197SBram Moolenaar call assert_equal(2, exists(':2match')) 1094a6fcf80SBram Moolenaar " Non-existing internal command 1104a6fcf80SBram Moolenaar call assert_equal(0, exists(':invalidcmd')) 111f0cee197SBram Moolenaar " Internal command with a count 112f0cee197SBram Moolenaar call assert_equal(0, exists(':3buffer')) 1134a6fcf80SBram Moolenaar 1144a6fcf80SBram Moolenaar " User defined command (full match) 1154a6fcf80SBram Moolenaar command! MyCmd :echo 'My command' 1164a6fcf80SBram Moolenaar call assert_equal(2, exists(':MyCmd')) 1174a6fcf80SBram Moolenaar " User defined command (partial match) 1184a6fcf80SBram Moolenaar command! MyOtherCmd :echo 'Another command' 1194a6fcf80SBram Moolenaar call assert_equal(3, exists(':My')) 1204a6fcf80SBram Moolenaar 1214a6fcf80SBram Moolenaar " Command modifier 1224a6fcf80SBram Moolenaar call assert_equal(2, exists(':rightbelow')) 1234a6fcf80SBram Moolenaar 1244a6fcf80SBram Moolenaar " Non-existing user defined command (full match) 1254a6fcf80SBram Moolenaar delcommand MyCmd 1264a6fcf80SBram Moolenaar call assert_equal(0, exists(':MyCmd')) 1274a6fcf80SBram Moolenaar 1284a6fcf80SBram Moolenaar " Non-existing user defined command (partial match) 1294a6fcf80SBram Moolenaar delcommand MyOtherCmd 1304a6fcf80SBram Moolenaar call assert_equal(0, exists(':My')) 1314a6fcf80SBram Moolenaar 1324a6fcf80SBram Moolenaar " Valid local variable 1334a6fcf80SBram Moolenaar let local_var = 1 1344a6fcf80SBram Moolenaar call assert_equal(1, exists('local_var')) 1354a6fcf80SBram Moolenaar " Valid local variable with garbage 1364a6fcf80SBram Moolenaar call assert_equal(0, exists('local_var%n')) 1374a6fcf80SBram Moolenaar " Non-existing local variable 1384a6fcf80SBram Moolenaar unlet local_var 1394a6fcf80SBram Moolenaar call assert_equal(0, exists('local_var')) 1404a6fcf80SBram Moolenaar 1414a6fcf80SBram Moolenaar " Non-existing autoload variable that may be autoloaded 1424a6fcf80SBram Moolenaar call assert_equal(0, exists('footest#x')) 1434a6fcf80SBram Moolenaar 1444a6fcf80SBram Moolenaar " Valid local list 1454a6fcf80SBram Moolenaar let local_list = ["blue", "orange"] 1464a6fcf80SBram Moolenaar call assert_equal(1, exists('local_list')) 1474a6fcf80SBram Moolenaar " Valid local list item 1484a6fcf80SBram Moolenaar call assert_equal(1, exists('local_list[1]')) 1494a6fcf80SBram Moolenaar " Valid local list item with garbage 1504a6fcf80SBram Moolenaar call assert_equal(0, exists('local_list[1]+5')) 1514a6fcf80SBram Moolenaar " Invalid local list item 1524a6fcf80SBram Moolenaar call assert_equal(0, exists('local_list[2]')) 1534a6fcf80SBram Moolenaar " Non-existing local list 1544a6fcf80SBram Moolenaar unlet local_list 1554a6fcf80SBram Moolenaar call assert_equal(0, exists('local_list')) 1564a6fcf80SBram Moolenaar " Valid local dictionary 1574a6fcf80SBram Moolenaar let local_dict = {"xcord":100, "ycord":2} 1584a6fcf80SBram Moolenaar call assert_equal(1, exists('local_dict')) 1594a6fcf80SBram Moolenaar " Non-existing local dictionary 1604a6fcf80SBram Moolenaar unlet local_dict 1614a6fcf80SBram Moolenaar call assert_equal(0, exists('local_dict')) 1624a6fcf80SBram Moolenaar " Existing local curly-brace variable 1634a6fcf80SBram Moolenaar let str = "local" 1644a6fcf80SBram Moolenaar let curly_{str}_var = 1 1654a6fcf80SBram Moolenaar call assert_equal(1, exists('curly_{str}_var')) 1664a6fcf80SBram Moolenaar " Non-existing local curly-brace variable 1674a6fcf80SBram Moolenaar unlet curly_{str}_var 1684a6fcf80SBram Moolenaar call assert_equal(0, exists('curly_{str}_var')) 1694a6fcf80SBram Moolenaar 1704a6fcf80SBram Moolenaar " Existing global variable 1714a6fcf80SBram Moolenaar let g:global_var = 1 1724a6fcf80SBram Moolenaar call assert_equal(1, exists('g:global_var')) 1734a6fcf80SBram Moolenaar " Existing global variable with garbage 1744a6fcf80SBram Moolenaar call assert_equal(0, exists('g:global_var-n')) 1754a6fcf80SBram Moolenaar " Non-existing global variable 1764a6fcf80SBram Moolenaar unlet g:global_var 1774a6fcf80SBram Moolenaar call assert_equal(0, exists('g:global_var')) 1784a6fcf80SBram Moolenaar " Existing global list 1794a6fcf80SBram Moolenaar let g:global_list = ["blue", "orange"] 1804a6fcf80SBram Moolenaar call assert_equal(1, exists('g:global_list')) 1814a6fcf80SBram Moolenaar " Non-existing global list 1824a6fcf80SBram Moolenaar unlet g:global_list 1834a6fcf80SBram Moolenaar call assert_equal(0, exists('g:global_list')) 1844a6fcf80SBram Moolenaar " Existing global dictionary 1854a6fcf80SBram Moolenaar let g:global_dict = {"xcord":100, "ycord":2} 1864a6fcf80SBram Moolenaar call assert_equal(1, exists('g:global_dict')) 1874a6fcf80SBram Moolenaar " Non-existing global dictionary 1884a6fcf80SBram Moolenaar unlet g:global_dict 1894a6fcf80SBram Moolenaar call assert_equal(0, exists('g:global_dict')) 1904a6fcf80SBram Moolenaar " Existing global curly-brace variable 1914a6fcf80SBram Moolenaar let str = "global" 1924a6fcf80SBram Moolenaar let g:curly_{str}_var = 1 1934a6fcf80SBram Moolenaar call assert_equal(1, exists('g:curly_{str}_var')) 1944a6fcf80SBram Moolenaar " Non-existing global curly-brace variable 1954a6fcf80SBram Moolenaar unlet g:curly_{str}_var 1964a6fcf80SBram Moolenaar call assert_equal(0, exists('g:curly_{str}_var')) 1974a6fcf80SBram Moolenaar 1984a6fcf80SBram Moolenaar " Existing window variable 1994a6fcf80SBram Moolenaar let w:window_var = 1 2004a6fcf80SBram Moolenaar call assert_equal(1, exists('w:window_var')) 2014a6fcf80SBram Moolenaar " Non-existing window variable 2024a6fcf80SBram Moolenaar unlet w:window_var 2034a6fcf80SBram Moolenaar call assert_equal(0, exists('w:window_var')) 2044a6fcf80SBram Moolenaar " Existing window list 2054a6fcf80SBram Moolenaar let w:window_list = ["blue", "orange"] 2064a6fcf80SBram Moolenaar call assert_equal(1, exists('w:window_list')) 2074a6fcf80SBram Moolenaar " Non-existing window list 2084a6fcf80SBram Moolenaar unlet w:window_list 2094a6fcf80SBram Moolenaar call assert_equal(0, exists('w:window_list')) 2104a6fcf80SBram Moolenaar " Existing window dictionary 2114a6fcf80SBram Moolenaar let w:window_dict = {"xcord":100, "ycord":2} 2124a6fcf80SBram Moolenaar call assert_equal(1, exists('w:window_dict')) 2134a6fcf80SBram Moolenaar " Non-existing window dictionary 2144a6fcf80SBram Moolenaar unlet w:window_dict 2154a6fcf80SBram Moolenaar call assert_equal(0, exists('w:window_dict')) 2164a6fcf80SBram Moolenaar " Existing window curly-brace variable 2174a6fcf80SBram Moolenaar let str = "window" 2184a6fcf80SBram Moolenaar let w:curly_{str}_var = 1 2194a6fcf80SBram Moolenaar call assert_equal(1, exists('w:curly_{str}_var')) 2204a6fcf80SBram Moolenaar " Non-existing window curly-brace variable 2214a6fcf80SBram Moolenaar unlet w:curly_{str}_var 2224a6fcf80SBram Moolenaar call assert_equal(0, exists('w:curly_{str}_var')) 2234a6fcf80SBram Moolenaar 2244a6fcf80SBram Moolenaar " Existing tab variable 2254a6fcf80SBram Moolenaar let t:tab_var = 1 2264a6fcf80SBram Moolenaar call assert_equal(1, exists('t:tab_var')) 2274a6fcf80SBram Moolenaar " Non-existing tab variable 2284a6fcf80SBram Moolenaar unlet t:tab_var 2294a6fcf80SBram Moolenaar call assert_equal(0, exists('t:tab_var')) 2304a6fcf80SBram Moolenaar " Existing tab list 2314a6fcf80SBram Moolenaar let t:tab_list = ["blue", "orange"] 2324a6fcf80SBram Moolenaar call assert_equal(1, exists('t:tab_list')) 2334a6fcf80SBram Moolenaar " Non-existing tab list 2344a6fcf80SBram Moolenaar unlet t:tab_list 2354a6fcf80SBram Moolenaar call assert_equal(0, exists('t:tab_list')) 2364a6fcf80SBram Moolenaar " Existing tab dictionary 2374a6fcf80SBram Moolenaar let t:tab_dict = {"xcord":100, "ycord":2} 2384a6fcf80SBram Moolenaar call assert_equal(1, exists('t:tab_dict')) 2394a6fcf80SBram Moolenaar " Non-existing tab dictionary 2404a6fcf80SBram Moolenaar unlet t:tab_dict 2414a6fcf80SBram Moolenaar call assert_equal(0, exists('t:tab_dict')) 2424a6fcf80SBram Moolenaar " Existing tab curly-brace variable 2434a6fcf80SBram Moolenaar let str = "tab" 2444a6fcf80SBram Moolenaar let t:curly_{str}_var = 1 2454a6fcf80SBram Moolenaar call assert_equal(1, exists('t:curly_{str}_var')) 2464a6fcf80SBram Moolenaar " Non-existing tab curly-brace variable 2474a6fcf80SBram Moolenaar unlet t:curly_{str}_var 2484a6fcf80SBram Moolenaar call assert_equal(0, exists('t:curly_{str}_var')) 2494a6fcf80SBram Moolenaar 2504a6fcf80SBram Moolenaar " Existing buffer variable 2514a6fcf80SBram Moolenaar let b:buffer_var = 1 2524a6fcf80SBram Moolenaar call assert_equal(1, exists('b:buffer_var')) 2534a6fcf80SBram Moolenaar " Non-existing buffer variable 2544a6fcf80SBram Moolenaar unlet b:buffer_var 2554a6fcf80SBram Moolenaar call assert_equal(0, exists('b:buffer_var')) 2564a6fcf80SBram Moolenaar " Existing buffer list 2574a6fcf80SBram Moolenaar let b:buffer_list = ["blue", "orange"] 2584a6fcf80SBram Moolenaar call assert_equal(1, exists('b:buffer_list')) 2594a6fcf80SBram Moolenaar " Non-existing buffer list 2604a6fcf80SBram Moolenaar unlet b:buffer_list 2614a6fcf80SBram Moolenaar call assert_equal(0, exists('b:buffer_list')) 2624a6fcf80SBram Moolenaar " Existing buffer dictionary 2634a6fcf80SBram Moolenaar let b:buffer_dict = {"xcord":100, "ycord":2} 2644a6fcf80SBram Moolenaar call assert_equal(1, exists('b:buffer_dict')) 2654a6fcf80SBram Moolenaar " Non-existing buffer dictionary 2664a6fcf80SBram Moolenaar unlet b:buffer_dict 2674a6fcf80SBram Moolenaar call assert_equal(0, exists('b:buffer_dict')) 2684a6fcf80SBram Moolenaar " Existing buffer curly-brace variable 2694a6fcf80SBram Moolenaar let str = "buffer" 2704a6fcf80SBram Moolenaar let b:curly_{str}_var = 1 2714a6fcf80SBram Moolenaar call assert_equal(1, exists('b:curly_{str}_var')) 2724a6fcf80SBram Moolenaar " Non-existing buffer curly-brace variable 2734a6fcf80SBram Moolenaar unlet b:curly_{str}_var 2744a6fcf80SBram Moolenaar call assert_equal(0, exists('b:curly_{str}_var')) 2754a6fcf80SBram Moolenaar 2764a6fcf80SBram Moolenaar " Existing Vim internal variable 2774a6fcf80SBram Moolenaar call assert_equal(1, exists('v:version')) 2784a6fcf80SBram Moolenaar " Non-existing Vim internal variable 2794a6fcf80SBram Moolenaar call assert_equal(0, exists('v:non_exists_var')) 2804a6fcf80SBram Moolenaar 2814a6fcf80SBram Moolenaar " Existing script-local variable 2824a6fcf80SBram Moolenaar let s:script_var = 1 2834a6fcf80SBram Moolenaar call assert_equal(1, exists('s:script_var')) 2844a6fcf80SBram Moolenaar " Non-existing script-local variable 2854a6fcf80SBram Moolenaar unlet s:script_var 2864a6fcf80SBram Moolenaar call assert_equal(0, exists('s:script_var')) 2874a6fcf80SBram Moolenaar " Existing script-local list 2884a6fcf80SBram Moolenaar let s:script_list = ["blue", "orange"] 2894a6fcf80SBram Moolenaar call assert_equal(1, exists('s:script_list')) 2904a6fcf80SBram Moolenaar " Non-existing script-local list 2914a6fcf80SBram Moolenaar unlet s:script_list 2924a6fcf80SBram Moolenaar call assert_equal(0, exists('s:script_list')) 2934a6fcf80SBram Moolenaar " Existing script-local dictionary 2944a6fcf80SBram Moolenaar let s:script_dict = {"xcord":100, "ycord":2} 2954a6fcf80SBram Moolenaar call assert_equal(1, exists('s:script_dict')) 2964a6fcf80SBram Moolenaar " Non-existing script-local dictionary 2974a6fcf80SBram Moolenaar unlet s:script_dict 2984a6fcf80SBram Moolenaar call assert_equal(0, exists('s:script_dict')) 2994a6fcf80SBram Moolenaar " Existing script curly-brace variable 3004a6fcf80SBram Moolenaar let str = "script" 3014a6fcf80SBram Moolenaar let s:curly_{str}_var = 1 3024a6fcf80SBram Moolenaar call assert_equal(1, exists('s:curly_{str}_var')) 3034a6fcf80SBram Moolenaar " Non-existing script-local curly-brace variable 3044a6fcf80SBram Moolenaar unlet s:curly_{str}_var 3054a6fcf80SBram Moolenaar call assert_equal(0, exists('s:curly_{str}_var')) 3064a6fcf80SBram Moolenaar 3074a6fcf80SBram Moolenaar " Existing script-local function 3084a6fcf80SBram Moolenaar function! s:my_script_func() 3094a6fcf80SBram Moolenaar endfunction 3104a6fcf80SBram Moolenaar 3114a6fcf80SBram Moolenaar echo '*s:my_script_func: 1' 3124a6fcf80SBram Moolenaar call assert_equal(1, exists('*s:my_script_func')) 3134a6fcf80SBram Moolenaar 3144a6fcf80SBram Moolenaar " Non-existing script-local function 3154a6fcf80SBram Moolenaar delfunction s:my_script_func 3164a6fcf80SBram Moolenaar 3174a6fcf80SBram Moolenaar call assert_equal(0, exists('*s:my_script_func')) 3184a6fcf80SBram Moolenaar unlet str 3194a6fcf80SBram Moolenaar 3204a6fcf80SBram Moolenaar call assert_equal(1, g:footest#x) 3214a6fcf80SBram Moolenaar call assert_equal(0, footest#F()) 3224a6fcf80SBram Moolenaar call assert_equal(0, UndefFun()) 3234a6fcf80SBram Moolenaarendfunc 3244a6fcf80SBram Moolenaar 3254a6fcf80SBram Moolenaar" exists() test for Function arguments 3264a6fcf80SBram Moolenaarfunc FuncArg_Tests(func_arg, ...) 3274a6fcf80SBram Moolenaar call assert_equal(1, exists('a:func_arg')) 3284a6fcf80SBram Moolenaar call assert_equal(0, exists('a:non_exists_arg')) 3294a6fcf80SBram Moolenaar call assert_equal(1, exists('a:1')) 3304a6fcf80SBram Moolenaar call assert_equal(0, exists('a:2')) 3314a6fcf80SBram Moolenaarendfunc 3324a6fcf80SBram Moolenaar 3334a6fcf80SBram Moolenaarfunc Test_exists_funcarg() 3344a6fcf80SBram Moolenaar call FuncArg_Tests("arg1", "arg2") 3354a6fcf80SBram Moolenaarendfunc 3360e05de46SBram Moolenaar 3370e05de46SBram Moolenaar" vim: shiftwidth=2 sts=2 expandtab 338