mirror of
https://github.com/neovim/neovim.git
synced 2025-11-26 04:00:45 +00:00
Merge #6827 'Always enable logging'
This commit is contained in:
@@ -2,6 +2,8 @@
|
||||
|
||||
Tests are run by `/cmake/RunTests.cmake` file, using busted.
|
||||
|
||||
For some failures, `.nvimlog` (or `$NVIM_LOG_FILE`) may provide insight.
|
||||
|
||||
## Directory structure
|
||||
|
||||
Directories with tests: `/test/benchmark` for benchmarks, `/test/functional` for
|
||||
|
||||
@@ -174,7 +174,7 @@ local os_name = (function()
|
||||
end)()
|
||||
|
||||
local function iswin()
|
||||
return os_name() == 'windows'
|
||||
return package.config:sub(1,1) == '\\'
|
||||
end
|
||||
|
||||
-- Executes a VimL function.
|
||||
|
||||
@@ -8,6 +8,8 @@ local clear = helpers.clear
|
||||
local eval = helpers.eval
|
||||
local eq = helpers.eq
|
||||
local neq = helpers.neq
|
||||
local mkdir = helpers.mkdir
|
||||
local rmdir = helpers.rmdir
|
||||
|
||||
local function init_session(...)
|
||||
local args = { helpers.nvim_prog, '-i', 'NONE', '--embed',
|
||||
@@ -121,6 +123,56 @@ describe('startup defaults', function()
|
||||
it('v:progpath is set to the absolute path', function()
|
||||
eq(eval("fnamemodify(v:progpath, ':p')"), eval('v:progpath'))
|
||||
end)
|
||||
|
||||
describe('$NVIM_LOG_FILE', function()
|
||||
-- TODO(jkeyes): use stdpath('data') instead.
|
||||
local datasubdir = helpers.iswin() and 'nvim-data' or 'nvim'
|
||||
local xdgdir = 'Xtest-startup-xdg-logpath'
|
||||
local xdgdatadir = xdgdir..'/'..datasubdir
|
||||
after_each(function()
|
||||
os.remove('Xtest-logpath')
|
||||
rmdir(xdgdir)
|
||||
end)
|
||||
|
||||
it('is used if expansion succeeds', function()
|
||||
clear({env={
|
||||
NVIM_LOG_FILE='Xtest-logpath',
|
||||
}})
|
||||
eq('Xtest-logpath', eval('$NVIM_LOG_FILE'))
|
||||
end)
|
||||
it('defaults to stdpath("data")/log if empty', function()
|
||||
eq(true, mkdir(xdgdir) and mkdir(xdgdatadir))
|
||||
clear({env={
|
||||
XDG_DATA_HOME=xdgdir,
|
||||
NVIM_LOG_FILE='', -- Empty is invalid.
|
||||
}})
|
||||
-- server_start() calls ELOG, which tickles log_path_init().
|
||||
pcall(command, 'call serverstart(serverlist()[0])')
|
||||
|
||||
eq(xdgdir..'/'..datasubdir..'/log', string.gsub(eval('$NVIM_LOG_FILE'), '\\', '/'))
|
||||
end)
|
||||
it('defaults to stdpath("data")/log if invalid', function()
|
||||
eq(true, mkdir(xdgdir) and mkdir(xdgdatadir))
|
||||
clear({env={
|
||||
XDG_DATA_HOME=xdgdir,
|
||||
NVIM_LOG_FILE='.', -- Any directory is invalid.
|
||||
}})
|
||||
-- server_start() calls ELOG, which tickles log_path_init().
|
||||
pcall(command, 'call serverstart(serverlist()[0])')
|
||||
|
||||
eq(xdgdir..'/'..datasubdir..'/log', string.gsub(eval('$NVIM_LOG_FILE'), '\\', '/'))
|
||||
end)
|
||||
it('defaults to .nvimlog if stdpath("data") is invalid', function()
|
||||
clear({env={
|
||||
XDG_DATA_HOME='Xtest-missing-xdg-dir',
|
||||
NVIM_LOG_FILE='.', -- Any directory is invalid.
|
||||
}})
|
||||
-- server_start() calls ELOG, which tickles log_path_init().
|
||||
pcall(command, 'call serverstart(serverlist()[0])')
|
||||
|
||||
eq('.nvimlog', eval('$NVIM_LOG_FILE'))
|
||||
end)
|
||||
end)
|
||||
end)
|
||||
|
||||
describe('XDG-based defaults', function()
|
||||
|
||||
Reference in New Issue
Block a user