functests: Make one recover_spec test also use gdb or valgrind

This commit is contained in:
ZyX
2015-08-15 17:25:10 +03:00
parent 804e074096
commit b249529676
3 changed files with 23 additions and 14 deletions

View File

@@ -47,7 +47,8 @@ describe(':preserve', function()
--TODO(justinmk): this is an ugly hack to force `helpers` to support --TODO(justinmk): this is an ugly hack to force `helpers` to support
--multiple sessions. --multiple sessions.
local nvim2 = helpers.spawn({helpers.nvim_prog, '-u', 'NONE', '--embed'}) local nvim2 = helpers.spawn({helpers.nvim_prog, '-u', 'NONE', '--embed'},
true)
helpers.set_session(nvim2) helpers.set_session(nvim2)
source(init) source(init)

View File

@@ -178,12 +178,27 @@ local function rawfeed(...)
end end
end end
local function spawn(argv) local function merge_args(...)
local i = 1
local argv = {}
for anum = 1,select('#', ...) do
local args = select(anum, ...)
if args then
for _, arg in ipairs(args) do
argv[i] = arg
i = i + 1
end
end
end
return argv
end
local function spawn(argv, merge)
local loop = Loop.new() local loop = Loop.new()
local msgpack_stream = MsgpackStream.new(loop) local msgpack_stream = MsgpackStream.new(loop)
local async_session = AsyncSession.new(msgpack_stream) local async_session = AsyncSession.new(msgpack_stream)
local session = Session.new(async_session) local session = Session.new(async_session)
loop:spawn(argv) loop:spawn(merge and merge_args(prepend_argv, argv) or argv)
return session return session
end end
@@ -382,4 +397,5 @@ return {
rmdir = rmdir, rmdir = rmdir,
mkdir = lfs.mkdir, mkdir = lfs.mkdir,
exc_exec = exc_exec, exc_exec = exc_exec,
merge_args = merge_args,
} }

View File

@@ -2,7 +2,7 @@ local helpers = require('test.functional.helpers')
local spawn, set_session, nvim, nvim_prog, nvim_command, nvim_eval = local spawn, set_session, nvim, nvim_prog, nvim_command, nvim_eval =
helpers.spawn, helpers.set_session, helpers.nvim, helpers.nvim_prog, helpers.spawn, helpers.set_session, helpers.nvim, helpers.nvim_prog,
helpers.command, helpers.eval helpers.command, helpers.eval
local write_file = helpers.write_file local write_file, merge_args = helpers.write_file, helpers.merge_args
local msgpack = require('MessagePack') local msgpack = require('MessagePack')
@@ -16,18 +16,10 @@ local function nvim_argv()
'--cmd', additional_cmd, '--cmd', additional_cmd,
'--embed'} '--embed'}
if helpers.prepend_argv then if helpers.prepend_argv then
ret = {} return merge_args(helpers.prepend_argv, nvim_argv)
for i, v in ipairs(helpers.prepend_argv) do
ret[i] = v
end
local shift = #ret
for i, v in ipairs(nvim_argv) do
ret[i + shift] = v
end
else else
ret = nvim_argv return nvim_argv
end end
return ret
end end
local session = nil local session = nil