diff options
author | Thiago de Arruda <tpadilha84@gmail.com> | 2015-03-17 08:45:13 -0300 |
---|---|---|
committer | Thiago de Arruda <tpadilha84@gmail.com> | 2015-03-24 12:46:15 -0300 |
commit | 47e90ea1c5077bf64dcb729c7fc6ccaaea142c5f (patch) | |
tree | a48b1696f5caa9e51c1bbcfad9e7c887154b46da | |
parent | 5874bc28ea4c649b722eb993d2bd2beea7e3f6d1 (diff) | |
download | rneovim-47e90ea1c5077bf64dcb729c7fc6ccaaea142c5f.tar.gz rneovim-47e90ea1c5077bf64dcb729c7fc6ccaaea142c5f.tar.bz2 rneovim-47e90ea1c5077bf64dcb729c7fc6ccaaea142c5f.zip |
test: Extract code to spawn nvim into the "spawn" helper function
This is can be used for spawning nvim outside a test context. Also refactor
screen.lua to use this function when loading the color map(It is better because
the GDB/VALGRIND environment variables are ignored)
-rw-r--r-- | test/functional/helpers.lua | 17 | ||||
-rw-r--r-- | test/functional/ui/screen.lua | 24 |
2 files changed, 29 insertions, 12 deletions
diff --git a/test/functional/helpers.lua b/test/functional/helpers.lua index 5627b1fae2..cc5d019863 100644 --- a/test/functional/helpers.lua +++ b/test/functional/helpers.lua @@ -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(...) @@ -275,6 +280,7 @@ clear() return { clear = clear, + spawn = spawn, dedent = dedent, source = source, rawfeed = rawfeed, @@ -292,6 +298,7 @@ return { expect = expect, ok = ok, nvim = nvim, + nvim_prog = nvim_prog, nvim_dir = nvim_dir, buffer = buffer, window = window, diff --git a/test/functional/ui/screen.lua b/test/functional/ui/screen.lua index f79d634536..c60944bbb0 100644 --- a/test/functional/ui/screen.lua +++ b/test/functional/ui/screen.lua @@ -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) |