aboutsummaryrefslogtreecommitdiff
path: root/test/helpers.lua
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2020-02-16 19:02:09 -0800
committerJustin M. Keyes <justinkz@gmail.com>2020-02-16 22:09:28 -0800
commit6e13b9d26134210f0963341bd77c64a4437f37ec (patch)
tree5d94ed3b0b007f4cd966d956f5cde241a8735b83 /test/helpers.lua
parenta446fbc8fa278d9c1e4144dc9767c9dc0b184583 (diff)
downloadrneovim-6e13b9d26134210f0963341bd77c64a4437f37ec.tar.gz
rneovim-6e13b9d26134210f0963341bd77c64a4437f37ec.tar.bz2
rneovim-6e13b9d26134210f0963341bd77c64a4437f37ec.zip
test/LSP: assert contents of log file
Diffstat (limited to 'test/helpers.lua')
-rw-r--r--test/helpers.lua22
1 files changed, 19 insertions, 3 deletions
diff --git a/test/helpers.lua b/test/helpers.lua
index d9e1f4a963..a31a7733bf 100644
--- a/test/helpers.lua
+++ b/test/helpers.lua
@@ -82,6 +82,22 @@ function module.matches(pat, actual)
error(string.format('Pattern does not match.\nPattern:\n%s\nActual:\n%s', pat, actual))
end
+--- Asserts that `pat` matches one or more lines in the tail of $NVIM_LOG_FILE.
+---
+--@param pat (string) Lua pattern to search for in the log file.
+--@param logfile (string, default=$NVIM_LOG_FILE) full path to log file.
+function module.assert_log(pat, logfile)
+ logfile = logfile or os.getenv('NVIM_LOG_FILE') or '.nvimlog'
+ local nrlines = 10
+ local lines = module.read_file_list(logfile, -nrlines) or {}
+ for _,line in ipairs(lines) do
+ if line:match(pat) then return end
+ end
+ local logtail = module.read_nvim_log(logfile)
+ error(string.format('Pattern %q not found in log (last %d lines): %s:\n%s',
+ pat, nrlines, logfile, logtail))
+end
+
-- Invokes `fn` and returns the error string (may truncate full paths), or
-- raises an error if `fn` succeeds.
--
@@ -745,9 +761,9 @@ function module.isCI(name)
end
--- Gets the contents of `logfile` for printing to the build log.
+-- Gets the (tail) contents of `logfile`.
-- Also moves the file to "${NVIM_LOG_FILE}.displayed" on CI environments.
-function module.read_nvim_log(logfile)
+function module.read_nvim_log(logfile, ci_rename)
logfile = logfile or os.getenv('NVIM_LOG_FILE') or '.nvimlog'
local is_ci = module.isCI()
local keep = is_ci and 999 or 10
@@ -759,7 +775,7 @@ function module.read_nvim_log(logfile)
log = log..line..'\n'
end
log = log..('-'):rep(78)..'\n'
- if is_ci then
+ if is_ci and ci_rename then
os.rename(logfile, logfile .. '.displayed')
end
return log