mirror of
https://github.com/neovim/neovim.git
synced 2025-12-16 03:15:39 +00:00
test: avoid noise in NVIM_LOG_FILE
Problem:
Tests that _intentionally_ fail certain conditions cause noise in
$NVIM_LOG_FILE:
$NVIM_LOG_FILE: /home/runner/work/neovim/neovim/build/.nvimlog
(last 100 lines)
WRN 2023-01-16T18:26:27.673 T599.7799.0 unsubscribe:519: RPC: ch 1: tried to unsubscribe unknown event 'doesnotexist'
WRN 2023-01-16T18:29:00.557 ?.11151 server_start:163: Failed to start server: no such file or directory: /X/X/X/...
WRN 2023-01-16T18:33:07.269 127.0.0.1:12345 server_start:163: Failed to start server: address already in use: 127.0.0.1
...
-- Output to stderr:
module 'vim.shared' not found:
no field package.preload['vim.shared']
no file './vim/shared.lua'
no file '/home/runner/nvim-deps/usr/share/lua/5.1/vim/shared.lua'
no file '/home/runner/nvim-deps/usr/share/lua/5.1/vim/shared/init.lua'
no file '/home/runner/nvim-deps/usr/lib/lua/5.1/vim/shared.lua'
no file '/home/runner/nvim-deps/usr/lib/lua/5.1/vim/shared/init.lua'
no file './vim/shared.so'
...
E970: Failed to initialize builtin lua modules
Solution:
- Log to a private $NVIM_LOG_FILE in tests that intentionally fail and
cause ERR log messages.
- Assert that the expected messages are actually logged.
This commit is contained in:
@@ -3,6 +3,8 @@ local helpers = require('test.functional.helpers')(after_each)
|
||||
local Screen = require('test.functional.ui.screen')
|
||||
|
||||
local assert_alive = helpers.assert_alive
|
||||
local assert_log = helpers.assert_log
|
||||
local retry = helpers.retry
|
||||
local meths = helpers.meths
|
||||
local command = helpers.command
|
||||
local clear = helpers.clear
|
||||
@@ -20,6 +22,8 @@ local tbl_contains = helpers.tbl_contains
|
||||
local expect_exit = helpers.expect_exit
|
||||
local is_os = helpers.is_os
|
||||
|
||||
local testlog = 'Xtest-defaults-log'
|
||||
|
||||
describe('startup defaults', function()
|
||||
describe(':filetype', function()
|
||||
local function expect_filetype(expected)
|
||||
@@ -275,6 +279,10 @@ describe('XDG defaults', function()
|
||||
-- Need separate describe() blocks to not run clear() twice.
|
||||
-- Do not put before_each() here for the same reasons.
|
||||
|
||||
after_each(function()
|
||||
os.remove(testlog)
|
||||
end)
|
||||
|
||||
it("&runtimepath data-dir matches stdpath('data') #9910", function()
|
||||
clear()
|
||||
local rtp = eval('split(&runtimepath, ",")')
|
||||
@@ -337,6 +345,7 @@ describe('XDG defaults', function()
|
||||
clear({
|
||||
args_rm={'runtimepath'},
|
||||
env={
|
||||
NVIM_LOG_FILE=testlog,
|
||||
XDG_CONFIG_HOME=(root_path .. ('/x'):rep(4096)),
|
||||
XDG_CONFIG_DIRS=(root_path .. ('/a'):rep(2048)
|
||||
.. env_sep.. root_path .. ('/b'):rep(2048)
|
||||
@@ -351,6 +360,10 @@ describe('XDG defaults', function()
|
||||
end)
|
||||
|
||||
it('are correctly set', function()
|
||||
retry(nil, 1000, function()
|
||||
assert_log('Failed to start server: no such file or directory: /X/X/X', testlog, 10)
|
||||
end)
|
||||
|
||||
local vimruntime, libdir = vimruntime_and_libdir()
|
||||
|
||||
eq(((root_path .. ('/x'):rep(4096) .. '/nvim'
|
||||
@@ -412,6 +425,7 @@ describe('XDG defaults', function()
|
||||
clear({
|
||||
args_rm={'runtimepath'},
|
||||
env={
|
||||
NVIM_LOG_FILE=testlog,
|
||||
XDG_CONFIG_HOME='$XDG_DATA_HOME',
|
||||
XDG_CONFIG_DIRS='$XDG_DATA_DIRS',
|
||||
XDG_DATA_HOME='$XDG_CONFIG_HOME',
|
||||
@@ -422,6 +436,9 @@ describe('XDG defaults', function()
|
||||
end)
|
||||
|
||||
it('are not expanded', function()
|
||||
retry(nil, 1000, function()
|
||||
assert_log('Failed to start server: no such file or directory: %$XDG_RUNTIME_DIR%/', testlog, 10)
|
||||
end)
|
||||
local vimruntime, libdir = vimruntime_and_libdir()
|
||||
eq((('$XDG_DATA_HOME/nvim'
|
||||
.. ',$XDG_DATA_DIRS/nvim'
|
||||
|
||||
Reference in New Issue
Block a user