neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

test_packadd.vim (18472B)


      1 " Tests for 'packpath' and :packadd
      2 
      3 
      4 func SetUp()
      5  let s:topdir = getcwd() . '/Xdir'
      6  exe 'set packpath=' . s:topdir
      7  let s:plugdir = s:topdir . '/pack/mine/opt/mytest'
      8 endfunc
      9 
     10 func TearDown()
     11  call delete(s:topdir, 'rf')
     12 endfunc
     13 
     14 func Test_packadd()
     15  if !exists('s:plugdir')
     16    echomsg 'when running this test manually, call SetUp() first'
     17    return
     18  endif
     19 
     20  call mkdir(s:plugdir . '/plugin/also', 'p')
     21  call mkdir(s:plugdir . '/ftdetect', 'p')
     22  call mkdir(s:plugdir . '/after', 'p')
     23 
     24  " This used to crash Vim
     25  let &rtp = 'nosuchdir,' . s:plugdir . '/after'
     26  packadd mytest
     27  " plugdir should be inserted before plugdir/after
     28  call assert_match('^nosuchdir,' . s:plugdir . ',', &rtp)
     29 
     30  set rtp&
     31  let rtp = &rtp
     32  filetype on
     33 
     34  let rtp_entries = split(rtp, ',')
     35  for entry in rtp_entries
     36    if entry =~? '\<after\>'
     37      let first_after_entry = entry
     38      break
     39    endif
     40  endfor
     41 
     42  exe 'split ' . s:plugdir . '/plugin/test.vim'
     43  call setline(1, 'let g:plugin_works = 42')
     44  wq
     45 
     46  exe 'split ' . s:plugdir . '/plugin/also/loaded.vim'
     47  call setline(1, 'let g:plugin_also_works = 77')
     48  wq
     49 
     50  exe 'split ' . s:plugdir . '/ftdetect/test.vim'
     51  call setline(1, 'let g:ftdetect_works = 17')
     52  wq
     53 
     54  packadd mytest
     55 
     56  call assert_equal(42, g:plugin_works)
     57  call assert_equal(77, g:plugin_also_works)
     58  call assert_equal(17, g:ftdetect_works)
     59  call assert_true(len(&rtp) > len(rtp))
     60  call assert_match('/testdir/Xdir/pack/mine/opt/mytest\($\|,\)', &rtp)
     61 
     62  let new_after = match(&rtp, '/testdir/Xdir/pack/mine/opt/mytest/after,')
     63  let forwarded = substitute(first_after_entry, '\\', '[/\\\\]', 'g')
     64  let old_after = match(&rtp, ',' . forwarded . '\>')
     65  call assert_true(new_after > 0, 'rtp is ' . &rtp)
     66  call assert_true(old_after > 0, 'match ' . forwarded . ' in ' . &rtp)
     67  call assert_true(new_after < old_after, 'rtp is ' . &rtp)
     68 
     69  " NOTE: '/.../opt/myte' forwardly matches with '/.../opt/mytest'
     70  call mkdir(fnamemodify(s:plugdir, ':h') . '/myte', 'p')
     71  let rtp = &rtp
     72  packadd myte
     73 
     74  " Check the path of 'myte' is added
     75  call assert_true(len(&rtp) > len(rtp))
     76  call assert_match('/testdir/Xdir/pack/mine/opt/myte\($\|,\)', &rtp)
     77 
     78  " Check exception
     79  call assert_fails("packadd directorynotfound", 'E919:')
     80  call assert_fails("packadd", 'E471:')
     81 endfunc
     82 
     83 func Test_packadd_start()
     84  let plugdir = s:topdir . '/pack/mine/start/other'
     85  call mkdir(plugdir . '/plugin', 'p')
     86  set rtp&
     87  let rtp = &rtp
     88  filetype on
     89 
     90  exe 'split ' . plugdir . '/plugin/test.vim'
     91  call setline(1, 'let g:plugin_works = 24')
     92  wq
     93 
     94  packadd other
     95 
     96  call assert_equal(24, g:plugin_works)
     97  call assert_true(len(&rtp) > len(rtp))
     98  call assert_match('/testdir/Xdir/pack/mine/start/other\($\|,\)', &rtp)
     99 endfunc
    100 
    101 func Test_packadd_noload()
    102  call mkdir(s:plugdir . '/plugin', 'p')
    103  call mkdir(s:plugdir . '/syntax', 'p')
    104  set rtp&
    105  let rtp = &rtp
    106 
    107  exe 'split ' . s:plugdir . '/plugin/test.vim'
    108  call setline(1, 'let g:plugin_works = 42')
    109  wq
    110  let g:plugin_works = 0
    111 
    112  packadd! mytest
    113 
    114  call assert_true(len(&rtp) > len(rtp))
    115  call assert_match('testdir/Xdir/pack/mine/opt/mytest\($\|,\)', &rtp)
    116  call assert_equal(0, g:plugin_works)
    117 
    118  " check the path is not added twice
    119  let new_rtp = &rtp
    120  packadd! mytest
    121  call assert_equal(new_rtp, &rtp)
    122 endfunc
    123 
    124 func Test_packadd_symlink_dir()
    125  if !has('unix')
    126    return
    127  endif
    128  let top2_dir = s:topdir . '/Xdir2'
    129  let real_dir = s:topdir . '/Xsym'
    130  call mkdir(real_dir, 'p')
    131  exec "silent !ln -s Xsym"  top2_dir
    132  let &rtp = top2_dir . ',' . top2_dir . '/after'
    133  let &packpath = &rtp
    134 
    135  let s:plugdir = top2_dir . '/pack/mine/opt/mytest'
    136  call mkdir(s:plugdir . '/plugin', 'p')
    137 
    138  exe 'split ' . s:plugdir . '/plugin/test.vim'
    139  call setline(1, 'let g:plugin_works = 44')
    140  wq
    141  let g:plugin_works = 0
    142 
    143  packadd mytest
    144 
    145  " Must have been inserted in the middle, not at the end
    146  call assert_match('/pack/mine/opt/mytest,', &rtp)
    147  call assert_equal(44, g:plugin_works)
    148 
    149  " No change when doing it again.
    150  let rtp_before = &rtp
    151  packadd mytest
    152  call assert_equal(rtp_before, &rtp)
    153 
    154  set rtp&
    155  let rtp = &rtp
    156  exec "silent !rm" top2_dir
    157 endfunc
    158 
    159 func Test_packadd_symlink_dir2()
    160  if !has('unix')
    161    return
    162  endif
    163  let top2_dir = s:topdir . '/Xdir2'
    164  let real_dir = s:topdir . '/Xsym/pack'
    165  call mkdir(top2_dir, 'p')
    166  call mkdir(real_dir, 'p')
    167  let &rtp = top2_dir . ',' . top2_dir . '/after'
    168  let &packpath = &rtp
    169 
    170  exec "silent !ln -s ../Xsym/pack"  top2_dir . '/pack'
    171  let s:plugdir = top2_dir . '/pack/mine/opt/mytest'
    172  call mkdir(s:plugdir . '/plugin', 'p')
    173 
    174  exe 'split ' . s:plugdir . '/plugin/test.vim'
    175  call setline(1, 'let g:plugin_works = 48')
    176  wq
    177  let g:plugin_works = 0
    178 
    179  packadd mytest
    180 
    181  " Must have been inserted in the middle, not at the end
    182  call assert_match('/Xdir2/pack/mine/opt/mytest,', &rtp)
    183  call assert_equal(48, g:plugin_works)
    184 
    185  " No change when doing it again.
    186  let rtp_before = &rtp
    187  packadd mytest
    188  call assert_equal(rtp_before, &rtp)
    189 
    190  set rtp&
    191  let rtp = &rtp
    192  exec "silent !rm" top2_dir . '/pack'
    193  exec "silent !rmdir" top2_dir
    194 endfunc
    195 
    196 " Check command-line completion for :packadd
    197 func Test_packadd_completion()
    198  let optdir1 = &packpath . '/pack/mine/opt'
    199  let optdir2 = &packpath . '/pack/candidate/opt'
    200 
    201  call mkdir(optdir1 . '/pluginA', 'p')
    202  call mkdir(optdir1 . '/pluginC', 'p')
    203  call writefile([], optdir1 . '/unrelated')
    204  call mkdir(optdir2 . '/pluginB', 'p')
    205  call mkdir(optdir2 . '/pluginC', 'p')
    206  call writefile([], optdir2 . '/unrelated')
    207 
    208  let li = []
    209  call feedkeys(":packadd \<Tab>')\<C-B>call add(li, '\<CR>", 't')
    210  call feedkeys(":packadd " . repeat("\<Tab>", 2) . "')\<C-B>call add(li, '\<CR>", 't')
    211  call feedkeys(":packadd " . repeat("\<Tab>", 3) . "')\<C-B>call add(li, '\<CR>", 't')
    212  call feedkeys(":packadd " . repeat("\<Tab>", 4) . "')\<C-B>call add(li, '\<CR>", 'tx')
    213  call assert_equal("packadd pluginA", li[0])
    214  call assert_equal("packadd pluginB", li[1])
    215  call assert_equal("packadd pluginC", li[2])
    216  call assert_equal("packadd ", li[3])
    217 endfunc
    218 
    219 func Test_packloadall()
    220  " plugin foo with an autoload directory
    221  let fooplugindir = &packpath . '/pack/mine/start/foo/plugin'
    222  call mkdir(fooplugindir, 'p')
    223  call writefile(['let g:plugin_foo_number = 1234',
    224 \ 'let g:plugin_foo_auto = bbb#value',
    225 \ 'let g:plugin_extra_auto = extra#value'], fooplugindir . '/bar.vim')
    226  let fooautodir = &packpath . '/pack/mine/start/foo/autoload'
    227  call mkdir(fooautodir, 'p')
    228  call writefile(['let bar#value = 77'], fooautodir . '/bar.vim')
    229 
    230  " plugin aaa with an autoload directory
    231  let aaaplugindir = &packpath . '/pack/mine/start/aaa/plugin'
    232  call mkdir(aaaplugindir, 'p')
    233  call writefile(['let g:plugin_aaa_number = 333',
    234 \ 'let g:plugin_aaa_auto = bar#value'], aaaplugindir . '/bbb.vim')
    235  let aaaautodir = &packpath . '/pack/mine/start/aaa/autoload'
    236  call mkdir(aaaautodir, 'p')
    237  call writefile(['let bbb#value = 55'], aaaautodir . '/bbb.vim')
    238 
    239  " plugin extra with only an autoload directory
    240  let extraautodir = &packpath . '/pack/mine/start/extra/autoload'
    241  call mkdir(extraautodir, 'p')
    242  call writefile(['let extra#value = 99'], extraautodir . '/extra.vim')
    243 
    244  packloadall
    245  call assert_equal(1234, g:plugin_foo_number)
    246  call assert_equal(55, g:plugin_foo_auto)
    247  call assert_equal(99, g:plugin_extra_auto)
    248  call assert_equal(333, g:plugin_aaa_number)
    249  call assert_equal(77, g:plugin_aaa_auto)
    250 
    251  " only works once
    252  call writefile(['let g:plugin_bar_number = 4321'], fooplugindir . '/bar2.vim')
    253  packloadall
    254  call assert_false(exists('g:plugin_bar_number'))
    255 
    256  " works when ! used
    257  packloadall!
    258  call assert_equal(4321, g:plugin_bar_number)
    259 endfunc
    260 
    261 func Test_start_autoload()
    262  " plugin foo with an autoload directory
    263  let autodir = &packpath .. '/pack/mine/start/foo/autoload'
    264  call mkdir(autodir, 'p')
    265  let fname = autodir .. '/foobar.vim'
    266  call writefile(['func foobar#test()',
    267 \ '  return 1666',
    268 \ 'endfunc'], fname)
    269 
    270  call assert_equal(1666, foobar#test())
    271  call delete(fname)
    272 endfunc
    273 
    274 func Test_helptags()
    275  let docdir1 = &packpath . '/pack/mine/start/foo/doc'
    276  let docdir2 = &packpath . '/pack/mine/start/bar/doc'
    277  call mkdir(docdir1, 'p')
    278  call mkdir(docdir2, 'p')
    279  call writefile(['look here: *look-here*'], docdir1 . '/bar.txt')
    280  call writefile(['look away: *look-away*'], docdir2 . '/foo.txt')
    281  exe 'set rtp=' . &packpath . '/pack/mine/start/foo,' . &packpath . '/pack/mine/start/bar'
    282 
    283  helptags ALL
    284 
    285  let tags1 = readfile(docdir1 . '/tags')
    286  call assert_match('look-here', tags1[0])
    287  let tags2 = readfile(docdir2 . '/tags')
    288  call assert_match('look-away', tags2[0])
    289 
    290  call assert_fails('helptags abcxyz', 'E150:')
    291 endfunc
    292 
    293 func Test_colorscheme()
    294  let colordirrun = &packpath . '/runtime/colors'
    295  let colordirstart = &packpath . '/pack/mine/start/foo/colors'
    296  let colordiropt = &packpath . '/pack/mine/opt/bar/colors'
    297  call mkdir(colordirrun, 'p')
    298  call mkdir(colordirstart, 'p')
    299  call mkdir(colordiropt, 'p')
    300  call writefile(['let g:found_one = 1'], colordirrun . '/one.vim')
    301  call writefile(['let g:found_two = 1'], colordirstart . '/two.vim')
    302  call writefile(['let g:found_three = 1'], colordiropt . '/three.vim')
    303  exe 'set rtp=' . &packpath . '/runtime'
    304 
    305  colorscheme one
    306  call assert_equal(1, g:found_one)
    307  colorscheme two
    308  call assert_equal(1, g:found_two)
    309  colorscheme three
    310  call assert_equal(1, g:found_three)
    311 endfunc
    312 
    313 func Test_colorscheme_completion()
    314  let colordirrun = &packpath . '/runtime/colors'
    315  let colordirstart = &packpath . '/pack/mine/start/foo/colors'
    316  let colordiropt = &packpath . '/pack/mine/opt/bar/colors'
    317  call mkdir(colordirrun, 'p')
    318  call mkdir(colordirstart, 'p')
    319  call mkdir(colordiropt, 'p')
    320  call writefile(['let g:found_one = 1'], colordirrun . '/one.vim')
    321  call writefile(['let g:found_two = 1'], colordirstart . '/two.vim')
    322  call writefile(['let g:found_three = 1'], colordiropt . '/three.vim')
    323  exe 'set rtp=' . &packpath . '/runtime'
    324 
    325  let li=[]
    326  call feedkeys(":colorscheme " . repeat("\<Tab>", 1) . "')\<C-B>call add(li, '\<CR>", 't')
    327  call feedkeys(":colorscheme " . repeat("\<Tab>", 2) . "')\<C-B>call add(li, '\<CR>", 't')
    328  call feedkeys(":colorscheme " . repeat("\<Tab>", 3) . "')\<C-B>call add(li, '\<CR>", 't')
    329  call feedkeys(":colorscheme " . repeat("\<Tab>", 4) . "')\<C-B>call add(li, '\<CR>", 'tx')
    330  call assert_equal("colorscheme one", li[0])
    331  call assert_equal("colorscheme three", li[1])
    332  call assert_equal("colorscheme two", li[2])
    333  call assert_equal("colorscheme ", li[3])
    334 endfunc
    335 
    336 func Test_runtime()
    337  let rundir = &packpath . '/runtime/extra'
    338  let startdir = &packpath . '/pack/mine/start/foo/extra'
    339  let optdir = &packpath . '/pack/mine/opt/bar/extra'
    340  call mkdir(rundir, 'p')
    341  call mkdir(startdir, 'p')
    342  call mkdir(optdir, 'p')
    343  call writefile(['let g:sequence .= "run"'], rundir . '/bar.vim')
    344  call writefile(['let g:sequence .= "start"'], startdir . '/bar.vim')
    345  call writefile(['let g:sequence .= "foostart"'], startdir . '/foo.vim')
    346  call writefile(['let g:sequence .= "opt"'], optdir . '/bar.vim')
    347  call writefile(['let g:sequence .= "xxxopt"'], optdir . '/xxx.vim')
    348  exe 'set rtp=' . &packpath . '/runtime'
    349 
    350  let g:sequence = ''
    351  runtime extra/bar.vim
    352  call assert_equal('run', g:sequence)
    353  let g:sequence = ''
    354  runtime NoSuchFile extra/bar.vim
    355  call assert_equal('run', g:sequence)
    356 
    357  let g:sequence = ''
    358  runtime START extra/bar.vim
    359  call assert_equal('start', g:sequence)
    360  let g:sequence = ''
    361  runtime START NoSuchFile extra/bar.vim extra/foo.vim
    362  call assert_equal('start', g:sequence)
    363  let g:sequence = ''
    364  runtime START NoSuchFile extra/foo.vim extra/bar.vim
    365  call assert_equal('foostart', g:sequence)
    366  let g:sequence = ''
    367  runtime! START NoSuchFile extra/bar.vim extra/foo.vim
    368  call assert_equal('startfoostart', g:sequence)
    369 
    370  let g:sequence = ''
    371  runtime OPT extra/bar.vim
    372  call assert_equal('opt', g:sequence)
    373  let g:sequence = ''
    374  runtime OPT NoSuchFile extra/bar.vim extra/xxx.vim
    375  call assert_equal('opt', g:sequence)
    376  let g:sequence = ''
    377  runtime OPT NoSuchFile extra/xxx.vim extra/bar.vim
    378  call assert_equal('xxxopt', g:sequence)
    379  let g:sequence = ''
    380  runtime! OPT NoSuchFile extra/bar.vim extra/xxx.vim
    381  call assert_equal('optxxxopt', g:sequence)
    382 
    383  let g:sequence = ''
    384  runtime PACK extra/bar.vim
    385  call assert_equal('start', g:sequence)
    386  let g:sequence = ''
    387  runtime! PACK extra/bar.vim
    388  call assert_equal('startopt', g:sequence)
    389  let g:sequence = ''
    390  runtime PACK extra/xxx.vim
    391  call assert_equal('xxxopt', g:sequence)
    392  let g:sequence = ''
    393  runtime PACK extra/xxx.vim extra/foo.vim extra/bar.vim
    394  call assert_equal('foostart', g:sequence)
    395  let g:sequence = ''
    396  runtime! PACK extra/bar.vim extra/xxx.vim extra/foo.vim
    397  call assert_equal('startfoostartoptxxxopt', g:sequence)
    398 
    399  let g:sequence = ''
    400  runtime ALL extra/bar.vim
    401  call assert_equal('run', g:sequence)
    402  let g:sequence = ''
    403  runtime ALL extra/foo.vim
    404  call assert_equal('foostart', g:sequence)
    405  let g:sequence = ''
    406  runtime! ALL extra/xxx.vim
    407  call assert_equal('xxxopt', g:sequence)
    408  let g:sequence = ''
    409  runtime! ALL extra/bar.vim
    410  call assert_equal('runstartopt', g:sequence)
    411  let g:sequence = ''
    412  runtime ALL extra/xxx.vim extra/foo.vim extra/bar.vim
    413  call assert_equal('run', g:sequence)
    414  let g:sequence = ''
    415  runtime! ALL extra/bar.vim extra/xxx.vim extra/foo.vim
    416  call assert_equal('runstartfoostartoptxxxopt', g:sequence)
    417 endfunc
    418 
    419 func Test_runtime_completion()
    420  let rundir = &packpath . '/runtime/Aextra'
    421  let startdir = &packpath . '/pack/mine/start/foo/Aextra'
    422  let optdir = &packpath . '/pack/mine/opt/bar/Aextra'
    423  call mkdir(rundir . '/Arunbaz', 'p')
    424  call mkdir(startdir . '/Astartbaz', 'p')
    425  call mkdir(optdir . '/Aoptbaz', 'p')
    426  call writefile([], rundir . '/../Arunfoo.vim')
    427  call writefile([], rundir . '/Arunbar.vim')
    428  call writefile([], rundir . '/Aunrelated')
    429  call writefile([], rundir . '/../Aunrelated')
    430  call writefile([], startdir . '/../Astartfoo.vim')
    431  call writefile([], startdir . '/Astartbar.vim')
    432  call writefile([], startdir . '/Aunrelated')
    433  call writefile([], startdir . '/../Aunrelated')
    434  call writefile([], optdir . '/../Aoptfoo.vim')
    435  call writefile([], optdir . '/Aoptbar.vim')
    436  call writefile([], optdir . '/Aunrelated')
    437  call writefile([], optdir . '/../Aunrelated')
    438  exe 'set rtp=' . &packpath . '/runtime'
    439 
    440  func Check_runtime_completion(arg, arg_prev, res)
    441    call feedkeys(':runtime ' .. a:arg .. "\<C-A>\<C-B>\"\<CR>", 'xt')
    442    call assert_equal('"runtime ' .. a:arg_prev .. join(a:res), @:)
    443    call assert_equal(a:res, getcompletion(a:arg, 'runtime'))
    444  endfunc
    445 
    446  call Check_runtime_completion('', '',
    447        \ ['Aextra/', 'Arunfoo.vim', 'START', 'OPT', 'PACK', 'ALL'])
    448  call Check_runtime_completion('S', '',
    449        \ ['START'])
    450  call Check_runtime_completion('O', '',
    451        \ ['OPT'])
    452  call Check_runtime_completion('P', '',
    453        \ ['PACK'])
    454  call Check_runtime_completion('A', '',
    455        \ ['Aextra/', 'Arunfoo.vim', 'ALL'])
    456  call Check_runtime_completion('Other.vim ', 'Other.vim ',
    457        \ ['Aextra/', 'Arunfoo.vim'])
    458  call Check_runtime_completion('Aextra/', '',
    459        \ ['Aextra/Arunbar.vim', 'Aextra/Arunbaz/'])
    460  call Check_runtime_completion('Other.vim Aextra/', 'Other.vim ',
    461        \ ['Aextra/Arunbar.vim', 'Aextra/Arunbaz/'])
    462 
    463  call Check_runtime_completion('START ', 'START ',
    464        \ ['Aextra/', 'Astartfoo.vim'])
    465  call Check_runtime_completion('START Other.vim ', 'START Other.vim ',
    466        \ ['Aextra/', 'Astartfoo.vim'])
    467  call Check_runtime_completion('START A', 'START ',
    468        \ ['Aextra/', 'Astartfoo.vim'])
    469  call Check_runtime_completion('START Other.vim A', 'START Other.vim ',
    470        \ ['Aextra/', 'Astartfoo.vim'])
    471  call Check_runtime_completion('START Aextra/', 'START ',
    472        \ ['Aextra/Astartbar.vim', 'Aextra/Astartbaz/'])
    473  call Check_runtime_completion('START Other.vim Aextra/', 'START Other.vim ',
    474        \ ['Aextra/Astartbar.vim', 'Aextra/Astartbaz/'])
    475 
    476  call Check_runtime_completion('OPT ', 'OPT ',
    477        \ ['Aextra/', 'Aoptfoo.vim'])
    478  call Check_runtime_completion('OPT Other.vim ', 'OPT Other.vim ',
    479        \ ['Aextra/', 'Aoptfoo.vim'])
    480  call Check_runtime_completion('OPT A', 'OPT ',
    481        \ ['Aextra/', 'Aoptfoo.vim'])
    482  call Check_runtime_completion('OPT Other.vim A', 'OPT Other.vim ',
    483        \ ['Aextra/', 'Aoptfoo.vim'])
    484  call Check_runtime_completion('OPT Aextra/', 'OPT ',
    485        \ ['Aextra/Aoptbar.vim', 'Aextra/Aoptbaz/'])
    486  call Check_runtime_completion('OPT Other.vim Aextra/', 'OPT Other.vim ',
    487        \ ['Aextra/Aoptbar.vim', 'Aextra/Aoptbaz/'])
    488 
    489  call Check_runtime_completion('PACK ', 'PACK ',
    490        \ ['Aextra/', 'Aoptfoo.vim', 'Astartfoo.vim'])
    491  call Check_runtime_completion('PACK Other.vim ', 'PACK Other.vim ',
    492        \ ['Aextra/', 'Aoptfoo.vim', 'Astartfoo.vim'])
    493  call Check_runtime_completion('PACK A', 'PACK ',
    494        \ ['Aextra/', 'Aoptfoo.vim', 'Astartfoo.vim'])
    495  call Check_runtime_completion('PACK Other.vim A', 'PACK Other.vim ',
    496        \ ['Aextra/', 'Aoptfoo.vim', 'Astartfoo.vim'])
    497  call Check_runtime_completion('PACK Aextra/', 'PACK ',
    498        \ ['Aextra/Aoptbar.vim', 'Aextra/Aoptbaz/',
    499        \ 'Aextra/Astartbar.vim', 'Aextra/Astartbaz/'])
    500  call Check_runtime_completion('PACK Other.vim Aextra/', 'PACK Other.vim ',
    501        \ ['Aextra/Aoptbar.vim', 'Aextra/Aoptbaz/',
    502        \ 'Aextra/Astartbar.vim', 'Aextra/Astartbaz/'])
    503 
    504  call Check_runtime_completion('ALL ', 'ALL ',
    505        \ ['Aextra/', 'Aoptfoo.vim', 'Arunfoo.vim', 'Astartfoo.vim'])
    506  call Check_runtime_completion('ALL Other.vim ', 'ALL Other.vim ',
    507        \ ['Aextra/', 'Aoptfoo.vim', 'Arunfoo.vim', 'Astartfoo.vim'])
    508  call Check_runtime_completion('ALL A', 'ALL ',
    509        \ ['Aextra/', 'Aoptfoo.vim', 'Arunfoo.vim', 'Astartfoo.vim'])
    510  call Check_runtime_completion('ALL Other.vim A', 'ALL Other.vim ',
    511        \ ['Aextra/', 'Aoptfoo.vim', 'Arunfoo.vim', 'Astartfoo.vim'])
    512  call Check_runtime_completion('ALL Aextra/', 'ALL ',
    513        \ ['Aextra/Aoptbar.vim', 'Aextra/Aoptbaz/',
    514        \ 'Aextra/Arunbar.vim', 'Aextra/Arunbaz/',
    515        \ 'Aextra/Astartbar.vim', 'Aextra/Astartbaz/'])
    516  call Check_runtime_completion('ALL Other.vim Aextra/', 'ALL Other.vim ',
    517        \ ['Aextra/Aoptbar.vim', 'Aextra/Aoptbaz/',
    518        \ 'Aextra/Arunbar.vim', 'Aextra/Arunbaz/',
    519        \ 'Aextra/Astartbar.vim', 'Aextra/Astartbaz/'])
    520 
    521  delfunc Check_runtime_completion
    522 endfunc
    523 
    524 " vim: shiftwidth=2 sts=2 expandtab