Files
neovim/test/functional/ex_getln/history_spec.lua
ZyX 244dbe3a77 viminfo: First version of ShaDa file dumping
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).
2015-10-08 21:59:51 +03:00

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)