blob: 0a7ede695f01e845cdae2d0e321674eb213f3568 [file] [log] [blame]
Bram Moolenaar5a50c222014-04-02 22:17:10 +02001Test for various eval features. vim: set ft=vim :
2
3Note: system clipboard support is not tested. I do not think anybody will thank
4me for messing with clipboard.
Bram Moolenaarb7cb42b2014-04-02 19:55:10 +02005
6STARTTEST
7:so small.vim
Bram Moolenaar5a50c222014-04-02 22:17:10 +02008:set encoding=latin1
9:set noswapfile
10:lang C
11:fun AppendRegContents(reg)
12 call append('$', printf('%s: type %s; value: %s (%s), expr: %s (%s)', a:reg, getregtype(a:reg), getreg(a:reg), string(getreg(a:reg, 0, 1)), getreg(a:reg, 1), string(getreg(a:reg, 1, 1))))
13endfun
14:command -nargs=? AR :call AppendRegContents(<q-args>)
15:fun SetReg(...)
16 call call('setreg', a:000)
17 call append('$', printf('{{{2 setreg(%s)', string(a:000)[1:-2]))
18 call AppendRegContents(a:1)
19 if a:1 isnot# '='
20 execute "silent normal! Go==\n==\e\"".a:1."P"
21 endif
22endfun
23:fun ErrExe(str)
24 call append('$', 'Executing '.a:str)
25 try
26 execute a:str
27 catch
28 $put =v:exception
29 endtry
30endfun
31:fun Test()
32$put ='{{{1 let tests'
33let @" = 'abc'
34AR "
35let @" = "abc\n"
36AR "
37let @" = "abc\<C-m>"
38AR "
39let @= = '"abc"'
40AR =
41
42$put ='{{{1 Basic setreg tests'
43call SetReg('a', 'abcA', 'c')
44call SetReg('b', 'abcB', 'v')
45call SetReg('c', 'abcC', 'l')
46call SetReg('d', 'abcD', 'V')
47call SetReg('e', 'abcE', 'b')
48call SetReg('f', 'abcF', "\<C-v>")
49call SetReg('g', 'abcG', 'b10')
50call SetReg('h', 'abcH', "\<C-v>10")
51call SetReg('I', 'abcI')
52
53$put ='{{{1 Appending single lines with setreg()'
54call SetReg('A', 'abcAc', 'c')
55call SetReg('A', 'abcAl', 'l')
56call SetReg('A', 'abcAc2','c')
57call SetReg('b', 'abcBc', 'ca')
58call SetReg('b', 'abcBb', 'ba')
59call SetReg('b', 'abcBc2','ca')
60call SetReg('b', 'abcBb2','b50a')
61
62call SetReg('C', 'abcCl', 'l')
63call SetReg('C', 'abcCc', 'c')
64call SetReg('D', 'abcDb', 'b')
65
66call SetReg('E', 'abcEb', 'b')
67call SetReg('E', 'abcEl', 'l')
68call SetReg('F', 'abcFc', 'c')
69
70$put ='{{{1 Appending NL with setreg()'
71call setreg('a', 'abcA2', 'c')
72call setreg('b', 'abcB2', 'v')
73call setreg('c', 'abcC2', 'l')
74call setreg('d', 'abcD2', 'V')
75call setreg('e', 'abcE2', 'b')
76call setreg('f', 'abcF2', "\<C-v>")
77call setreg('g', 'abcG2', 'b10')
78call setreg('h', 'abcH2', "\<C-v>10")
79call setreg('I', 'abcI2')
80
81call SetReg('A', "\n")
82call SetReg('B', "\n", 'c')
83call SetReg('C', "\n")
84call SetReg('D', "\n", 'l')
85call SetReg('E', "\n")
86call SetReg('F', "\n", 'b')
87
88$put ='{{{1 Setting lists with setreg()'
89call SetReg('a', ['abcA3'], 'c')
90call SetReg('b', ['abcB3'], 'l')
91call SetReg('c', ['abcC3'], 'b')
92call SetReg('d', ['abcD3'])
93
94$put ='{{{1 Appending lists with setreg()'
95call SetReg('A', ['abcA3c'], 'c')
96call SetReg('b', ['abcB3l'], 'la')
97call SetReg('C', ['abcC3b'], 'lb')
98call SetReg('D', ['abcD32'])
99
100call SetReg('A', ['abcA32'])
101call SetReg('B', ['abcB3c'], 'c')
102call SetReg('C', ['abcC3l'], 'l')
103call SetReg('D', ['abcD3b'], 'b')
104
105$put ='{{{1 Appending lists with NL with setreg()'
106call SetReg('A', ["\n", 'abcA3l2'], 'l')
107call SetReg('B', ["\n", 'abcB3c2'], 'c')
108call SetReg('C', ["\n", 'abcC3b2'], 'b')
109call SetReg('D', ["\n", 'abcD3b50'],'b50')
110
111$put ='{{{1 Setting lists with NLs with setreg()'
112call SetReg('a', ['abcA4-0', "\n", "abcA4-2\n", "\nabcA4-3", "abcA4-4\nabcA4-4-2"])
113call SetReg('b', ['abcB4c-0', "\n", "abcB4c-2\n", "\nabcB4c-3", "abcB4c-4\nabcB4c-4-2"], 'c')
114call SetReg('c', ['abcC4l-0', "\n", "abcC4l-2\n", "\nabcC4l-3", "abcC4l-4\nabcC4l-4-2"], 'l')
115call SetReg('d', ['abcD4b-0', "\n", "abcD4b-2\n", "\nabcD4b-3", "abcD4b-4\nabcD4b-4-2"], 'b')
116call SetReg('e', ['abcE4b10-0', "\n", "abcE4b10-2\n", "\nabcE4b10-3", "abcE4b10-4\nabcE4b10-4-2"], 'b10')
117
118$put ='{{{1 Search and expressions'
119call SetReg('/', ['abc/'])
120call SetReg('/', ["abc/\n"])
121call SetReg('=', ['"abc/"'])
122call SetReg('=', ["\"abc/\n\""])
123
124$put ='{{{1 Errors'
125call ErrExe('call setreg()')
126call ErrExe('call setreg(1)')
127call ErrExe('call setreg(1, 2, 3, 4)')
128call ErrExe('call setreg([], 2)')
129call ErrExe('call setreg(1, {})')
130call ErrExe('call setreg(1, 2, [])')
131call ErrExe('call setreg("/", [1, 2])')
132call ErrExe('call setreg("=", [1, 2])')
133call ErrExe('call setreg(1, ["", "", [], ""])')
134endfun
Bram Moolenaarb7cb42b2014-04-02 19:55:10 +0200135:"
Bram Moolenaar5a50c222014-04-02 22:17:10 +0200136:call Test()
Bram Moolenaarb7cb42b2014-04-02 19:55:10 +0200137:"
Bram Moolenaar5a50c222014-04-02 22:17:10 +0200138:delfunction SetReg
139:delfunction AppendRegContents
140:delfunction ErrExe
141:delfunction Test
142:delcommand AR
143:call garbagecollect(1)
144:"
145:/^start:/+1,$wq! test.out
146:" vim: et ts=4 isk-=\: fmr=???,???
147:call getchar()
Bram Moolenaarb7cb42b2014-04-02 19:55:10 +0200148ENDTEST
149
Bram Moolenaar5a50c222014-04-02 22:17:10 +0200150start: