Merge PR #2146 'Improve functional test debuggability and efficiency'

This commit is contained in:
Thiago de Arruda 2015-03-24 12:59:59 -03:00
commit ed1070bb24
7 changed files with 57 additions and 25 deletions

View File

@ -17,9 +17,17 @@ if(BUSTED_OUTPUT_TYPE STREQUAL junit)
set(EXTRA_ARGS OUTPUT_FILE ${BUILD_DIR}/${TEST_TYPE}test-junit.xml)
endif()
if(DEFINED ENV{TEST_TAG})
set(TEST_TAG "--tags=$ENV{TEST_TAG}")
endif()
if(DEFINED ENV{TEST_FILTER})
set(TEST_TAG "--filter=$ENV{TEST_FILTER}")
endif()
execute_process(
COMMAND ${BUSTED_PRG} -v -o ${BUSTED_OUTPUT_TYPE}
--helper=${TEST_DIR}/${TEST_TYPE}/preload.lua
COMMAND ${BUSTED_PRG} ${TEST_TAG} ${TEST_FILTER} -v -o ${BUSTED_OUTPUT_TYPE}
--lazy --helper=${TEST_DIR}/${TEST_TYPE}/preload.lua
--lpath=${BUILD_DIR}/?.lua ${TEST_PATH}
WORKING_DIRECTORY ${WORKING_DIR}
ERROR_VARIABLE err

View File

@ -4,8 +4,8 @@ local clear, nvim, buffer, curbuf, curwin, eq, neq, ok =
helpers.eq, helpers.neq, helpers.ok
describe('TabNew', function()
setup(clear)
describe('au TabNew', function()
clear()
describe('with * as <afile>', function()
it('matches when opening any new tab', function()
nvim('command', 'au! TabNew * echom "tabnew:".tabpagenr().":".bufnr("")')

View File

@ -162,15 +162,20 @@ local function rawfeed(...)
end
end
local function spawn(argv)
local loop = Loop.new()
local msgpack_stream = MsgpackStream.new(loop)
local async_session = AsyncSession.new(msgpack_stream)
local session = Session.new(async_session)
loop:spawn(argv)
return session
end
local function clear()
if session then
session:exit(0)
end
local loop = Loop.new()
local msgpack_stream = MsgpackStream.new(loop)
local async_session = AsyncSession.new(msgpack_stream)
session = Session.new(async_session)
loop:spawn(nvim_argv)
session = spawn(nvim_argv)
end
local function insert(...)
@ -271,10 +276,9 @@ local function expect(contents)
return eq(dedent(contents), curbuf_contents())
end
clear()
return {
clear = clear,
spawn = spawn,
dedent = dedent,
source = source,
rawfeed = rawfeed,
@ -292,6 +296,7 @@ return {
expect = expect,
ok = ok,
nvim = nvim,
nvim_prog = nvim_prog,
nvim_dir = nvim_dir,
buffer = buffer,
window = window,

View File

@ -6,10 +6,14 @@ local clear, nvim, eq, neq, ok, expect, eval, next_message, run, stop, session
helpers.stop, helpers.session
local nvim_dir, insert = helpers.nvim_dir, helpers.insert
local channel = nvim('get_api_info')[1]
describe('jobs', function()
before_each(clear)
local channel
before_each(function()
clear()
channel = nvim('get_api_info')[1]
end)
-- Creates the string to make an autocmd to notify us.
local notify_str = function(expr1, expr2)

View File

@ -123,16 +123,26 @@ if os.getenv('CI_TARGET') then
default_screen_timeout = default_screen_timeout * 3
end
local colors = request('vim_get_color_map')
local colornames = {}
for name, rgb in pairs(colors) do
do
local spawn, nvim_prog = helpers.spawn, helpers.nvim_prog
local session = spawn({nvim_prog, '-u', 'NONE', '-N', '--embed'})
local status, rv = session:request('vim_get_color_map')
if not status then
print('failed to get color map')
os.exit(1)
end
local colors = rv
local colornames = {}
for name, rgb in pairs(colors) do
-- we disregard the case that colornames might not be unique, as
-- this is just a helper to get any canonical name of a color
colornames[rgb] = name
end
session:exit(0)
Screen.colors = colors
Screen.colornames = colornames
end
Screen.colors = colors
function Screen.debug(command)
if not command then
command = 'pynvim -n -c '
@ -497,8 +507,8 @@ function pprint_attrs(attrs)
for f, v in pairs(attrs) do
local desc = tostring(v)
if f == "foreground" or f == "background" then
if colornames[v] ~= nil then
desc = "Screen.colors."..colornames[v]
if Screen.colornames[v] ~= nil then
desc = "Screen.colors."..Screen.colornames[v]
end
end
table.insert(items, f.." = "..desc)

View File

@ -36,11 +36,11 @@ add_custom_command(OUTPUT ${DEPS_LIB_DIR}/luarocks/rocks/stable-busted-deps
COMMAND ${DEPS_BIN_DIR}/luarocks
ARGS build dkjson 2.5-1 CC=${DEPS_C_COMPILER} LD=${DEPS_C_COMPILER}
COMMAND ${DEPS_BIN_DIR}/luarocks
ARGS build say 1.2-1 CC=${DEPS_C_COMPILER} LD=${DEPS_C_COMPILER}
ARGS build say 1.3-0 CC=${DEPS_C_COMPILER} LD=${DEPS_C_COMPILER}
COMMAND ${DEPS_BIN_DIR}/luarocks
ARGS build luassert 1.7.2-0 CC=${DEPS_C_COMPILER} LD=${DEPS_C_COMPILER}
ARGS build luassert 1.7.4-0 CC=${DEPS_C_COMPILER} LD=${DEPS_C_COMPILER}
COMMAND ${DEPS_BIN_DIR}/luarocks
ARGS build ansicolors 1.0.2-3 CC=${DEPS_C_COMPILER} LD=${DEPS_C_COMPILER}
ARGS build lua-term 0.1-1 CC=${DEPS_C_COMPILER} LD=${DEPS_C_COMPILER}
COMMAND ${DEPS_BIN_DIR}/luarocks
ARGS build penlight 1.0.0-1 CC=${DEPS_C_COMPILER} LD=${DEPS_C_COMPILER}
COMMAND ${DEPS_BIN_DIR}/luarocks
@ -56,7 +56,7 @@ add_custom_target(stable-busted-deps
add_custom_command(OUTPUT ${DEPS_BIN_DIR}/busted
COMMAND ${DEPS_BIN_DIR}/luarocks
ARGS build busted 2.0.rc4 CC=${DEPS_C_COMPILER} LD=${DEPS_C_COMPILER}
ARGS build https://raw.githubusercontent.com/Olivine-Labs/busted/master/busted-scm-0.rockspec CC=${DEPS_C_COMPILER} LD=${DEPS_C_COMPILER}
COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_SOURCE_DIR}/utfTerminalDetailed.lua
${DEPS_INSTALL_DIR}/share/lua/5.1/busted/outputHandlers
DEPENDS stable-busted-deps)

View File

@ -1,13 +1,18 @@
-- busted output handler that immediately prints file and test names before
-- tests are executed. It simplifies identifying which tests are
-- hanging/crashing
local ansicolors = require 'ansicolors'
if package.config:sub(1,1) == '\\' and not os.getenv("ANSICON") then
-- Disable colors on Windows.
colors = setmetatable({}, {__index = function() return function(s) return s end end})
else
colors = require 'term.colors'
end
return function(options, busted)
local handler = require 'busted.outputHandlers.utfTerminal'(options, busted)
handler.fileStart = function(name)
io.write('\n' .. ansicolors('%{cyan}' .. name) .. ':')
io.write('\n' .. colors.cyan(name) .. ':')
end
handler.testStart = function(element, parent, status, debug)