diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2019-05-18 21:50:57 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-05-18 21:50:57 +0200 |
commit | 1cbe0145695bea4168b4e23f61e29e51684088e1 (patch) | |
tree | 67e894a87ed21808c41eb84b6406c370311c4943 | |
parent | aa610690bf9e525fcd172def37e14505ac449cf2 (diff) | |
parent | 9d7aaf7149a5543b1ddfc89fb506a1019bec3ffb (diff) | |
download | rneovim-1cbe0145695bea4168b4e23f61e29e51684088e1.tar.gz rneovim-1cbe0145695bea4168b4e23f61e29e51684088e1.tar.bz2 rneovim-1cbe0145695bea4168b4e23f61e29e51684088e1.zip |
Merge #9301 'runtime/lua'
-rw-r--r-- | runtime/lua/vim/shared.lua | 73 | ||||
-rw-r--r-- | src/nvim/lua/vim.lua | 48 | ||||
-rw-r--r-- | src/nvim/testdir/load.vim | 6 | ||||
-rw-r--r-- | src/nvim/testdir/test_timers.vim | 14 | ||||
-rw-r--r-- | test/functional/api/keymap_spec.lua | 5 | ||||
-rw-r--r-- | test/functional/api/server_requests_spec.lua | 5 | ||||
-rw-r--r-- | test/functional/api/vim_spec.lua | 9 | ||||
-rw-r--r-- | test/functional/core/channels_spec.lua | 4 | ||||
-rw-r--r-- | test/functional/eval/let_spec.lua | 2 | ||||
-rw-r--r-- | test/functional/helpers.lua | 73 | ||||
-rw-r--r-- | test/functional/options/defaults_spec.lua | 5 | ||||
-rw-r--r-- | test/functional/terminal/tui_spec.lua | 3 | ||||
-rw-r--r-- | test/functional/ui/options_spec.lua | 3 | ||||
-rw-r--r-- | test/functional/ui/screen.lua | 7 | ||||
-rw-r--r-- | test/functional/ui/wildmode_spec.lua | 3 | ||||
-rw-r--r-- | test/helpers.lua | 37 | ||||
-rw-r--r-- | test/unit/eval/typval_spec.lua | 6 | ||||
-rw-r--r-- | test/unit/helpers.lua | 5 | ||||
-rw-r--r-- | test/unit/undo_spec.lua | 8 | ||||
-rw-r--r-- | test/unit/viml/expressions/lexer_spec.lua | 6 | ||||
-rw-r--r-- | test/unit/viml/expressions/parser_spec.lua | 12 |
21 files changed, 173 insertions, 161 deletions
diff --git a/runtime/lua/vim/shared.lua b/runtime/lua/vim/shared.lua new file mode 100644 index 0000000000..9dca51ce9a --- /dev/null +++ b/runtime/lua/vim/shared.lua @@ -0,0 +1,73 @@ +--- Shared functions +-- - Used by Nvim and tests +-- - Can run in vanilla Lua (do not require a running instance of Nvim) + + +-- Checks if a list-like (vector) table contains `value`. +local function tbl_contains(t, value) + if type(t) ~= 'table' then + error('t must be a table') + end + for _,v in ipairs(t) do + if v == value then + return true + end + end + return false +end + +--- Merges two or more map-like tables. +-- +--@see |extend()| +-- +-- behavior: Decides what to do if a key is found in more than one map: +-- "error": raise an error +-- "keep": use value from the leftmost map +-- "force": use value from the rightmost map +local function tbl_extend(behavior, ...) + if (behavior ~= 'error' and behavior ~= 'keep' and behavior ~= 'force') then + error('invalid "behavior": '..tostring(behavior)) + end + local ret = {} + for i = 1, select('#', ...) do + local tbl = select(i, ...) + if tbl then + for k, v in pairs(tbl) do + if behavior ~= 'force' and ret[k] ~= nil then + if behavior == 'error' then + error('key found in more than one map: '..k) + end -- Else behavior is "keep". + else + ret[k] = v + end + end + end + end + return ret +end + +-- Flattens a list-like table: unrolls and appends nested tables to table `t`. +local function tbl_flatten(t) + -- From https://github.com/premake/premake-core/blob/master/src/base/table.lua + local result = {} + local function _tbl_flatten(_t) + local n = #_t + for i = 1, n do + local v = _t[i] + if type(v) == "table" then + _tbl_flatten(v) + elseif v then + table.insert(result, v) + end + end + end + _tbl_flatten(t) + return result +end + +local module = { + tbl_contains = tbl_contains, + tbl_extend = tbl_extend, + tbl_flatten = tbl_flatten, +} +return module diff --git a/src/nvim/lua/vim.lua b/src/nvim/lua/vim.lua index b0d0bfc74b..1a7aec6cc6 100644 --- a/src/nvim/lua/vim.lua +++ b/src/nvim/lua/vim.lua @@ -1,3 +1,39 @@ +-- Nvim-Lua stdlib: the `vim` module (:help lua-stdlib) +-- +-- Lua code lives in one of three places: +-- 1. The runtime (`runtime/lua/vim/`). For "nice to have" features, e.g. +-- the `inspect` and `lpeg` modules. +-- 2. The `vim.shared` module: code shared between Nvim and its test-suite. +-- 3. Compiled-into Nvim itself (`src/nvim/lua/`). +-- +-- Guideline: "If in doubt, put it in the runtime". +-- +-- Most functions should live directly on `vim.`, not sub-modules. The only +-- "forbidden" names are those claimed by legacy `if_lua`: +-- $ vim +-- :lua for k,v in pairs(vim) do print(k) end +-- buffer +-- open +-- window +-- lastline +-- firstline +-- type +-- line +-- eval +-- dict +-- beep +-- list +-- command +-- +-- Reference (#6580): +-- - https://github.com/luafun/luafun +-- - https://github.com/rxi/lume +-- - http://leafo.net/lapis/reference/utilities.html +-- - https://github.com/torch/paths +-- - https://github.com/bakpakin/Fennel (pretty print, repl) +-- - https://github.com/howl-editor/howl/tree/master/lib/howl/util + + -- Internal-only until comments in #8107 are addressed. -- Returns: -- {errcode}, {output} @@ -187,10 +223,14 @@ deepcopy = function(orig) return deepcopy_funcs[type(orig)](orig) end -local function __index(table, key) - if key == "inspect" then - table.inspect = require("vim.inspect") - return table.inspect +local function __index(t, key) + if key == 'inspect' then + t.inspect = require('vim.inspect') + return t.inspect + elseif require('vim.shared')[key] ~= nil then + -- Expose all `vim.shared` functions on the `vim` module. + t[key] = require('vim.shared')[key] + return t[key] end end diff --git a/src/nvim/testdir/load.vim b/src/nvim/testdir/load.vim index 2e01338dd0..6369b8f45e 100644 --- a/src/nvim/testdir/load.vim +++ b/src/nvim/testdir/load.vim @@ -1,3 +1,5 @@ +" Also used by: test/functional/helpers.lua + function! s:load_factor() abort let timeout = 200 let times = [] @@ -23,8 +25,8 @@ function! s:load_factor() abort endfunction " Compute load factor only once. -let s:load_factor = s:load_factor() +let g:test_load_factor = s:load_factor() function! LoadAdjust(num) abort - return float2nr(ceil(a:num * s:load_factor)) + return float2nr(ceil(a:num * g:test_load_factor)) endfunction diff --git a/src/nvim/testdir/test_timers.vim b/src/nvim/testdir/test_timers.vim index 5b5f001e6b..9384989a35 100644 --- a/src/nvim/testdir/test_timers.vim +++ b/src/nvim/testdir/test_timers.vim @@ -15,17 +15,13 @@ func MyHandlerWithLists(lists, timer) let x = string(a:lists) endfunc -func s:assert_inrange(lower, upper, actual) - return assert_inrange(a:lower, LoadAdjust(a:upper), a:actual) -endfunc - func Test_oneshot() let g:val = 0 let timer = timer_start(50, 'MyHandler') let slept = WaitFor('g:val == 1') call assert_equal(1, g:val) if has('reltime') - call s:assert_inrange(40, 120, slept) + call assert_inrange(40, LoadAdjust(120), slept) else call assert_inrange(20, 120, slept) endif @@ -37,7 +33,7 @@ func Test_repeat_three() let slept = WaitFor('g:val == 3') call assert_equal(3, g:val) if has('reltime') - call s:assert_inrange(120, 250, slept) + call assert_inrange(120, LoadAdjust(250), slept) else call assert_inrange(80, 200, slept) endif @@ -52,7 +48,7 @@ func Test_repeat_many() endif sleep 200m call timer_stop(timer) - call s:assert_inrange((has('mac') ? 1 : 2), 4, g:val) + call assert_inrange((has('mac') ? 1 : 2), LoadAdjust(4), g:val) endfunc func Test_with_partial_callback() @@ -66,7 +62,7 @@ func Test_with_partial_callback() let slept = WaitFor('g:val == 1') call assert_equal(1, g:val) if has('reltime') - call s:assert_inrange(40, 130, slept) + call assert_inrange(40, LoadAdjust(130), slept) else call assert_inrange(20, 100, slept) endif @@ -129,7 +125,7 @@ func Test_paused() let slept = WaitFor('g:val == 1') call assert_equal(1, g:val) if has('reltime') - call s:assert_inrange(0, 140, slept) + call assert_inrange(0, LoadAdjust(140), slept) else call assert_inrange(0, 10, slept) endif diff --git a/test/functional/api/keymap_spec.lua b/test/functional/api/keymap_spec.lua index c150787425..b3f6bb7895 100644 --- a/test/functional/api/keymap_spec.lua +++ b/test/functional/api/keymap_spec.lua @@ -1,5 +1,4 @@ local helpers = require('test.functional.helpers')(after_each) -local global_helpers = require('test.helpers') local bufmeths = helpers.bufmeths local clear = helpers.clear @@ -12,8 +11,8 @@ local funcs = helpers.funcs local meths = helpers.meths local source = helpers.source -local shallowcopy = global_helpers.shallowcopy -local sleep = global_helpers.sleep +local shallowcopy = helpers.shallowcopy +local sleep = helpers.sleep describe('nvim_get_keymap', function() before_each(clear) diff --git a/test/functional/api/server_requests_spec.lua b/test/functional/api/server_requests_spec.lua index 4d25ba0819..7d9a8269d9 100644 --- a/test/functional/api/server_requests_spec.lua +++ b/test/functional/api/server_requests_spec.lua @@ -1,7 +1,6 @@ -- Test server -> client RPC scenarios. Note: unlike `rpcnotify`, to evaluate -- `rpcrequest` calls we need the client event loop to be running. local helpers = require('test.functional.helpers')(after_each) -local Paths = require('test.config.paths') local clear, nvim, eval = helpers.clear, helpers.nvim, helpers.eval local eq, neq, run, stop = helpers.eq, helpers.neq, helpers.run, helpers.stop @@ -243,8 +242,8 @@ describe('server -> client', function() \ 'rpc': v:true \ } ]]) - local lua_prog = Paths.test_lua_prg - meths.set_var("args", {lua_prog, 'test/functional/api/rpc_fixture.lua'}) + meths.set_var("args", {helpers.test_lua_prg, + 'test/functional/api/rpc_fixture.lua'}) jobid = eval("jobstart(g:args, g:job_opts)") neq(0, 'jobid') end) diff --git a/test/functional/api/vim_spec.lua b/test/functional/api/vim_spec.lua index 2178abab53..a7d8dc59ec 100644 --- a/test/functional/api/vim_spec.lua +++ b/test/functional/api/vim_spec.lua @@ -1,6 +1,5 @@ local helpers = require('test.functional.helpers')(after_each) local Screen = require('test.functional.ui.screen') -local global_helpers = require('test.helpers') local NIL = helpers.NIL local clear, nvim, eq, neq = helpers.clear, helpers.nvim, helpers.eq, helpers.neq @@ -16,10 +15,10 @@ local request = helpers.request local source = helpers.source local next_msg = helpers.next_msg -local expect_err = global_helpers.expect_err -local format_string = global_helpers.format_string -local intchar2lua = global_helpers.intchar2lua -local mergedicts_copy = global_helpers.mergedicts_copy +local expect_err = helpers.expect_err +local format_string = helpers.format_string +local intchar2lua = helpers.intchar2lua +local mergedicts_copy = helpers.mergedicts_copy describe('API', function() before_each(clear) diff --git a/test/functional/core/channels_spec.lua b/test/functional/core/channels_spec.lua index 0137092eb5..ddaed1c448 100644 --- a/test/functional/core/channels_spec.lua +++ b/test/functional/core/channels_spec.lua @@ -1,7 +1,5 @@ -local global_helpers = require('test.helpers') -local uname = global_helpers.uname - local helpers = require('test.functional.helpers')(after_each) +local uname = helpers.uname local clear, eq, eval, next_msg, ok, source = helpers.clear, helpers.eq, helpers.eval, helpers.next_msg, helpers.ok, helpers.source local command, funcs, meths = helpers.command, helpers.funcs, helpers.meths diff --git a/test/functional/eval/let_spec.lua b/test/functional/eval/let_spec.lua index 0cbf40137e..63e18f943f 100644 --- a/test/functional/eval/let_spec.lua +++ b/test/functional/eval/let_spec.lua @@ -59,7 +59,7 @@ describe(':let', function() end) it("multibyte env var to child process #8398 #9267", function() - if (not helpers.iswin()) and require('test.helpers').isCI() then + if (not helpers.iswin()) and helpers.isCI() then -- Fails on non-Windows CI. Buffering/timing issue? pending('fails on unix CI', function() end) end diff --git a/test/functional/helpers.lua b/test/functional/helpers.lua index fd10a6afcd..35084f6cff 100644 --- a/test/functional/helpers.lua +++ b/test/functional/helpers.lua @@ -8,23 +8,14 @@ local Session = require('nvim.session') local TcpStream = require('nvim.tcp_stream') local SocketStream = require('nvim.socket_stream') local ChildProcessStream = require('nvim.child_process_stream') -local Paths = require('test.config.paths') local check_cores = global_helpers.check_cores local check_logs = global_helpers.check_logs local dedent = global_helpers.dedent local eq = global_helpers.eq -local expect_err = global_helpers.expect_err -local filter = global_helpers.filter -local map = global_helpers.map -local matches = global_helpers.matches -local near = global_helpers.near -local neq = global_helpers.neq local ok = global_helpers.ok -local read_file = global_helpers.read_file local sleep = global_helpers.sleep -local table_contains = global_helpers.table_contains -local table_flatten = global_helpers.table_flatten +local tbl_contains = global_helpers.tbl_contains local write_file = global_helpers.write_file local start_dir = lfs.currentdir() @@ -32,7 +23,7 @@ local start_dir = lfs.currentdir() local nvim_prog = ( os.getenv('NVIM_PROG') or os.getenv('NVIM_PRG') - or Paths.test_build_dir .. '/bin/nvim' + or global_helpers.test_build_dir .. '/bin/nvim' ) -- Default settings for the test session. local nvim_set = 'set shortmess+=I background=light noswapfile noautoindent' @@ -174,7 +165,7 @@ local function expect_msg_seq(...) error(cat_err(final_error, string.format('got %d messages (ignored %d), expected %d', #actual_seq, nr_ignored, #expected_seq))) - elseif table_contains(ignore, msg_type) then + elseif tbl_contains(ignore, msg_type) then nr_ignored = nr_ignored + 1 else table.insert(actual_seq, msg) @@ -348,9 +339,9 @@ local function remove_args(args, args_rm) end local last = '' for _, arg in ipairs(args) do - if table_contains(skip_following, last) then + if tbl_contains(skip_following, last) then last = '' - elseif table_contains(args_rm, arg) then + elseif tbl_contains(args_rm, arg) then last = arg else table.insert(new_args, arg) @@ -747,41 +738,14 @@ local function alter_slashes(obj) end end -local function compute_load_factor() - local timeout = 200 - local times = {} - - clear() - - for _ = 1, 5 do - source([[ - let g:val = 0 - call timer_start(200, {-> nvim_set_var('val', 1)}) - let start = reltime() - while 1 - sleep 10m - if g:val == 1 - let g:waited_in_ms = float2nr(reltimefloat(reltime(start)) * 1000) - break - endif - endwhile - ]]) - table.insert(times, nvim_eval('g:waited_in_ms')) - end - - session:close() - session = nil - - local longest = math.max(unpack(times)) - local factor = (longest + 50.0) / timeout - - return factor -end - --- Compute load factor only once. -local load_factor = compute_load_factor() +local load_factor = nil local function load_adjust(num) + if load_factor == nil then -- Compute load factor only once. + clear() + request('nvim_command', 'source src/nvim/testdir/load.vim') + load_factor = request('nvim_eval', 'g:test_load_factor') + end return math.ceil(num * load_factor) end @@ -802,33 +766,25 @@ local module = { curtabmeths = curtabmeths, curwin = curwin, curwinmeths = curwinmeths, - dedent = dedent, - eq = eq, eval = nvim_eval, exc_exec = exc_exec, expect = expect, expect_any = expect_any, - expect_err = expect_err, expect_msg_seq = expect_msg_seq, expect_twostreams = expect_twostreams, feed = feed, feed_command = feed_command, - filter = filter, funcs = funcs, get_pathsep = get_pathsep, get_session = get_session, insert = insert, iswin = iswin, - map = map, - matches = matches, merge_args = merge_args, meth_pcall = meth_pcall, meths = meths, missing_provider = missing_provider, mkdir = lfs.mkdir, load_adjust = load_adjust, - near = near, - neq = neq, new_pipename = new_pipename, next_msg = next_msg, nvim = nvim, @@ -838,13 +794,11 @@ local module = { nvim_prog = nvim_prog, nvim_prog_abs = nvim_prog_abs, nvim_set = nvim_set, - ok = ok, os_name = os_name, pathroot = pathroot, pending_win32 = pending_win32, prepend_argv = prepend_argv, rawfeed = rawfeed, - read_file = read_file, redir_exec = redir_exec, request = request, retry = retry, @@ -854,20 +808,17 @@ local module = { set_session = set_session, set_shell_powershell = set_shell_powershell, skip_fragile = skip_fragile, - sleep = sleep, source = source, spawn = spawn, stop = stop, - table_flatten = table_flatten, tabmeths = tabmeths, tabpage = tabpage, - tmpname = tmpname, uimeths = uimeths, wait = wait, window = window, winmeths = winmeths, - write_file = write_file, } +module = global_helpers.tbl_extend('error', module, global_helpers) return function(after_each) if after_each then diff --git a/test/functional/options/defaults_spec.lua b/test/functional/options/defaults_spec.lua index 0fc2876d00..415b526051 100644 --- a/test/functional/options/defaults_spec.lua +++ b/test/functional/options/defaults_spec.lua @@ -1,5 +1,4 @@ local helpers = require('test.functional.helpers')(after_each) -local global_helpers = require('test.helpers') local Screen = require('test.functional.ui.screen') @@ -16,7 +15,7 @@ local neq = helpers.neq local mkdir = helpers.mkdir local rmdir = helpers.rmdir local alter_slashes = helpers.alter_slashes -local table_contains = global_helpers.table_contains +local tbl_contains = helpers.tbl_contains describe('startup defaults', function() describe(':filetype', function() @@ -262,7 +261,7 @@ describe('XDG-based defaults', function() for _,v in ipairs(rtp) do local m = string.match(v, [=[[/\]nvim[^/\]*[/\]site.*$]=]) - if m and not table_contains(rv, m) then + if m and not tbl_contains(rv, m) then table.insert(rv, m) end end diff --git a/test/functional/terminal/tui_spec.lua b/test/functional/terminal/tui_spec.lua index 469d088c57..56d6f68b7a 100644 --- a/test/functional/terminal/tui_spec.lua +++ b/test/functional/terminal/tui_spec.lua @@ -1,8 +1,7 @@ -- TUI acceptance tests. -- Uses :terminal as a way to send keys and assert screen state. -local global_helpers = require('test.helpers') -local uname = global_helpers.uname local helpers = require('test.functional.helpers')(after_each) +local uname = helpers.uname local thelpers = require('test.functional.terminal.helpers') local Screen = require('test.functional.ui.screen') local eq = helpers.eq diff --git a/test/functional/ui/options_spec.lua b/test/functional/ui/options_spec.lua index 7ce21f5d76..93192934c7 100644 --- a/test/functional/ui/options_spec.lua +++ b/test/functional/ui/options_spec.lua @@ -1,10 +1,9 @@ -local global_helpers = require('test.helpers') local helpers = require('test.functional.helpers')(after_each) local Screen = require('test.functional.ui.screen') local clear = helpers.clear local command = helpers.command local eq = helpers.eq -local shallowcopy = global_helpers.shallowcopy +local shallowcopy = helpers.shallowcopy describe('ui receives option updates', function() local screen diff --git a/test/functional/ui/screen.lua b/test/functional/ui/screen.lua index 53b6642207..a81851cbba 100644 --- a/test/functional/ui/screen.lua +++ b/test/functional/ui/screen.lua @@ -71,11 +71,10 @@ -- To help write screen tests, see Screen:snapshot_util(). -- To debug screen tests, see Screen:redraw_debug(). -local global_helpers = require('test.helpers') -local deepcopy = global_helpers.deepcopy -local shallowcopy = global_helpers.shallowcopy -local concat_tables = global_helpers.concat_tables local helpers = require('test.functional.helpers')(nil) +local deepcopy = helpers.deepcopy +local shallowcopy = helpers.shallowcopy +local concat_tables = helpers.concat_tables local request, run_session = helpers.request, helpers.run_session local eq = helpers.eq local dedent = helpers.dedent diff --git a/test/functional/ui/wildmode_spec.lua b/test/functional/ui/wildmode_spec.lua index 1c8854bb28..f4b80fd428 100644 --- a/test/functional/ui/wildmode_spec.lua +++ b/test/functional/ui/wildmode_spec.lua @@ -1,7 +1,6 @@ -local global_helpers = require('test.helpers') -local shallowcopy = global_helpers.shallowcopy local helpers = require('test.functional.helpers')(after_each) local Screen = require('test.functional.ui.screen') +local shallowcopy = helpers.shallowcopy local clear, feed, command = helpers.clear, helpers.feed, helpers.command local iswin = helpers.iswin local funcs = helpers.funcs diff --git a/test/helpers.lua b/test/helpers.lua index 89cf13f917..cc5f05bdee 100644 --- a/test/helpers.lua +++ b/test/helpers.lua @@ -1,8 +1,10 @@ require('vim.compat') +local shared = require('vim.shared') local assert = require('luassert') local luv = require('luv') local lfs = require('lfs') local relpath = require('pl.path').relpath +local Paths = require('test.config.paths') local quote_me = '[^.%w%+%-%@%_%/]' -- complement (needn't quote) local function shell_quote(str) @@ -420,6 +422,7 @@ local function updated(d, d2) return d end +-- Concat list-like tables. local function concat_tables(...) local ret = {} for i = 1, select('#', ...) do @@ -609,37 +612,6 @@ local function fixtbl_rec(tbl) return fixtbl(tbl) end --- From https://github.com/premake/premake-core/blob/master/src/base/table.lua -local function table_flatten(arr) - local result = {} - local function _table_flatten(_arr) - local n = #_arr - for i = 1, n do - local v = _arr[i] - if type(v) == "table" then - _table_flatten(v) - elseif v then - table.insert(result, v) - end - end - end - _table_flatten(arr) - return result -end - --- Checks if a list-like (vector) table contains `value`. -local function table_contains(t, value) - if type(t) ~= 'table' then - error('t must be a table') - end - for _,v in ipairs(t) do - if v == value then - return true - end - end - return false -end - local function hexdump(str) local len = string.len(str) local dump = "" @@ -784,13 +756,12 @@ local module = { repeated_read_cmd = repeated_read_cmd, shallowcopy = shallowcopy, sleep = sleep, - table_contains = table_contains, - table_flatten = table_flatten, tmpname = tmpname, uname = uname, updated = updated, which = which, write_file = write_file, } +module = shared.tbl_extend('error', module, Paths, shared) return module diff --git a/test/unit/eval/typval_spec.lua b/test/unit/eval/typval_spec.lua index 919a42fbb9..4535d6a0b2 100644 --- a/test/unit/eval/typval_spec.lua +++ b/test/unit/eval/typval_spec.lua @@ -1,7 +1,6 @@ local bit = require('bit') local helpers = require('test.unit.helpers')(after_each) local eval_helpers = require('test.unit.eval.helpers') -local global_helpers = require('test.helpers') local itp = helpers.gen_itp(it) @@ -14,6 +13,8 @@ local NULL = helpers.NULL local cimport = helpers.cimport local to_cstr = helpers.to_cstr local alloc_log_new = helpers.alloc_log_new +local concat_tables = helpers.concat_tables +local map = helpers.map local a = eval_helpers.alloc_logging_helpers local int = eval_helpers.int @@ -40,9 +41,6 @@ local callback2tbl = eval_helpers.callback2tbl local tbl2callback = eval_helpers.tbl2callback local dict_watchers = eval_helpers.dict_watchers -local concat_tables = global_helpers.concat_tables -local map = global_helpers.map - local lib = cimport('./src/nvim/eval/typval.h', './src/nvim/memory.h', './src/nvim/mbyte.h', './src/nvim/garray.h', './src/nvim/eval.h', './src/nvim/vim.h', diff --git a/test/unit/helpers.lua b/test/unit/helpers.lua index beb25f25db..e634b7296e 100644 --- a/test/unit/helpers.lua +++ b/test/unit/helpers.lua @@ -15,7 +15,6 @@ local dedent = global_helpers.dedent local neq = global_helpers.neq local map = global_helpers.map local eq = global_helpers.eq -local ok = global_helpers.ok -- C constants. local NULL = ffi.cast('void*', 0) @@ -842,9 +841,6 @@ local module = { cimport = cimport, cppimport = cppimport, internalize = internalize, - ok = ok, - eq = eq, - neq = neq, ffi = ffi, lib = lib, cstr = cstr, @@ -869,6 +865,7 @@ local module = { ptr2key = ptr2key, debug_log = debug_log, } +module = global_helpers.tbl_extend('error', module, global_helpers) return function() return module end diff --git a/test/unit/undo_spec.lua b/test/unit/undo_spec.lua index f23110b329..616c6fbe3d 100644 --- a/test/unit/undo_spec.lua +++ b/test/unit/undo_spec.lua @@ -2,9 +2,7 @@ local helpers = require('test.unit.helpers')(after_each) local itp = helpers.gen_itp(it) local lfs = require('lfs') local child_call_once = helpers.child_call_once - -local global_helpers = require('test.helpers') -local sleep = global_helpers.sleep +local sleep = helpers.sleep local ffi = helpers.ffi local cimport = helpers.cimport @@ -156,12 +154,12 @@ describe('u_write_undo', function() local file_contents = "testing permissions" -- Write a text file where the undofile should go local correct_name = ffi.string(undo.u_get_undo_file_name(file_buffer.b_ffname, false)) - global_helpers.write_file(correct_name, file_contents, true, false) + helpers.write_file(correct_name, file_contents, true, false) -- Call with `forceit`. u_write_undo(correct_name, true, file_buffer, buffer_hash) - local undo_file_contents = global_helpers.read_file(correct_name) + local undo_file_contents = helpers.read_file(correct_name) neq(file_contents, undo_file_contents) local success, deletion_err = os.remove(correct_name) -- delete the file now that we're done with it. diff --git a/test/unit/viml/expressions/lexer_spec.lua b/test/unit/viml/expressions/lexer_spec.lua index 1b57a24ad5..358e858d61 100644 --- a/test/unit/viml/expressions/lexer_spec.lua +++ b/test/unit/viml/expressions/lexer_spec.lua @@ -1,5 +1,4 @@ local helpers = require('test.unit.helpers')(after_each) -local global_helpers = require('test.helpers') local itp = helpers.gen_itp(it) local viml_helpers = require('test.unit.viml.helpers') @@ -8,6 +7,8 @@ local conv_enum = helpers.conv_enum local cimport = helpers.cimport local ffi = helpers.ffi local eq = helpers.eq +local shallowcopy = helpers.shallowcopy +local intchar2lua = helpers.intchar2lua local conv_ccs = viml_helpers.conv_ccs local new_pstate = viml_helpers.new_pstate @@ -15,9 +16,6 @@ local conv_cmp_type = viml_helpers.conv_cmp_type local pstate_set_str = viml_helpers.pstate_set_str local conv_expr_asgn_type = viml_helpers.conv_expr_asgn_type -local shallowcopy = global_helpers.shallowcopy -local intchar2lua = global_helpers.intchar2lua - local lib = cimport('./src/nvim/viml/parser/expressions.h') local eltkn_type_tab, eltkn_mul_type_tab, eltkn_opt_scope_tab diff --git a/test/unit/viml/expressions/parser_spec.lua b/test/unit/viml/expressions/parser_spec.lua index 73388e5dd2..a8f29529ec 100644 --- a/test/unit/viml/expressions/parser_spec.lua +++ b/test/unit/viml/expressions/parser_spec.lua @@ -1,5 +1,4 @@ local helpers = require('test.unit.helpers')(after_each) -local global_helpers = require('test.helpers') local itp = helpers.gen_itp(it) local viml_helpers = require('test.unit.viml.helpers') @@ -14,6 +13,11 @@ local cimport = helpers.cimport local ffi = helpers.ffi local neq = helpers.neq local eq = helpers.eq +local mergedicts_copy = helpers.mergedicts_copy +local format_string = helpers.format_string +local format_luav = helpers.format_luav +local intchar2lua = helpers.intchar2lua +local dictdiff = helpers.dictdiff local conv_ccs = viml_helpers.conv_ccs local new_pstate = viml_helpers.new_pstate @@ -21,12 +25,6 @@ local conv_cmp_type = viml_helpers.conv_cmp_type local pstate_set_str = viml_helpers.pstate_set_str local conv_expr_asgn_type = viml_helpers.conv_expr_asgn_type -local mergedicts_copy = global_helpers.mergedicts_copy -local format_string = global_helpers.format_string -local format_luav = global_helpers.format_luav -local intchar2lua = global_helpers.intchar2lua -local dictdiff = global_helpers.dictdiff - local lib = cimport('./src/nvim/viml/parser/expressions.h', './src/nvim/syntax.h') |