diff options
author | ZyX <kp-pav@yandex.ru> | 2016-06-26 18:16:54 +0300 |
---|---|---|
committer | ZyX <kp-pav@yandex.ru> | 2016-07-10 02:04:27 +0300 |
commit | 3878626c056ada19a27fe7f0b0df48a6eea0c9af (patch) | |
tree | 9ef7c3eebd2b141f855d647ec74edfc8712ef9ec /test/functional/helpers.lua | |
parent | 5fc72882ccf5aefbcfe96f6f895cc8046aa70923 (diff) | |
download | rneovim-3878626c056ada19a27fe7f0b0df48a6eea0c9af.tar.gz rneovim-3878626c056ada19a27fe7f0b0df48a6eea0c9af.tar.bz2 rneovim-3878626c056ada19a27fe7f0b0df48a6eea0c9af.zip |
functests: Add tests for XDG defaults
Diffstat (limited to 'test/functional/helpers.lua')
-rw-r--r-- | test/functional/helpers.lua | 38 |
1 files changed, 34 insertions, 4 deletions
diff --git a/test/functional/helpers.lua b/test/functional/helpers.lua index 02109d0889..6f43ec817c 100644 --- a/test/functional/helpers.lua +++ b/test/functional/helpers.lua @@ -216,17 +216,47 @@ local function merge_args(...) return argv end -local function spawn(argv, merge) - local child_stream = ChildProcessStream.spawn(merge and merge_args(prepend_argv, argv) or argv) +local function spawn(argv, merge, env) + local child_stream = ChildProcessStream.spawn( + merge and merge_args(prepend_argv, argv) or argv, + env) return Session.new(child_stream) end local function clear(...) local args = {unpack(nvim_argv)} - for _, arg in ipairs({...}) do + local new_args + local env = nil + local opts = select(1, ...) + if type(opts) == 'table' then + if opts.env then + local env_tbl = {} + for k, v in pairs(opts.env) do + assert(type(k) == 'string') + assert(type(v) == 'string') + env_tbl[k] = v + end + for _, k in ipairs({ + 'HOME', + 'ASAN_OPTIONS', + 'LD_LIBRARY_PATH', 'PATH', + 'NVIM_LOG_FILE', + }) do + env_tbl[k] = os.getenv(k) + end + env = {} + for k, v in pairs(env_tbl) do + env[#env + 1] = k .. '=' .. v + end + end + new_args = opts.args or {} + else + new_args = {...} + end + for _, arg in ipairs(new_args) do table.insert(args, arg) end - set_session(spawn(args)) + set_session(spawn(args, nil, env)) end local function insert(...) |