281 lines
16 KiB
Lua
Executable File
281 lines
16 KiB
Lua
Executable File
local helpers = require('test.functional.helpers')()
|
|
|
|
local clear = helpers.clear
|
|
local exec_lua = helpers.exec_lua
|
|
local eq = helpers.eq
|
|
local cmd = helpers.command
|
|
|
|
local nvim07
|
|
|
|
local function gen_exp(exp)
|
|
local neovim_dir = nvim07 and 'neovim-v0.7.0' or 'neovim-master'
|
|
local cwd = exec_lua('return vim.loop.cwd()')
|
|
|
|
local exp1 = {}
|
|
for _, v in pairs(exp) do
|
|
if type(v) == 'string' then
|
|
v = v:gsub('{CWD}', cwd)
|
|
v = v:gsub('{NVIM}', neovim_dir)
|
|
exp1[#exp1+1] = v
|
|
end
|
|
end
|
|
|
|
return exp1
|
|
end
|
|
|
|
local gen_exp_cold = function()
|
|
return gen_exp{
|
|
'Creating cache for module plugins',
|
|
'No cache for path ./test/lua/plugins.lua',
|
|
'Creating cache for path ./test/lua/plugins.lua',
|
|
'Creating cache for module telescope',
|
|
'No cache for path {CWD}/scratch/telescope.nvim/lua/telescope/init.lua',
|
|
'Creating cache for path {CWD}/scratch/telescope.nvim/lua/telescope/init.lua',
|
|
'Creating cache for module telescope/_extensions',
|
|
'No cache for path {CWD}/scratch/telescope.nvim/lua/telescope/_extensions/init.lua',
|
|
'Creating cache for path {CWD}/scratch/telescope.nvim/lua/telescope/_extensions/init.lua',
|
|
'Creating cache for module gitsigns',
|
|
'No cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns.lua',
|
|
'Creating cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns.lua',
|
|
'Creating cache for module plenary/async/async',
|
|
'No cache for path {CWD}/scratch/plenary.nvim/lua/plenary/async/async.lua',
|
|
'Creating cache for path {CWD}/scratch/plenary.nvim/lua/plenary/async/async.lua',
|
|
'Creating cache for module plenary/vararg',
|
|
'No cache for path {CWD}/scratch/plenary.nvim/lua/plenary/vararg/init.lua',
|
|
'Creating cache for path {CWD}/scratch/plenary.nvim/lua/plenary/vararg/init.lua',
|
|
'Creating cache for module plenary/vararg/rotate',
|
|
'No cache for path {CWD}/scratch/plenary.nvim/lua/plenary/vararg/rotate.lua',
|
|
'Creating cache for path {CWD}/scratch/plenary.nvim/lua/plenary/vararg/rotate.lua',
|
|
'Creating cache for module plenary/tbl',
|
|
'No cache for path {CWD}/scratch/plenary.nvim/lua/plenary/tbl.lua',
|
|
'Creating cache for path {CWD}/scratch/plenary.nvim/lua/plenary/tbl.lua',
|
|
'Creating cache for module plenary/errors',
|
|
'No cache for path {CWD}/scratch/plenary.nvim/lua/plenary/errors.lua',
|
|
'Creating cache for path {CWD}/scratch/plenary.nvim/lua/plenary/errors.lua',
|
|
'Creating cache for module plenary/functional',
|
|
'No cache for path {CWD}/scratch/plenary.nvim/lua/plenary/functional.lua',
|
|
'Creating cache for path {CWD}/scratch/plenary.nvim/lua/plenary/functional.lua',
|
|
'Creating cache for module plenary/async/util',
|
|
'No cache for path {CWD}/scratch/plenary.nvim/lua/plenary/async/util.lua',
|
|
'Creating cache for path {CWD}/scratch/plenary.nvim/lua/plenary/async/util.lua',
|
|
'Creating cache for module plenary/async/control',
|
|
'No cache for path {CWD}/scratch/plenary.nvim/lua/plenary/async/control.lua',
|
|
'Creating cache for path {CWD}/scratch/plenary.nvim/lua/plenary/async/control.lua',
|
|
'Creating cache for module plenary/async/structs',
|
|
'No cache for path {CWD}/scratch/plenary.nvim/lua/plenary/async/structs.lua',
|
|
'Creating cache for path {CWD}/scratch/plenary.nvim/lua/plenary/async/structs.lua',
|
|
'Creating cache for module gitsigns/status',
|
|
'No cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/status.lua',
|
|
'Creating cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/status.lua',
|
|
'Creating cache for module gitsigns/git',
|
|
'No cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/git.lua',
|
|
'Creating cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/git.lua',
|
|
'Creating cache for module plenary/job',
|
|
'No cache for path {CWD}/scratch/plenary.nvim/lua/plenary/job.lua',
|
|
'Creating cache for path {CWD}/scratch/plenary.nvim/lua/plenary/job.lua',
|
|
'Creating cache for module gitsigns/debug',
|
|
'No cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/debug.lua',
|
|
'Creating cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/debug.lua',
|
|
'Creating cache for module gitsigns/util',
|
|
'No cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/util.lua',
|
|
'Creating cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/util.lua',
|
|
'Creating cache for module gitsigns/hunks',
|
|
'No cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/hunks.lua',
|
|
'Creating cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/hunks.lua',
|
|
'Creating cache for module gitsigns/signs',
|
|
'No cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/signs.lua',
|
|
'Creating cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/signs.lua',
|
|
'Creating cache for module gitsigns/config',
|
|
'No cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/config.lua',
|
|
'Creating cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/config.lua',
|
|
'Creating cache for module gitsigns/manager',
|
|
'No cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/manager.lua',
|
|
'Creating cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/manager.lua',
|
|
'Creating cache for module gitsigns/cache',
|
|
'No cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/cache.lua',
|
|
'Creating cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/cache.lua',
|
|
'Creating cache for module gitsigns/debounce',
|
|
'No cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/debounce.lua',
|
|
'Creating cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/debounce.lua',
|
|
'Creating cache for module gitsigns/highlight',
|
|
'No cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/highlight.lua',
|
|
'Creating cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/highlight.lua',
|
|
'Creating cache for module spellsitter',
|
|
'No cache for path {CWD}/scratch/spellsitter.nvim/lua/spellsitter.lua',
|
|
'Creating cache for path {CWD}/scratch/spellsitter.nvim/lua/spellsitter.lua',
|
|
'Creating cache for module vim/treesitter/query',
|
|
'No cache for path {CWD}/{NVIM}/runtime/lua/vim/treesitter/query.lua',
|
|
'Creating cache for path {CWD}/{NVIM}/runtime/lua/vim/treesitter/query.lua',
|
|
'Creating cache for module vim/treesitter/language',
|
|
'No cache for path {CWD}/{NVIM}/runtime/lua/vim/treesitter/language.lua',
|
|
'Creating cache for path {CWD}/{NVIM}/runtime/lua/vim/treesitter/language.lua',
|
|
'Creating cache for module vim/treesitter',
|
|
'No cache for path {CWD}/{NVIM}/runtime/lua/vim/treesitter.lua',
|
|
'Creating cache for path {CWD}/{NVIM}/runtime/lua/vim/treesitter.lua',
|
|
'Creating cache for module vim/treesitter/languagetree',
|
|
'No cache for path {CWD}/{NVIM}/runtime/lua/vim/treesitter/languagetree.lua',
|
|
'Creating cache for path {CWD}/{NVIM}/runtime/lua/vim/treesitter/languagetree.lua',
|
|
'Creating cache for module colorizer',
|
|
'No cache for path {CWD}/scratch/nvim-colorizer.lua/lua/colorizer.lua',
|
|
'Creating cache for path {CWD}/scratch/nvim-colorizer.lua/lua/colorizer.lua',
|
|
'Creating cache for module colorizer/nvim',
|
|
'No cache for path {CWD}/scratch/nvim-colorizer.lua/lua/colorizer/nvim.lua',
|
|
'Creating cache for path {CWD}/scratch/nvim-colorizer.lua/lua/colorizer/nvim.lua',
|
|
'Creating cache for module colorizer/trie',
|
|
'No cache for path {CWD}/scratch/nvim-colorizer.lua/lua/colorizer/trie.lua',
|
|
'Creating cache for path {CWD}/scratch/nvim-colorizer.lua/lua/colorizer/trie.lua',
|
|
'Creating cache for module lspconfig',
|
|
'No cache for path {CWD}/scratch/nvim-lspconfig/lua/lspconfig.lua',
|
|
'Creating cache for path {CWD}/scratch/nvim-lspconfig/lua/lspconfig.lua',
|
|
'Creating cache for module lspconfig/configs',
|
|
'No cache for path {CWD}/scratch/nvim-lspconfig/lua/lspconfig/configs.lua',
|
|
'Creating cache for path {CWD}/scratch/nvim-lspconfig/lua/lspconfig/configs.lua',
|
|
'Creating cache for module lspconfig/util',
|
|
'No cache for path {CWD}/scratch/nvim-lspconfig/lua/lspconfig/util.lua',
|
|
'Creating cache for path {CWD}/scratch/nvim-lspconfig/lua/lspconfig/util.lua',
|
|
'Creating cache for module vim/lsp',
|
|
'No cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp.lua',
|
|
'Creating cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp.lua',
|
|
'Creating cache for module vim/lsp/handlers',
|
|
'No cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/handlers.lua',
|
|
'Creating cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/handlers.lua',
|
|
'Creating cache for module vim/lsp/log',
|
|
'No cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/log.lua',
|
|
'Creating cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/log.lua',
|
|
'Creating cache for module vim/lsp/protocol',
|
|
'No cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/protocol.lua',
|
|
'Creating cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/protocol.lua',
|
|
'Creating cache for module vim/lsp/util',
|
|
'No cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/util.lua',
|
|
'Creating cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/util.lua',
|
|
'Creating cache for module vim/lsp/_snippet',
|
|
'No cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/_snippet.lua',
|
|
'Creating cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/_snippet.lua',
|
|
'Creating cache for module vim/highlight',
|
|
'No cache for path {CWD}/{NVIM}/runtime/lua/vim/highlight.lua',
|
|
'Creating cache for path {CWD}/{NVIM}/runtime/lua/vim/highlight.lua',
|
|
'Creating cache for module vim/lsp/rpc',
|
|
'No cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/rpc.lua',
|
|
'Creating cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/rpc.lua',
|
|
'Creating cache for module vim/lsp/sync',
|
|
'No cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/sync.lua',
|
|
'Creating cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/sync.lua',
|
|
'Creating cache for module vim/lsp/buf',
|
|
'No cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/buf.lua',
|
|
'Creating cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/buf.lua',
|
|
'Creating cache for module vim/lsp/diagnostic',
|
|
'No cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/diagnostic.lua',
|
|
'Creating cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/diagnostic.lua',
|
|
'Creating cache for module vim/lsp/codelens',
|
|
'No cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/codelens.lua',
|
|
'Creating cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/codelens.lua',
|
|
'Creating cache for module bufferline',
|
|
'No cache for path {CWD}/scratch/bufferline.nvim/lua/bufferline.lua',
|
|
'Creating cache for path {CWD}/scratch/bufferline.nvim/lua/bufferline.lua',
|
|
'Creating cache for module bufferline/constants',
|
|
'No cache for path {CWD}/scratch/bufferline.nvim/lua/bufferline/constants.lua',
|
|
'Creating cache for path {CWD}/scratch/bufferline.nvim/lua/bufferline/constants.lua',
|
|
'Creating cache for module bufferline/utils',
|
|
'No cache for path {CWD}/scratch/bufferline.nvim/lua/bufferline/utils.lua',
|
|
'Creating cache for path {CWD}/scratch/bufferline.nvim/lua/bufferline/utils.lua',
|
|
'Updating chunk cache file: scratch/cache/nvim/luacache_chunks',
|
|
'Updating chunk cache file: scratch/cache/nvim/luacache_modpaths'
|
|
}
|
|
end
|
|
|
|
local gen_exp_hot = function()
|
|
return gen_exp{
|
|
'Loading cache file scratch/cache/nvim/luacache_chunks',
|
|
'Loading cache file scratch/cache/nvim/luacache_modpaths',
|
|
'Loaded cache for path ./test/lua/plugins.lua',
|
|
'Loaded cache for path {CWD}/scratch/telescope.nvim/lua/telescope/init.lua',
|
|
'Loaded cache for path {CWD}/scratch/telescope.nvim/lua/telescope/_extensions/init.lua',
|
|
'Loaded cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns.lua',
|
|
'Loaded cache for path {CWD}/scratch/plenary.nvim/lua/plenary/async/async.lua',
|
|
'Loaded cache for path {CWD}/scratch/plenary.nvim/lua/plenary/vararg/init.lua',
|
|
'Loaded cache for path {CWD}/scratch/plenary.nvim/lua/plenary/vararg/rotate.lua',
|
|
'Loaded cache for path {CWD}/scratch/plenary.nvim/lua/plenary/tbl.lua',
|
|
'Loaded cache for path {CWD}/scratch/plenary.nvim/lua/plenary/errors.lua',
|
|
'Loaded cache for path {CWD}/scratch/plenary.nvim/lua/plenary/functional.lua',
|
|
'Loaded cache for path {CWD}/scratch/plenary.nvim/lua/plenary/async/util.lua',
|
|
'Loaded cache for path {CWD}/scratch/plenary.nvim/lua/plenary/async/control.lua',
|
|
'Loaded cache for path {CWD}/scratch/plenary.nvim/lua/plenary/async/structs.lua',
|
|
'Loaded cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/status.lua',
|
|
'Loaded cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/git.lua',
|
|
'Loaded cache for path {CWD}/scratch/plenary.nvim/lua/plenary/job.lua',
|
|
'Loaded cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/debug.lua',
|
|
'Loaded cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/util.lua',
|
|
'Loaded cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/hunks.lua',
|
|
'Loaded cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/signs.lua',
|
|
'Loaded cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/config.lua',
|
|
'Loaded cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/manager.lua',
|
|
'Loaded cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/cache.lua',
|
|
'Loaded cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/debounce.lua',
|
|
'Loaded cache for path {CWD}/scratch/gitsigns.nvim/lua/gitsigns/highlight.lua',
|
|
'Loaded cache for path {CWD}/scratch/spellsitter.nvim/lua/spellsitter.lua',
|
|
'Loaded cache for path {CWD}/{NVIM}/runtime/lua/vim/treesitter/query.lua',
|
|
'Loaded cache for path {CWD}/{NVIM}/runtime/lua/vim/treesitter/language.lua',
|
|
'Loaded cache for path {CWD}/{NVIM}/runtime/lua/vim/treesitter.lua',
|
|
'Loaded cache for path {CWD}/{NVIM}/runtime/lua/vim/treesitter/languagetree.lua',
|
|
'Loaded cache for path {CWD}/scratch/nvim-colorizer.lua/lua/colorizer.lua',
|
|
'Loaded cache for path {CWD}/scratch/nvim-colorizer.lua/lua/colorizer/nvim.lua',
|
|
'Loaded cache for path {CWD}/scratch/nvim-colorizer.lua/lua/colorizer/trie.lua',
|
|
'Loaded cache for path {CWD}/scratch/nvim-lspconfig/lua/lspconfig.lua',
|
|
'Loaded cache for path {CWD}/scratch/nvim-lspconfig/lua/lspconfig/configs.lua',
|
|
'Loaded cache for path {CWD}/scratch/nvim-lspconfig/lua/lspconfig/util.lua',
|
|
'Loaded cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp.lua',
|
|
'Loaded cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/handlers.lua',
|
|
'Loaded cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/log.lua',
|
|
'Loaded cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/protocol.lua',
|
|
'Loaded cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/util.lua',
|
|
'Loaded cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/_snippet.lua',
|
|
'Loaded cache for path {CWD}/{NVIM}/runtime/lua/vim/highlight.lua',
|
|
'Loaded cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/rpc.lua',
|
|
'Loaded cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/sync.lua',
|
|
'Loaded cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/buf.lua',
|
|
'Loaded cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/diagnostic.lua',
|
|
'Loaded cache for path {CWD}/{NVIM}/runtime/lua/vim/lsp/codelens.lua',
|
|
'Loaded cache for path {CWD}/scratch/bufferline.nvim/lua/bufferline.lua',
|
|
'Loaded cache for path {CWD}/scratch/bufferline.nvim/lua/bufferline/constants.lua',
|
|
'Loaded cache for path {CWD}/scratch/bufferline.nvim/lua/bufferline/utils.lua'
|
|
}
|
|
end
|
|
|
|
describe('impatient', function()
|
|
local function reset()
|
|
clear()
|
|
nvim07 = exec_lua('return vim.version().minor') == 7
|
|
cmd [[set runtimepath=$VIMRUNTIME,.,./test]]
|
|
cmd [[let $XDG_CACHE_HOME='scratch/cache']]
|
|
cmd [[set packpath=]]
|
|
end
|
|
|
|
before_each(function()
|
|
reset()
|
|
end)
|
|
|
|
it('load plugins without impatient', function()
|
|
exec_lua([[require('plugins')]])
|
|
end)
|
|
|
|
local function run()
|
|
exec_lua[[
|
|
require('impatient')
|
|
require('plugins')
|
|
_G.__luacache.save_cache()
|
|
]]
|
|
end
|
|
|
|
it('creates cache', function()
|
|
os.execute[[rm -rf scratch/cache]]
|
|
run()
|
|
eq(gen_exp_cold(), exec_lua("return _G.__luacache.log"))
|
|
end)
|
|
|
|
it('loads cache', function()
|
|
run()
|
|
eq(gen_exp_hot(), exec_lua("return _G.__luacache.log"))
|
|
end)
|
|
|
|
end)
|