Merge #6827 'Always enable logging'

This commit is contained in:
Justin M. Keyes
2017-06-07 23:19:02 +02:00
committed by GitHub
23 changed files with 264 additions and 148 deletions

View File

@@ -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

View File

@@ -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.

View File

@@ -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()