test: replace busted with local harness

Replace the busted-based Lua test runner with a repo-local harness.

The new harness runs spec files directly under `nvim -ll`, ships its own
reporter and lightweight `luassert` shim, and keeps the helper/preload
flow used by the functional and unit test suites.

Keep the file boundary model shallow and busted-like by restoring `_G`,
`package.loaded`, `package.preload`, `arg`, and the process environment
between files, without carrying extra reset APIs or custom assertion
machinery.

Update the build and test entrypoints to use the new runner, add
black-box coverage for the harness itself, and drop the bundled
busted/luacheck dependency path.

AI-assisted: Codex
This commit is contained in:
Lewis Russell
2026-03-25 13:33:17 +00:00
parent e289f9579c
commit 55f9c2136e
45 changed files with 3899 additions and 659 deletions

View File

@@ -275,6 +275,13 @@ local function push(input, vt)
vterm.vterm_input_write(vt, input, string.len(input))
end
-- vterm_input_write() can synchronously invoke the Lua callbacks installed
-- above. LuaJIT must not JIT-compile an FFI call that re-enters Lua, or the
-- test can panic with "bad callback".
if jit then
jit.off(push, true)
end
local function expect(expected)
local actual = read_rm()
t.eq(expected .. '\n', actual)