mirror of
https://github.com/neovim/neovim.git
synced 2024-12-20 03:05:11 -07:00
157 lines
2.6 KiB
Lua
157 lines
2.6 KiB
Lua
-- Tests for storing global variables in the .shada file
|
|
|
|
local t = require('test.testutil')
|
|
local n = require('test.functional.testnvim')()
|
|
|
|
local clear, command, eq, neq, eval, poke_eventloop =
|
|
n.clear, n.command, t.eq, t.neq, n.eval, n.poke_eventloop
|
|
|
|
describe('storing global variables in ShaDa files', function()
|
|
local tempname = 'Xtest-functional-legacy-074'
|
|
setup(function()
|
|
clear()
|
|
os.remove(tempname)
|
|
end)
|
|
|
|
it('is working', function()
|
|
clear { args_rm = { '-i' }, args = { '-i', 'Xviminfo' } }
|
|
|
|
local test_dict = { foo = 1, bar = 0, longvarible = 1000 }
|
|
local test_list = {
|
|
1,
|
|
2,
|
|
3,
|
|
4,
|
|
5,
|
|
6,
|
|
7,
|
|
8,
|
|
9,
|
|
10,
|
|
11,
|
|
12,
|
|
13,
|
|
14,
|
|
15,
|
|
16,
|
|
17,
|
|
18,
|
|
19,
|
|
20,
|
|
21,
|
|
22,
|
|
23,
|
|
24,
|
|
25,
|
|
26,
|
|
27,
|
|
28,
|
|
29,
|
|
30,
|
|
31,
|
|
32,
|
|
33,
|
|
34,
|
|
35,
|
|
36,
|
|
37,
|
|
38,
|
|
39,
|
|
40,
|
|
41,
|
|
42,
|
|
43,
|
|
44,
|
|
45,
|
|
46,
|
|
47,
|
|
48,
|
|
49,
|
|
50,
|
|
51,
|
|
52,
|
|
53,
|
|
54,
|
|
55,
|
|
56,
|
|
57,
|
|
58,
|
|
59,
|
|
60,
|
|
61,
|
|
62,
|
|
63,
|
|
64,
|
|
65,
|
|
66,
|
|
67,
|
|
68,
|
|
69,
|
|
70,
|
|
71,
|
|
72,
|
|
73,
|
|
74,
|
|
75,
|
|
76,
|
|
77,
|
|
78,
|
|
79,
|
|
80,
|
|
81,
|
|
82,
|
|
83,
|
|
84,
|
|
85,
|
|
86,
|
|
87,
|
|
88,
|
|
89,
|
|
90,
|
|
91,
|
|
92,
|
|
93,
|
|
94,
|
|
95,
|
|
96,
|
|
97,
|
|
98,
|
|
99,
|
|
100,
|
|
}
|
|
|
|
command('set visualbell')
|
|
command('set shada+=!')
|
|
command("let MY_GLOBAL_DICT={'foo': 1, 'bar': 0, 'longvarible': 1000}")
|
|
-- Store a really long list. Initially this was testing line wrapping in
|
|
-- viminfo, but shada files has no line wrapping, no matter how long the
|
|
-- list is.
|
|
command('let MY_GLOBAL_LIST=range(1, 100)')
|
|
|
|
eq(test_dict, eval('MY_GLOBAL_DICT'))
|
|
eq(test_list, eval('MY_GLOBAL_LIST'))
|
|
|
|
command('wsh! ' .. tempname)
|
|
poke_eventloop()
|
|
|
|
-- Assert that the shada file exists.
|
|
neq(nil, vim.uv.fs_stat(tempname))
|
|
command('unlet MY_GLOBAL_DICT')
|
|
command('unlet MY_GLOBAL_LIST')
|
|
-- Assert that the variables where deleted.
|
|
eq(0, eval('exists("MY_GLOBAL_DICT")'))
|
|
eq(0, eval('exists("MY_GLOBAL_LIST")'))
|
|
|
|
command('rsh! ' .. tempname)
|
|
|
|
eq(test_list, eval('MY_GLOBAL_LIST'))
|
|
eq(test_dict, eval('MY_GLOBAL_DICT'))
|
|
end)
|
|
|
|
teardown(function()
|
|
os.remove(tempname)
|
|
command('set shadafile=NONE')
|
|
os.remove('Xviminfo')
|
|
end)
|
|
end)
|