xref: /vim-8.2.3635/src/testdir/test_packadd.vim (revision 6d91bcb4)
1f3654827SBram Moolenaar" Tests for 'packpath' and :packadd
2f3654827SBram Moolenaar
3*6d91bcb4SBram Moolenaarsource check.vim
4c3c766eaSBram Moolenaar
5f3654827SBram Moolenaarfunc SetUp()
6cf1ba35fSBram Moolenaar  let s:topdir = getcwd() . '/Xdir'
7f3654827SBram Moolenaar  exe 'set packpath=' . s:topdir
8f3654827SBram Moolenaar  let s:plugdir = s:topdir . '/pack/mine/opt/mytest'
9f3654827SBram Moolenaarendfunc
10f3654827SBram Moolenaar
11f3654827SBram Moolenaarfunc TearDown()
12f3654827SBram Moolenaar  call delete(s:topdir, 'rf')
13f3654827SBram Moolenaarendfunc
14f3654827SBram Moolenaar
15f3654827SBram Moolenaarfunc Test_packadd()
1699396d4cSBram Moolenaar  if !exists('s:plugdir')
1799396d4cSBram Moolenaar    echomsg 'when running this test manually, call SetUp() first'
1899396d4cSBram Moolenaar    return
1999396d4cSBram Moolenaar  endif
2099396d4cSBram Moolenaar
2171fb0c14SBram Moolenaar  call mkdir(s:plugdir . '/plugin/also', 'p')
22f3654827SBram Moolenaar  call mkdir(s:plugdir . '/ftdetect', 'p')
23a5702445SBram Moolenaar  call mkdir(s:plugdir . '/after', 'p')
24f3654827SBram Moolenaar  set rtp&
25f3654827SBram Moolenaar  let rtp = &rtp
26f3654827SBram Moolenaar  filetype on
27f3654827SBram Moolenaar
2899396d4cSBram Moolenaar  let rtp_entries = split(rtp, ',')
2999396d4cSBram Moolenaar  for entry in rtp_entries
3099396d4cSBram Moolenaar    if entry =~? '\<after\>'
3199396d4cSBram Moolenaar      let first_after_entry = entry
3299396d4cSBram Moolenaar      break
3399396d4cSBram Moolenaar    endif
3499396d4cSBram Moolenaar  endfor
3599396d4cSBram Moolenaar
36f3654827SBram Moolenaar  exe 'split ' . s:plugdir . '/plugin/test.vim'
37f3654827SBram Moolenaar  call setline(1, 'let g:plugin_works = 42')
38f3654827SBram Moolenaar  wq
39f3654827SBram Moolenaar
4071fb0c14SBram Moolenaar  exe 'split ' . s:plugdir . '/plugin/also/loaded.vim'
4171fb0c14SBram Moolenaar  call setline(1, 'let g:plugin_also_works = 77')
4271fb0c14SBram Moolenaar  wq
4371fb0c14SBram Moolenaar
44f3654827SBram Moolenaar  exe 'split ' . s:plugdir . '/ftdetect/test.vim'
45f3654827SBram Moolenaar  call setline(1, 'let g:ftdetect_works = 17')
46f3654827SBram Moolenaar  wq
47f3654827SBram Moolenaar
48f3654827SBram Moolenaar  packadd mytest
49f3654827SBram Moolenaar
50f3654827SBram Moolenaar  call assert_equal(42, g:plugin_works)
5171fb0c14SBram Moolenaar  call assert_equal(77, g:plugin_also_works)
52f3654827SBram Moolenaar  call assert_equal(17, g:ftdetect_works)
53f3654827SBram Moolenaar  call assert_true(len(&rtp) > len(rtp))
542374faaeSBram Moolenaar  call assert_match('/testdir/Xdir/pack/mine/opt/mytest\($\|,\)', &rtp)
5599396d4cSBram Moolenaar
5699396d4cSBram Moolenaar  let new_after = match(&rtp, '/testdir/Xdir/pack/mine/opt/mytest/after,')
5753c8a478SBram Moolenaar  let forwarded = substitute(first_after_entry, '\\', '[/\\\\]', 'g')
5853c8a478SBram Moolenaar  let old_after = match(&rtp, ',' . forwarded . '\>')
5999396d4cSBram Moolenaar  call assert_true(new_after > 0, 'rtp is ' . &rtp)
6053c8a478SBram Moolenaar  call assert_true(old_after > 0, 'match ' . forwarded . ' in ' . &rtp)
6199396d4cSBram Moolenaar  call assert_true(new_after < old_after, 'rtp is ' . &rtp)
62be82c254SBram Moolenaar
63f98a39caSBram Moolenaar  " NOTE: '/.../opt/myte' forwardly matches with '/.../opt/mytest'
64f98a39caSBram Moolenaar  call mkdir(fnamemodify(s:plugdir, ':h') . '/myte', 'p')
65f98a39caSBram Moolenaar  let rtp = &rtp
66f98a39caSBram Moolenaar  packadd myte
67f98a39caSBram Moolenaar
68f98a39caSBram Moolenaar  " Check the path of 'myte' is added
69f98a39caSBram Moolenaar  call assert_true(len(&rtp) > len(rtp))
70f98a39caSBram Moolenaar  call assert_match('/testdir/Xdir/pack/mine/opt/myte\($\|,\)', &rtp)
71f98a39caSBram Moolenaar
72be82c254SBram Moolenaar  " Check exception
73be82c254SBram Moolenaar  call assert_fails("packadd directorynotfound", 'E919:')
74be82c254SBram Moolenaar  call assert_fails("packadd", 'E471:')
75f3654827SBram Moolenaarendfunc
76f3654827SBram Moolenaar
779e1d399eSBram Moolenaarfunc Test_packadd_start()
789e1d399eSBram Moolenaar  let plugdir = s:topdir . '/pack/mine/start/other'
799e1d399eSBram Moolenaar  call mkdir(plugdir . '/plugin', 'p')
809e1d399eSBram Moolenaar  set rtp&
819e1d399eSBram Moolenaar  let rtp = &rtp
829e1d399eSBram Moolenaar  filetype on
839e1d399eSBram Moolenaar
849e1d399eSBram Moolenaar  exe 'split ' . plugdir . '/plugin/test.vim'
859e1d399eSBram Moolenaar  call setline(1, 'let g:plugin_works = 24')
869e1d399eSBram Moolenaar  wq
879e1d399eSBram Moolenaar
889e1d399eSBram Moolenaar  packadd other
899e1d399eSBram Moolenaar
909e1d399eSBram Moolenaar  call assert_equal(24, g:plugin_works)
919e1d399eSBram Moolenaar  call assert_true(len(&rtp) > len(rtp))
922374faaeSBram Moolenaar  call assert_match('/testdir/Xdir/pack/mine/start/other\($\|,\)', &rtp)
939e1d399eSBram Moolenaarendfunc
949e1d399eSBram Moolenaar
95f3654827SBram Moolenaarfunc Test_packadd_noload()
96f3654827SBram Moolenaar  call mkdir(s:plugdir . '/plugin', 'p')
97f3654827SBram Moolenaar  call mkdir(s:plugdir . '/syntax', 'p')
98f3654827SBram Moolenaar  set rtp&
99f3654827SBram Moolenaar  let rtp = &rtp
100f3654827SBram Moolenaar
101f3654827SBram Moolenaar  exe 'split ' . s:plugdir . '/plugin/test.vim'
102f3654827SBram Moolenaar  call setline(1, 'let g:plugin_works = 42')
103f3654827SBram Moolenaar  wq
104f3654827SBram Moolenaar  let g:plugin_works = 0
105f3654827SBram Moolenaar
106f3654827SBram Moolenaar  packadd! mytest
107f3654827SBram Moolenaar
108f3654827SBram Moolenaar  call assert_true(len(&rtp) > len(rtp))
1092374faaeSBram Moolenaar  call assert_match('testdir/Xdir/pack/mine/opt/mytest\($\|,\)', &rtp)
110f3654827SBram Moolenaar  call assert_equal(0, g:plugin_works)
111f3654827SBram Moolenaar
112f3654827SBram Moolenaar  " check the path is not added twice
113f3654827SBram Moolenaar  let new_rtp = &rtp
114f3654827SBram Moolenaar  packadd! mytest
115f3654827SBram Moolenaar  call assert_equal(new_rtp, &rtp)
116f3654827SBram Moolenaarendfunc
11735ca0e7aSBram Moolenaar
1182f9e5755SBram Moolenaarfunc Test_packadd_symlink_dir()
119*6d91bcb4SBram Moolenaar  CheckUnix
1202f9e5755SBram Moolenaar  let top2_dir = s:topdir . '/Xdir2'
1212f9e5755SBram Moolenaar  let real_dir = s:topdir . '/Xsym'
122644df41cSBram Moolenaar  call mkdir(real_dir, 'p')
123644df41cSBram Moolenaar  exec "silent !ln -s Xsym"  top2_dir
1242f9e5755SBram Moolenaar  let &rtp = top2_dir . ',' . top2_dir . '/after'
1252f9e5755SBram Moolenaar  let &packpath = &rtp
1262f9e5755SBram Moolenaar
1272f9e5755SBram Moolenaar  let s:plugdir = top2_dir . '/pack/mine/opt/mytest'
1282f9e5755SBram Moolenaar  call mkdir(s:plugdir . '/plugin', 'p')
1292f9e5755SBram Moolenaar
1302f9e5755SBram Moolenaar  exe 'split ' . s:plugdir . '/plugin/test.vim'
1312f9e5755SBram Moolenaar  call setline(1, 'let g:plugin_works = 44')
1322f9e5755SBram Moolenaar  wq
1332f9e5755SBram Moolenaar  let g:plugin_works = 0
1342f9e5755SBram Moolenaar
1352f9e5755SBram Moolenaar  packadd mytest
1362f9e5755SBram Moolenaar
1372f9e5755SBram Moolenaar  " Must have been inserted in the middle, not at the end
1382374faaeSBram Moolenaar  call assert_match('/pack/mine/opt/mytest,', &rtp)
1392f9e5755SBram Moolenaar  call assert_equal(44, g:plugin_works)
1402f9e5755SBram Moolenaar
1412f9e5755SBram Moolenaar  " No change when doing it again.
1422f9e5755SBram Moolenaar  let rtp_before = &rtp
1432f9e5755SBram Moolenaar  packadd mytest
1442f9e5755SBram Moolenaar  call assert_equal(rtp_before, &rtp)
1452f9e5755SBram Moolenaar
1462f9e5755SBram Moolenaar  set rtp&
1472f9e5755SBram Moolenaar  let rtp = &rtp
14824f8f543SBram Moolenaar  exec "silent !rm" top2_dir
1492f9e5755SBram Moolenaarendfunc
1502f9e5755SBram Moolenaar
1512374faaeSBram Moolenaarfunc Test_packadd_symlink_dir2()
152*6d91bcb4SBram Moolenaar  CheckUnix
1532374faaeSBram Moolenaar  let top2_dir = s:topdir . '/Xdir2'
1542374faaeSBram Moolenaar  let real_dir = s:topdir . '/Xsym/pack'
1552374faaeSBram Moolenaar  call mkdir(top2_dir, 'p')
1562374faaeSBram Moolenaar  call mkdir(real_dir, 'p')
1572374faaeSBram Moolenaar  let &rtp = top2_dir . ',' . top2_dir . '/after'
1582374faaeSBram Moolenaar  let &packpath = &rtp
1592374faaeSBram Moolenaar
1602374faaeSBram Moolenaar  exec "silent !ln -s ../Xsym/pack"  top2_dir . '/pack'
1612374faaeSBram Moolenaar  let s:plugdir = top2_dir . '/pack/mine/opt/mytest'
1622374faaeSBram Moolenaar  call mkdir(s:plugdir . '/plugin', 'p')
1632374faaeSBram Moolenaar
1642374faaeSBram Moolenaar  exe 'split ' . s:plugdir . '/plugin/test.vim'
1652374faaeSBram Moolenaar  call setline(1, 'let g:plugin_works = 48')
1662374faaeSBram Moolenaar  wq
1672374faaeSBram Moolenaar  let g:plugin_works = 0
1682374faaeSBram Moolenaar
1692374faaeSBram Moolenaar  packadd mytest
1702374faaeSBram Moolenaar
1712374faaeSBram Moolenaar  " Must have been inserted in the middle, not at the end
1722374faaeSBram Moolenaar  call assert_match('/Xdir2/pack/mine/opt/mytest,', &rtp)
1732374faaeSBram Moolenaar  call assert_equal(48, g:plugin_works)
1742374faaeSBram Moolenaar
1752374faaeSBram Moolenaar  " No change when doing it again.
1762374faaeSBram Moolenaar  let rtp_before = &rtp
1772374faaeSBram Moolenaar  packadd mytest
1782374faaeSBram Moolenaar  call assert_equal(rtp_before, &rtp)
1792374faaeSBram Moolenaar
1802374faaeSBram Moolenaar  set rtp&
1812374faaeSBram Moolenaar  let rtp = &rtp
1822374faaeSBram Moolenaar  exec "silent !rm" top2_dir . '/pack'
1832374faaeSBram Moolenaar  exec "silent !rmdir" top2_dir
1842374faaeSBram Moolenaarendfunc
1852374faaeSBram Moolenaar
18635ca0e7aSBram Moolenaar" Check command-line completion for 'packadd'
18735ca0e7aSBram Moolenaarfunc Test_packadd_completion()
18835ca0e7aSBram Moolenaar  let optdir1 = &packpath . '/pack/mine/opt'
18935ca0e7aSBram Moolenaar  let optdir2 = &packpath . '/pack/candidate/opt'
19035ca0e7aSBram Moolenaar
19135ca0e7aSBram Moolenaar  call mkdir(optdir1 . '/pluginA', 'p')
19235ca0e7aSBram Moolenaar  call mkdir(optdir1 . '/pluginC', 'p')
19335ca0e7aSBram Moolenaar  call mkdir(optdir2 . '/pluginB', 'p')
19435ca0e7aSBram Moolenaar  call mkdir(optdir2 . '/pluginC', 'p')
19535ca0e7aSBram Moolenaar
19635ca0e7aSBram Moolenaar  let li = []
19735ca0e7aSBram Moolenaar  call feedkeys(":packadd \<Tab>')\<C-B>call add(li, '\<CR>", 't')
19835ca0e7aSBram Moolenaar  call feedkeys(":packadd " . repeat("\<Tab>", 2) . "')\<C-B>call add(li, '\<CR>", 't')
19935ca0e7aSBram Moolenaar  call feedkeys(":packadd " . repeat("\<Tab>", 3) . "')\<C-B>call add(li, '\<CR>", 't')
20035ca0e7aSBram Moolenaar  call feedkeys(":packadd " . repeat("\<Tab>", 4) . "')\<C-B>call add(li, '\<CR>", 'tx')
20135ca0e7aSBram Moolenaar  call assert_equal("packadd pluginA", li[0])
20235ca0e7aSBram Moolenaar  call assert_equal("packadd pluginB", li[1])
20335ca0e7aSBram Moolenaar  call assert_equal("packadd pluginC", li[2])
20435ca0e7aSBram Moolenaar  call assert_equal("packadd ", li[3])
20535ca0e7aSBram Moolenaarendfunc
2062d8f56acSBram Moolenaar
2072d8f56acSBram Moolenaarfunc Test_packloadall()
20849b27326SBram Moolenaar  " plugin foo with an autoload directory
20949b27326SBram Moolenaar  let fooplugindir = &packpath . '/pack/mine/start/foo/plugin'
21049b27326SBram Moolenaar  call mkdir(fooplugindir, 'p')
21149b27326SBram Moolenaar  call writefile(['let g:plugin_foo_number = 1234',
21249b27326SBram Moolenaar	\ 'let g:plugin_foo_auto = bbb#value',
21349b27326SBram Moolenaar	\ 'let g:plugin_extra_auto = extra#value'], fooplugindir . '/bar.vim')
21449b27326SBram Moolenaar  let fooautodir = &packpath . '/pack/mine/start/foo/autoload'
21549b27326SBram Moolenaar  call mkdir(fooautodir, 'p')
21649b27326SBram Moolenaar  call writefile(['let bar#value = 77'], fooautodir . '/bar.vim')
21749b27326SBram Moolenaar
21849b27326SBram Moolenaar  " plugin aaa with an autoload directory
21949b27326SBram Moolenaar  let aaaplugindir = &packpath . '/pack/mine/start/aaa/plugin'
22049b27326SBram Moolenaar  call mkdir(aaaplugindir, 'p')
22149b27326SBram Moolenaar  call writefile(['let g:plugin_aaa_number = 333',
22249b27326SBram Moolenaar	\ 'let g:plugin_aaa_auto = bar#value'], aaaplugindir . '/bbb.vim')
22349b27326SBram Moolenaar  let aaaautodir = &packpath . '/pack/mine/start/aaa/autoload'
22449b27326SBram Moolenaar  call mkdir(aaaautodir, 'p')
22549b27326SBram Moolenaar  call writefile(['let bbb#value = 55'], aaaautodir . '/bbb.vim')
22649b27326SBram Moolenaar
22749b27326SBram Moolenaar  " plugin extra with only an autoload directory
22849b27326SBram Moolenaar  let extraautodir = &packpath . '/pack/mine/start/extra/autoload'
22949b27326SBram Moolenaar  call mkdir(extraautodir, 'p')
23049b27326SBram Moolenaar  call writefile(['let extra#value = 99'], extraautodir . '/extra.vim')
23149b27326SBram Moolenaar
2322d8f56acSBram Moolenaar  packloadall
2332d8f56acSBram Moolenaar  call assert_equal(1234, g:plugin_foo_number)
23449b27326SBram Moolenaar  call assert_equal(55, g:plugin_foo_auto)
23549b27326SBram Moolenaar  call assert_equal(99, g:plugin_extra_auto)
23649b27326SBram Moolenaar  call assert_equal(333, g:plugin_aaa_number)
23749b27326SBram Moolenaar  call assert_equal(77, g:plugin_aaa_auto)
2382d8f56acSBram Moolenaar
2392d8f56acSBram Moolenaar  " only works once
24049b27326SBram Moolenaar  call writefile(['let g:plugin_bar_number = 4321'], fooplugindir . '/bar2.vim')
2412d8f56acSBram Moolenaar  packloadall
2422d8f56acSBram Moolenaar  call assert_false(exists('g:plugin_bar_number'))
2432d8f56acSBram Moolenaar
2442d8f56acSBram Moolenaar  " works when ! used
2452d8f56acSBram Moolenaar  packloadall!
2462d8f56acSBram Moolenaar  call assert_equal(4321, g:plugin_bar_number)
2472d8f56acSBram Moolenaarendfunc
2486bef5306SBram Moolenaar
2496bef5306SBram Moolenaarfunc Test_helptags()
2506bef5306SBram Moolenaar  let docdir1 = &packpath . '/pack/mine/start/foo/doc'
2516bef5306SBram Moolenaar  let docdir2 = &packpath . '/pack/mine/start/bar/doc'
2526bef5306SBram Moolenaar  call mkdir(docdir1, 'p')
2536bef5306SBram Moolenaar  call mkdir(docdir2, 'p')
2546bef5306SBram Moolenaar  call writefile(['look here: *look-here*'], docdir1 . '/bar.txt')
2556bef5306SBram Moolenaar  call writefile(['look away: *look-away*'], docdir2 . '/foo.txt')
2566bef5306SBram Moolenaar  exe 'set rtp=' . &packpath . '/pack/mine/start/foo,' . &packpath . '/pack/mine/start/bar'
2576bef5306SBram Moolenaar
2586bef5306SBram Moolenaar  helptags ALL
2596bef5306SBram Moolenaar
2606bef5306SBram Moolenaar  let tags1 = readfile(docdir1 . '/tags')
2612374faaeSBram Moolenaar  call assert_match('look-here', tags1[0])
2626bef5306SBram Moolenaar  let tags2 = readfile(docdir2 . '/tags')
2632374faaeSBram Moolenaar  call assert_match('look-away', tags2[0])
2645d98dc2aSBram Moolenaar
2655d98dc2aSBram Moolenaar  call assert_fails('helptags abcxyz', 'E150:')
2666bef5306SBram Moolenaarendfunc
2677f8989ddSBram Moolenaar
2687f8989ddSBram Moolenaarfunc Test_colorscheme()
2697f8989ddSBram Moolenaar  let colordirrun = &packpath . '/runtime/colors'
2707f8989ddSBram Moolenaar  let colordirstart = &packpath . '/pack/mine/start/foo/colors'
2717f8989ddSBram Moolenaar  let colordiropt = &packpath . '/pack/mine/opt/bar/colors'
2727f8989ddSBram Moolenaar  call mkdir(colordirrun, 'p')
2737f8989ddSBram Moolenaar  call mkdir(colordirstart, 'p')
2747f8989ddSBram Moolenaar  call mkdir(colordiropt, 'p')
2757f8989ddSBram Moolenaar  call writefile(['let g:found_one = 1'], colordirrun . '/one.vim')
2767f8989ddSBram Moolenaar  call writefile(['let g:found_two = 1'], colordirstart . '/two.vim')
2777f8989ddSBram Moolenaar  call writefile(['let g:found_three = 1'], colordiropt . '/three.vim')
2787f8989ddSBram Moolenaar  exe 'set rtp=' . &packpath . '/runtime'
2797f8989ddSBram Moolenaar
2807f8989ddSBram Moolenaar  colorscheme one
2817f8989ddSBram Moolenaar  call assert_equal(1, g:found_one)
2827f8989ddSBram Moolenaar  colorscheme two
2837f8989ddSBram Moolenaar  call assert_equal(1, g:found_two)
2847f8989ddSBram Moolenaar  colorscheme three
2857f8989ddSBram Moolenaar  call assert_equal(1, g:found_three)
2867f8989ddSBram Moolenaarendfunc
2878dcf259dSBram Moolenaar
28852f9c190SBram Moolenaarfunc Test_colorscheme_completion()
28952f9c190SBram Moolenaar  let colordirrun = &packpath . '/runtime/colors'
29052f9c190SBram Moolenaar  let colordirstart = &packpath . '/pack/mine/start/foo/colors'
29152f9c190SBram Moolenaar  let colordiropt = &packpath . '/pack/mine/opt/bar/colors'
29252f9c190SBram Moolenaar  call mkdir(colordirrun, 'p')
29352f9c190SBram Moolenaar  call mkdir(colordirstart, 'p')
29452f9c190SBram Moolenaar  call mkdir(colordiropt, 'p')
29552f9c190SBram Moolenaar  call writefile(['let g:found_one = 1'], colordirrun . '/one.vim')
29652f9c190SBram Moolenaar  call writefile(['let g:found_two = 1'], colordirstart . '/two.vim')
29752f9c190SBram Moolenaar  call writefile(['let g:found_three = 1'], colordiropt . '/three.vim')
29852f9c190SBram Moolenaar  exe 'set rtp=' . &packpath . '/runtime'
29952f9c190SBram Moolenaar
30052f9c190SBram Moolenaar  let li=[]
30152f9c190SBram Moolenaar  call feedkeys(":colorscheme " . repeat("\<Tab>", 1) . "')\<C-B>call add(li, '\<CR>", 't')
30252f9c190SBram Moolenaar  call feedkeys(":colorscheme " . repeat("\<Tab>", 2) . "')\<C-B>call add(li, '\<CR>", 't')
30352f9c190SBram Moolenaar  call feedkeys(":colorscheme " . repeat("\<Tab>", 3) . "')\<C-B>call add(li, '\<CR>", 't')
30452f9c190SBram Moolenaar  call feedkeys(":colorscheme " . repeat("\<Tab>", 4) . "')\<C-B>call add(li, '\<CR>", 'tx')
30552f9c190SBram Moolenaar  call assert_equal("colorscheme one", li[0])
30652f9c190SBram Moolenaar  call assert_equal("colorscheme three", li[1])
30752f9c190SBram Moolenaar  call assert_equal("colorscheme two", li[2])
30852f9c190SBram Moolenaar  call assert_equal("colorscheme ", li[3])
30952f9c190SBram Moolenaarendfunc
31052f9c190SBram Moolenaar
3118dcf259dSBram Moolenaarfunc Test_runtime()
3128dcf259dSBram Moolenaar  let rundir = &packpath . '/runtime/extra'
3138dcf259dSBram Moolenaar  let startdir = &packpath . '/pack/mine/start/foo/extra'
3148dcf259dSBram Moolenaar  let optdir = &packpath . '/pack/mine/opt/bar/extra'
3158dcf259dSBram Moolenaar  call mkdir(rundir, 'p')
3168dcf259dSBram Moolenaar  call mkdir(startdir, 'p')
3178dcf259dSBram Moolenaar  call mkdir(optdir, 'p')
3188dcf259dSBram Moolenaar  call writefile(['let g:sequence .= "run"'], rundir . '/bar.vim')
3198dcf259dSBram Moolenaar  call writefile(['let g:sequence .= "start"'], startdir . '/bar.vim')
3208dcf259dSBram Moolenaar  call writefile(['let g:sequence .= "foostart"'], startdir . '/foo.vim')
3218dcf259dSBram Moolenaar  call writefile(['let g:sequence .= "opt"'], optdir . '/bar.vim')
3228dcf259dSBram Moolenaar  call writefile(['let g:sequence .= "xxxopt"'], optdir . '/xxx.vim')
3238dcf259dSBram Moolenaar  exe 'set rtp=' . &packpath . '/runtime'
3248dcf259dSBram Moolenaar
3258dcf259dSBram Moolenaar  let g:sequence = ''
3268dcf259dSBram Moolenaar  runtime extra/bar.vim
3278dcf259dSBram Moolenaar  call assert_equal('run', g:sequence)
3288dcf259dSBram Moolenaar  let g:sequence = ''
3298dcf259dSBram Moolenaar  runtime START extra/bar.vim
3308dcf259dSBram Moolenaar  call assert_equal('start', g:sequence)
3318dcf259dSBram Moolenaar  let g:sequence = ''
3328dcf259dSBram Moolenaar  runtime OPT extra/bar.vim
3338dcf259dSBram Moolenaar  call assert_equal('opt', g:sequence)
3348dcf259dSBram Moolenaar  let g:sequence = ''
3358dcf259dSBram Moolenaar  runtime PACK extra/bar.vim
3368dcf259dSBram Moolenaar  call assert_equal('start', g:sequence)
3378dcf259dSBram Moolenaar  let g:sequence = ''
3388dcf259dSBram Moolenaar  runtime! PACK extra/bar.vim
3398dcf259dSBram Moolenaar  call assert_equal('startopt', g:sequence)
3408dcf259dSBram Moolenaar  let g:sequence = ''
3418dcf259dSBram Moolenaar  runtime PACK extra/xxx.vim
3428dcf259dSBram Moolenaar  call assert_equal('xxxopt', g:sequence)
3438dcf259dSBram Moolenaar
3448dcf259dSBram Moolenaar  let g:sequence = ''
3458dcf259dSBram Moolenaar  runtime ALL extra/bar.vim
3468dcf259dSBram Moolenaar  call assert_equal('run', g:sequence)
3478dcf259dSBram Moolenaar  let g:sequence = ''
3488dcf259dSBram Moolenaar  runtime ALL extra/foo.vim
3498dcf259dSBram Moolenaar  call assert_equal('foostart', g:sequence)
3508dcf259dSBram Moolenaar  let g:sequence = ''
3518dcf259dSBram Moolenaar  runtime! ALL extra/xxx.vim
3528dcf259dSBram Moolenaar  call assert_equal('xxxopt', g:sequence)
3538dcf259dSBram Moolenaar  let g:sequence = ''
3548dcf259dSBram Moolenaar  runtime! ALL extra/bar.vim
3558dcf259dSBram Moolenaar  call assert_equal('runstartopt', g:sequence)
3568dcf259dSBram Moolenaarendfunc
3575d98dc2aSBram Moolenaar
3585d98dc2aSBram Moolenaar" vim: shiftwidth=2 sts=2 expandtab
359