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

@@ -1,5 +1,4 @@
local t = require('test.unit.testutil')
local assert = require('luassert')
local itp = t.gen_itp(it)
@@ -11,7 +10,7 @@ if os.getenv('NVIM_TEST_RUN_TESTTEST') ~= '1' then
end
describe('test code', function()
itp('does not hang when working with lengthy errors', function()
assert.just_fail(('x'):rep(65536))
error(('x'):rep(65536), 0)
end)
itp('shows trace after exiting abnormally', function()
sc.exit(0)