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:
Justin M. Keyes
2023-01-16 20:43:13 +01:00
parent 9ccc6de8d3
commit 6ec7bcb618
5 changed files with 65 additions and 7 deletions

View File

@@ -1,4 +1,5 @@
local helpers = require('test.functional.helpers')(after_each)
local assert_log = helpers.assert_log
local eq, clear, eval, command, nvim, next_msg =
helpers.eq, helpers.clear, helpers.eval, helpers.command, helpers.nvim,
helpers.next_msg
@@ -9,6 +10,8 @@ local is_ci = helpers.is_ci
local assert_alive = helpers.assert_alive
local skip = helpers.skip
local testlog = 'Xtest-server-notify-log'
describe('notify', function()
local channel
@@ -17,6 +20,10 @@ describe('notify', function()
channel = nvim('get_api_info')[1]
end)
after_each(function()
os.remove(testlog)
end)
describe('passing a valid channel id', function()
it('sends the notification/args to the corresponding channel', function()
eval('rpcnotify('..channel..', "test-event", 1, 2, 3)')
@@ -72,8 +79,14 @@ describe('notify', function()
end)
it('unsubscribe non-existing event #8745', function()
clear{env={
NVIM_LOG_FILE=testlog,
}}
nvim('subscribe', 'event1')
nvim('unsubscribe', 'doesnotexist')
retry(nil, 1000, function()
assert_log("tried to unsubscribe unknown event 'doesnotexist'", testlog, 10)
end)
nvim('unsubscribe', 'event1')
assert_alive()
end)