mirror of
https://github.com/neovim/neovim.git
synced 2025-09-13 14:58:18 +00:00

What works: 1. ShaDa file dumping: header, registers, jump list, history, search patterns, substitute strings, variables. 2. ShaDa file reading: registers, global marks, variables. Most was not tested. TODO: 1. Merging. 2. Reading history, local marks, jump and buffer lists. 3. Documentation update. 4. Converting some data from &encoding. 5. Safer variant of dumping viminfo (dump to temporary file then rename). 6. Removing old viminfo code (currently masked with `#if 0` in a ShaDa file for reference).
41 lines
1.4 KiB
Lua
41 lines
1.4 KiB
Lua
local helpers = require('test.functional.helpers')
|
|
local clear, nvim, call, eq =
|
|
helpers.clear, helpers.nvim, helpers.call, helpers.eq
|
|
|
|
describe('history support code', function()
|
|
before_each(clear)
|
|
|
|
local histadd = function(...) return call('histadd', ...) end
|
|
local histget = function(...) return call('histget', ...) end
|
|
local histdel = function(...) return call('histdel', ...) end
|
|
|
|
it('correctly clears start of the history', function()
|
|
-- Regression test: check absense of the memory leak when clearing start of
|
|
-- the history using ex_getln.c/clr_history().
|
|
eq(1, histadd(':', 'foo'))
|
|
eq(1, histdel(':'))
|
|
eq('', histget(':', -1))
|
|
end)
|
|
|
|
it('correctly clears end of the history', function()
|
|
-- Regression test: check absense of the memory leak when clearing end of
|
|
-- the history using ex_getln.c/clr_history().
|
|
nvim('set_option', 'history', 1)
|
|
eq(1, histadd(':', 'foo'))
|
|
eq(1, histdel(':'))
|
|
eq('', histget(':', -1))
|
|
end)
|
|
|
|
it('correctly removes item from history', function()
|
|
-- Regression test: check that ex_getln.c/del_history_idx() correctly clears
|
|
-- history index after removing history entry. If it does not then deleting
|
|
-- history will result in a double free.
|
|
eq(1, histadd(':', 'foo'))
|
|
eq(1, histadd(':', 'bar'))
|
|
eq(1, histadd(':', 'baz'))
|
|
eq(1, histdel(':', -2))
|
|
eq(1, histdel(':'))
|
|
eq('', histget(':', -1))
|
|
end)
|
|
end)
|