aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--busted/outputHandlers/TAP.lua6
-rw-r--r--busted/outputHandlers/nvim.lua2
-rw-r--r--ci/common/build.sh2
-rw-r--r--ci/common/suite.sh7
-rw-r--r--test/helpers.lua35
5 files changed, 40 insertions, 12 deletions
diff --git a/busted/outputHandlers/TAP.lua b/busted/outputHandlers/TAP.lua
index ff93a7cc75..612e633576 100644
--- a/busted/outputHandlers/TAP.lua
+++ b/busted/outputHandlers/TAP.lua
@@ -1,7 +1,8 @@
--- TODO(jkeyes): remove this and use the upstream version as soon as it is
--- available in a release of busted.
+-- TODO(jkeyes): Use the upstream version when busted releases it. (But how to
+-- inject our call to global_helpers.read_nvim_log() ?)
local pretty = require 'pl.pretty'
+local global_helpers = require('test.helpers')
return function(options)
local busted = require 'busted'
@@ -18,6 +19,7 @@ return function(options)
end
handler.suiteEnd = function()
+ io.write(global_helpers.read_nvim_log())
print('1..' .. counter)
io.flush()
return nil, true
diff --git a/busted/outputHandlers/nvim.lua b/busted/outputHandlers/nvim.lua
index b612ead070..d137300a7e 100644
--- a/busted/outputHandlers/nvim.lua
+++ b/busted/outputHandlers/nvim.lua
@@ -1,6 +1,7 @@
local s = require 'say'
local pretty = require 'pl.pretty'
local term = require 'term'
+local global_helpers = require('test.helpers')
local colors
@@ -200,6 +201,7 @@ return function(options)
local tests = (testCount == 1 and 'test' or 'tests')
local files = (fileCount == 1 and 'file' or 'files')
io.write(globalTeardown)
+ io.write(global_helpers.read_nvim_log())
io.write(suiteEndString:format(testCount, tests, fileCount, files, elapsedTime_ms))
io.write(getSummaryString())
io.flush()
diff --git a/ci/common/build.sh b/ci/common/build.sh
index f4313578c9..7c27d61586 100644
--- a/ci/common/build.sh
+++ b/ci/common/build.sh
@@ -7,7 +7,7 @@ _stat() {
}
top_make() {
- echo '================================================================================'
+ printf '%78s\n' | tr ' ' '='
# Travis has 1.5 virtual cores according to:
# http://docs.travis-ci.com/user/speeding-up-the-build/#Paralellizing-your-build-on-one-VM
ninja "$@"
diff --git a/ci/common/suite.sh b/ci/common/suite.sh
index d3fbcd1eda..8feb642547 100644
--- a/ci/common/suite.sh
+++ b/ci/common/suite.sh
@@ -39,13 +39,6 @@ enter_suite() {
exit_suite() {
set +x
- if test -f "$NVIM_LOG_FILE" ; then
- printf "===============================================================================\n"
- printf "NVIM_LOG_FILE: $NVIM_LOG_FILE\n"
- cat "$NVIM_LOG_FILE" 2>/dev/null || printf '(empty)'
- printf "\n"
- rm -rf "$NVIM_LOG_FILE"
- fi
travis_fold end "${NVIM_TEST_CURRENT_SUITE}"
if test $FAILED -ne 0 ; then
echo "Suite ${NVIM_TEST_CURRENT_SUITE} failed, summary:"
diff --git a/test/helpers.lua b/test/helpers.lua
index 22b5c68735..013fe60596 100644
--- a/test/helpers.lua
+++ b/test/helpers.lua
@@ -136,7 +136,6 @@ local function check_logs()
fd:close()
os.remove(file)
if #lines > 0 then
- -- local out = os.getenv('TRAVIS_CI_BUILD') and io.stdout or io.stderr
local out = io.stdout
out:write(start_msg .. '\n')
out:write('= ' .. table.concat(lines, '\n= ') .. '\n')
@@ -674,6 +673,37 @@ local function write_file(name, text, no_dedent, append)
file:close()
end
+local function isCI()
+ local is_travis = nil ~= os.getenv('TRAVIS')
+ local is_appveyor = nil ~= os.getenv('APPVEYOR')
+ local is_quickbuild = nil ~= os.getenv('PR_NUMBER')
+ return is_travis or is_appveyor or is_quickbuild
+end
+
+-- Gets the contents of $NVIM_LOG_FILE for printing to the build log.
+-- Also removes the file, if the current environment looks like CI.
+local function read_nvim_log()
+ local logfile = os.getenv('NVIM_LOG_FILE') or '.nvimlog'
+ local logtext = read_file(logfile)
+ local lines = {}
+ for l in string.gmatch(logtext or '', "[^\n]+") do -- Split at newlines.
+ table.insert(lines, l)
+ end
+ local log = (('-'):rep(78)..'\n'
+ ..string.format('$NVIM_LOG_FILE: %s\n', logfile)
+ ..(logtext and (isCI() and '' or '(last 10 lines)\n') or '(empty)\n'))
+ local keep = (isCI() and #lines or math.min(10, #lines))
+ local startidx = math.max(1, #lines - keep + 1)
+ for i = startidx, (startidx + keep - 1) do
+ log = log..lines[i]..'\n'
+ end
+ log = log..('-'):rep(78)..'\n'
+ if isCI() then
+ os.remove(logfile)
+ end
+ return log
+end
+
local module = {
REMOVE_THIS = REMOVE_THIS,
argss_to_cmd = argss_to_cmd,
@@ -703,9 +733,10 @@ local module = {
popen_r = popen_r,
popen_w = popen_w,
read_file = read_file,
+ read_nvim_log = read_nvim_log,
repeated_read_cmd = repeated_read_cmd,
- sleep = sleep,
shallowcopy = shallowcopy,
+ sleep = sleep,
table_flatten = table_flatten,
tmpname = tmpname,
uname = uname,