mirror of
https://github.com/neovim/neovim.git
synced 2026-06-16 08:41:15 +00:00
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
(cherry picked from commit 55f9c2136e)
29 lines
600 B
Lua
29 lines
600 B
Lua
local assert = require('test.assert')
|
|
|
|
describe('test.assert', function()
|
|
it('ignores aliasing differences', function()
|
|
local shared = {}
|
|
|
|
assert.eq({ 1, shared, 1, shared }, { 1, {}, 1, {} })
|
|
assert.eq({ 1, {}, 1, {} }, { 1, shared, 1, shared })
|
|
end)
|
|
|
|
it('handles cyclic tables', function()
|
|
local expected = {}
|
|
local actual = {}
|
|
|
|
expected[1] = expected
|
|
actual[1] = actual
|
|
|
|
assert.eq(expected, actual)
|
|
end)
|
|
|
|
it('still rejects different structures', function()
|
|
local expected = {}
|
|
|
|
expected[1] = expected
|
|
|
|
assert.neq(expected, { {} })
|
|
end)
|
|
end)
|