diff options
author | zeertzjq <zeertzjq@outlook.com> | 2023-07-19 07:14:32 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-07-19 07:14:32 +0800 |
commit | ab5cdbd167353a0c6a0ef0b864d78af13029339c (patch) | |
tree | 5a3e8b3d5a56d6cea9b878103f7563c0756fce5b /test/functional/core/startup_spec.lua | |
parent | be74807eef13ff8c90d55cf8b22b01d6d33b1641 (diff) | |
download | rneovim-ab5cdbd167353a0c6a0ef0b864d78af13029339c.tar.gz rneovim-ab5cdbd167353a0c6a0ef0b864d78af13029339c.tar.bz2 rneovim-ab5cdbd167353a0c6a0ef0b864d78af13029339c.zip |
test(startup_spec): add a test for #18315 (#24391)
Diffstat (limited to 'test/functional/core/startup_spec.lua')
-rw-r--r-- | test/functional/core/startup_spec.lua | 42 |
1 files changed, 32 insertions, 10 deletions
diff --git a/test/functional/core/startup_spec.lua b/test/functional/core/startup_spec.lua index c541e32353..dcbb55a9d7 100644 --- a/test/functional/core/startup_spec.lua +++ b/test/functional/core/startup_spec.lua @@ -917,27 +917,27 @@ describe('runtime:', function() local plugin_folder_path = table.concat({xconfig, 'nvim', 'plugin'}, pathsep) local plugin_file_path = table.concat({plugin_folder_path, 'plugin.lua'}, pathsep) mkdir_p(plugin_folder_path) + finally(function() + rmdir(plugin_folder_path) + end) write_file(plugin_file_path, [[ vim.g.lua_plugin = 1 ]]) clear{ args_rm={'-u'}, env=xenv } eq(1, eval('g:lua_plugin')) - rmdir(plugin_folder_path) end) it('loads plugin/*.lua from start packages', function() - local plugin_path = table.concat({xconfig, 'nvim', 'pack', 'category', - 'start', 'test_plugin'}, pathsep) + local plugin_path = table.concat({xconfig, 'nvim', 'pack', 'category', 'start', 'test_plugin'}, pathsep) local plugin_folder_path = table.concat({plugin_path, 'plugin'}, pathsep) - local plugin_file_path = table.concat({plugin_folder_path, 'plugin.lua'}, - pathsep) + local plugin_file_path = table.concat({plugin_folder_path, 'plugin.lua'}, pathsep) local profiler_file = 'test_startuptime.log' + mkdir_p(plugin_folder_path) finally(function() os.remove(profiler_file) rmdir(plugin_path) end) - mkdir_p(plugin_folder_path) write_file(plugin_file_path, [[vim.g.lua_plugin = 2]]) clear{ args_rm={'-u'}, args={'--startuptime', profiler_file}, env=xenv } @@ -961,19 +961,41 @@ describe('runtime:', function() local plugin_after_path = table.concat({plugin_path, 'after', 'plugin'}, pathsep) local plugin_file_path = table.concat({plugin_folder_path, 'plugin.lua'}, pathsep) local plugin_after_file_path = table.concat({plugin_after_path, 'helloo.lua'}, pathsep) - mkdir_p(plugin_folder_path) - write_file(plugin_file_path, [[table.insert(_G.lista, "unos")]]) mkdir_p(plugin_after_path) + finally(function() + rmdir(plugin_path) + end) + + write_file(plugin_file_path, [[table.insert(_G.lista, "unos")]]) write_file(plugin_after_file_path, [[table.insert(_G.lista, "dos")]]) clear{ args_rm={'-u'}, args={'--cmd', 'lua _G.lista = {}'}, env=xenv } eq({'unos', 'dos'}, exec_lua "return _G.lista") - - rmdir(plugin_path) end) + it('no crash setting &rtp in plugins with :packloadall called before #18315', function() + local plugin_folder_path = table.concat({xconfig, 'nvim', 'plugin'}, pathsep) + mkdir_p(plugin_folder_path) + finally(function() + rmdir(plugin_folder_path) + end) + + write_file(table.concat({plugin_folder_path, 'plugin.vim'}, pathsep), [[ + let &runtimepath = &runtimepath + let g:vim_plugin = 1 + ]]) + write_file(table.concat({plugin_folder_path, 'plugin.lua'}, pathsep), [[ + vim.o.runtimepath = vim.o.runtimepath + vim.g.lua_plugin = 1 + ]]) + + clear{ args_rm={'-u'}, args = {'--cmd', 'packloadall'}, env=xenv } + + eq(1, eval('g:vim_plugin')) + eq(1, eval('g:lua_plugin')) + end) it("loads ftdetect/*.{vim,lua} respecting 'rtp' order", function() local ftdetect_folder = table.concat({xconfig, 'nvim', 'ftdetect'}, pathsep) |