Mercurial > vim
annotate src/testdir/vim9.vim @ 36479:20c3cd07c529 draft default tip
runtime(doc): simplify vimtutor manpage a bit more
Commit: https://github.com/vim/vim/commit/5ccac75d967e73669fd9dd5b83916a54a5989ae6
Author: Christian Brabandt <cb@256bit.org>
Date: Mon Nov 4 21:02:42 2024 +0100
runtime(doc): simplify vimtutor manpage a bit more
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Mon, 04 Nov 2024 21:15:03 +0100 |
parents | 96131d0faead |
children |
rev | line source |
---|---|
27457
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
1 vim9script |
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
2 |
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
3 # Utility functions for testing vim9 script |
20170
0612c64a2b87
patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
4 |
27457
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
5 # Use a different file name for each run. |
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
6 var sequence = 1 |
23092
c713358da074
patch 8.2.2092: Vim9: unpredictable errors for script tests
Bram Moolenaar <Bram@vim.org>
parents:
22500
diff
changeset
|
7 |
27457
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
8 # Check that "lines" inside a ":def" function has no error when called. |
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
9 export func CheckDefSuccess(lines) |
23247
f2d05fb28e54
patch 8.2.2169: Vim9: test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents:
23092
diff
changeset
|
10 let cwd = getcwd() |
f2d05fb28e54
patch 8.2.2169: Vim9: test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents:
23092
diff
changeset
|
11 let fname = 'XdefSuccess' .. s:sequence |
23092
c713358da074
patch 8.2.2092: Vim9: unpredictable errors for script tests
Bram Moolenaar <Bram@vim.org>
parents:
22500
diff
changeset
|
12 let s:sequence += 1 |
c713358da074
patch 8.2.2092: Vim9: unpredictable errors for script tests
Bram Moolenaar <Bram@vim.org>
parents:
22500
diff
changeset
|
13 call writefile(['def Func()'] + a:lines + ['enddef', 'defcompile'], fname) |
23247
f2d05fb28e54
patch 8.2.2169: Vim9: test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents:
23092
diff
changeset
|
14 try |
f2d05fb28e54
patch 8.2.2169: Vim9: test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents:
23092
diff
changeset
|
15 exe 'so ' .. fname |
f2d05fb28e54
patch 8.2.2169: Vim9: test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents:
23092
diff
changeset
|
16 call Func() |
f2d05fb28e54
patch 8.2.2169: Vim9: test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents:
23092
diff
changeset
|
17 finally |
f2d05fb28e54
patch 8.2.2169: Vim9: test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents:
23092
diff
changeset
|
18 call chdir(cwd) |
f2d05fb28e54
patch 8.2.2169: Vim9: test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents:
23092
diff
changeset
|
19 call delete(fname) |
25609
f8bcd21e6e24
patch 8.2.3341: Vim9: function call aborted despite try/catch
Bram Moolenaar <Bram@vim.org>
parents:
25597
diff
changeset
|
20 delfunc! Func |
23247
f2d05fb28e54
patch 8.2.2169: Vim9: test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents:
23092
diff
changeset
|
21 endtry |
21733
1bb5adfe5966
patch 8.2.1416: Vim9: boolean evaluation does not work as intended
Bram Moolenaar <Bram@vim.org>
parents:
20528
diff
changeset
|
22 endfunc |
1bb5adfe5966
patch 8.2.1416: Vim9: boolean evaluation does not work as intended
Bram Moolenaar <Bram@vim.org>
parents:
20528
diff
changeset
|
23 |
27457
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
24 # Check that "lines" inside a ":def" function has no error when compiled. |
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
25 export func CheckDefCompileSuccess(lines) |
26686
c04b28fad0cc
patch 8.2.3872: Vim9: finddir() and uniq() return types can be more specific
Bram Moolenaar <Bram@vim.org>
parents:
26654
diff
changeset
|
26 let fname = 'XdefSuccess' .. s:sequence |
c04b28fad0cc
patch 8.2.3872: Vim9: finddir() and uniq() return types can be more specific
Bram Moolenaar <Bram@vim.org>
parents:
26654
diff
changeset
|
27 let s:sequence += 1 |
c04b28fad0cc
patch 8.2.3872: Vim9: finddir() and uniq() return types can be more specific
Bram Moolenaar <Bram@vim.org>
parents:
26654
diff
changeset
|
28 call writefile(['def Func()'] + a:lines + ['enddef', 'defcompile'], fname) |
c04b28fad0cc
patch 8.2.3872: Vim9: finddir() and uniq() return types can be more specific
Bram Moolenaar <Bram@vim.org>
parents:
26654
diff
changeset
|
29 try |
c04b28fad0cc
patch 8.2.3872: Vim9: finddir() and uniq() return types can be more specific
Bram Moolenaar <Bram@vim.org>
parents:
26654
diff
changeset
|
30 exe 'so ' .. fname |
c04b28fad0cc
patch 8.2.3872: Vim9: finddir() and uniq() return types can be more specific
Bram Moolenaar <Bram@vim.org>
parents:
26654
diff
changeset
|
31 finally |
c04b28fad0cc
patch 8.2.3872: Vim9: finddir() and uniq() return types can be more specific
Bram Moolenaar <Bram@vim.org>
parents:
26654
diff
changeset
|
32 call delete(fname) |
c04b28fad0cc
patch 8.2.3872: Vim9: finddir() and uniq() return types can be more specific
Bram Moolenaar <Bram@vim.org>
parents:
26654
diff
changeset
|
33 delfunc! Func |
c04b28fad0cc
patch 8.2.3872: Vim9: finddir() and uniq() return types can be more specific
Bram Moolenaar <Bram@vim.org>
parents:
26654
diff
changeset
|
34 endtry |
c04b28fad0cc
patch 8.2.3872: Vim9: finddir() and uniq() return types can be more specific
Bram Moolenaar <Bram@vim.org>
parents:
26654
diff
changeset
|
35 endfunc |
c04b28fad0cc
patch 8.2.3872: Vim9: finddir() and uniq() return types can be more specific
Bram Moolenaar <Bram@vim.org>
parents:
26654
diff
changeset
|
36 |
27457
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
37 # Check that "lines" inside ":def" results in an "error" message. |
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
38 # If "lnum" is given check that the error is reported for this line. |
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
39 # Add a line before and after to make it less likely that the line number is |
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
40 # accidentally correct. |
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
41 export func CheckDefFailure(lines, error, lnum = -3) |
23247
f2d05fb28e54
patch 8.2.2169: Vim9: test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents:
23092
diff
changeset
|
42 let cwd = getcwd() |
f2d05fb28e54
patch 8.2.2169: Vim9: test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents:
23092
diff
changeset
|
43 let fname = 'XdefFailure' .. s:sequence |
f2d05fb28e54
patch 8.2.2169: Vim9: test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents:
23092
diff
changeset
|
44 let s:sequence += 1 |
23092
c713358da074
patch 8.2.2092: Vim9: unpredictable errors for script tests
Bram Moolenaar <Bram@vim.org>
parents:
22500
diff
changeset
|
45 call writefile(['def Func()', '# comment'] + a:lines + ['#comment', 'enddef', 'defcompile'], fname) |
23247
f2d05fb28e54
patch 8.2.2169: Vim9: test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents:
23092
diff
changeset
|
46 try |
f2d05fb28e54
patch 8.2.2169: Vim9: test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents:
23092
diff
changeset
|
47 call assert_fails('so ' .. fname, a:error, a:lines, a:lnum + 1) |
f2d05fb28e54
patch 8.2.2169: Vim9: test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents:
23092
diff
changeset
|
48 finally |
f2d05fb28e54
patch 8.2.2169: Vim9: test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents:
23092
diff
changeset
|
49 call chdir(cwd) |
f2d05fb28e54
patch 8.2.2169: Vim9: test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents:
23092
diff
changeset
|
50 call delete(fname) |
f2d05fb28e54
patch 8.2.2169: Vim9: test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents:
23092
diff
changeset
|
51 delfunc! Func |
f2d05fb28e54
patch 8.2.2169: Vim9: test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents:
23092
diff
changeset
|
52 endtry |
20170
0612c64a2b87
patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
53 endfunc |
0612c64a2b87
patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
54 |
27457
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
55 # Check that "lines" inside ":def" results in an "error" message when executed. |
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
56 # If "lnum" is given check that the error is reported for this line. |
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
57 # Add a line before and after to make it less likely that the line number is |
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
58 # accidentally correct. |
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
59 export func CheckDefExecFailure(lines, error, lnum = -3) |
23247
f2d05fb28e54
patch 8.2.2169: Vim9: test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents:
23092
diff
changeset
|
60 let cwd = getcwd() |
f2d05fb28e54
patch 8.2.2169: Vim9: test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents:
23092
diff
changeset
|
61 let fname = 'XdefExecFailure' .. s:sequence |
23092
c713358da074
patch 8.2.2092: Vim9: unpredictable errors for script tests
Bram Moolenaar <Bram@vim.org>
parents:
22500
diff
changeset
|
62 let s:sequence += 1 |
c713358da074
patch 8.2.2092: Vim9: unpredictable errors for script tests
Bram Moolenaar <Bram@vim.org>
parents:
22500
diff
changeset
|
63 call writefile(['def Func()', '# comment'] + a:lines + ['#comment', 'enddef'], fname) |
23247
f2d05fb28e54
patch 8.2.2169: Vim9: test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents:
23092
diff
changeset
|
64 try |
f2d05fb28e54
patch 8.2.2169: Vim9: test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents:
23092
diff
changeset
|
65 exe 'so ' .. fname |
f2d05fb28e54
patch 8.2.2169: Vim9: test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents:
23092
diff
changeset
|
66 call assert_fails('call Func()', a:error, a:lines, a:lnum + 1) |
f2d05fb28e54
patch 8.2.2169: Vim9: test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents:
23092
diff
changeset
|
67 finally |
f2d05fb28e54
patch 8.2.2169: Vim9: test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents:
23092
diff
changeset
|
68 call chdir(cwd) |
f2d05fb28e54
patch 8.2.2169: Vim9: test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents:
23092
diff
changeset
|
69 call delete(fname) |
f2d05fb28e54
patch 8.2.2169: Vim9: test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents:
23092
diff
changeset
|
70 delfunc! Func |
f2d05fb28e54
patch 8.2.2169: Vim9: test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents:
23092
diff
changeset
|
71 endtry |
20287
ce1b73835822
patch 8.2.0699: Vim9: not all errors tested
Bram Moolenaar <Bram@vim.org>
parents:
20170
diff
changeset
|
72 endfunc |
ce1b73835822
patch 8.2.0699: Vim9: not all errors tested
Bram Moolenaar <Bram@vim.org>
parents:
20170
diff
changeset
|
73 |
27457
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
74 export def CheckScriptFailure(lines: list<string>, error: string, lnum = -3) |
23247
f2d05fb28e54
patch 8.2.2169: Vim9: test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents:
23092
diff
changeset
|
75 var cwd = getcwd() |
27669
5c4ab8d4472c
patch 8.2.4360: Vim9: allowing use of "s:" leads to inconsistencies
Bram Moolenaar <Bram@vim.org>
parents:
27457
diff
changeset
|
76 var fname = 'XScriptFailure' .. sequence |
5c4ab8d4472c
patch 8.2.4360: Vim9: allowing use of "s:" leads to inconsistencies
Bram Moolenaar <Bram@vim.org>
parents:
27457
diff
changeset
|
77 sequence += 1 |
23092
c713358da074
patch 8.2.2092: Vim9: unpredictable errors for script tests
Bram Moolenaar <Bram@vim.org>
parents:
22500
diff
changeset
|
78 writefile(lines, fname) |
23247
f2d05fb28e54
patch 8.2.2169: Vim9: test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents:
23092
diff
changeset
|
79 try |
f2d05fb28e54
patch 8.2.2169: Vim9: test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents:
23092
diff
changeset
|
80 assert_fails('so ' .. fname, error, lines, lnum) |
f2d05fb28e54
patch 8.2.2169: Vim9: test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents:
23092
diff
changeset
|
81 finally |
f2d05fb28e54
patch 8.2.2169: Vim9: test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents:
23092
diff
changeset
|
82 chdir(cwd) |
f2d05fb28e54
patch 8.2.2169: Vim9: test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents:
23092
diff
changeset
|
83 delete(fname) |
f2d05fb28e54
patch 8.2.2169: Vim9: test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents:
23092
diff
changeset
|
84 endtry |
20170
0612c64a2b87
patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
85 enddef |
0612c64a2b87
patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
86 |
27457
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
87 export def CheckScriptFailureList(lines: list<string>, errors: list<string>, lnum = -3) |
23679
e8c379b20765
patch 8.2.2381: Vim9: divide by zero does not abort expression execution
Bram Moolenaar <Bram@vim.org>
parents:
23247
diff
changeset
|
88 var cwd = getcwd() |
27669
5c4ab8d4472c
patch 8.2.4360: Vim9: allowing use of "s:" leads to inconsistencies
Bram Moolenaar <Bram@vim.org>
parents:
27457
diff
changeset
|
89 var fname = 'XScriptFailure' .. sequence |
5c4ab8d4472c
patch 8.2.4360: Vim9: allowing use of "s:" leads to inconsistencies
Bram Moolenaar <Bram@vim.org>
parents:
27457
diff
changeset
|
90 sequence += 1 |
23679
e8c379b20765
patch 8.2.2381: Vim9: divide by zero does not abort expression execution
Bram Moolenaar <Bram@vim.org>
parents:
23247
diff
changeset
|
91 writefile(lines, fname) |
e8c379b20765
patch 8.2.2381: Vim9: divide by zero does not abort expression execution
Bram Moolenaar <Bram@vim.org>
parents:
23247
diff
changeset
|
92 try |
e8c379b20765
patch 8.2.2381: Vim9: divide by zero does not abort expression execution
Bram Moolenaar <Bram@vim.org>
parents:
23247
diff
changeset
|
93 assert_fails('so ' .. fname, errors, lines, lnum) |
e8c379b20765
patch 8.2.2381: Vim9: divide by zero does not abort expression execution
Bram Moolenaar <Bram@vim.org>
parents:
23247
diff
changeset
|
94 finally |
e8c379b20765
patch 8.2.2381: Vim9: divide by zero does not abort expression execution
Bram Moolenaar <Bram@vim.org>
parents:
23247
diff
changeset
|
95 chdir(cwd) |
e8c379b20765
patch 8.2.2381: Vim9: divide by zero does not abort expression execution
Bram Moolenaar <Bram@vim.org>
parents:
23247
diff
changeset
|
96 delete(fname) |
e8c379b20765
patch 8.2.2381: Vim9: divide by zero does not abort expression execution
Bram Moolenaar <Bram@vim.org>
parents:
23247
diff
changeset
|
97 endtry |
e8c379b20765
patch 8.2.2381: Vim9: divide by zero does not abort expression execution
Bram Moolenaar <Bram@vim.org>
parents:
23247
diff
changeset
|
98 enddef |
e8c379b20765
patch 8.2.2381: Vim9: divide by zero does not abort expression execution
Bram Moolenaar <Bram@vim.org>
parents:
23247
diff
changeset
|
99 |
27457
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
100 export def CheckScriptSuccess(lines: list<string>) |
23247
f2d05fb28e54
patch 8.2.2169: Vim9: test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents:
23092
diff
changeset
|
101 var cwd = getcwd() |
27669
5c4ab8d4472c
patch 8.2.4360: Vim9: allowing use of "s:" leads to inconsistencies
Bram Moolenaar <Bram@vim.org>
parents:
27457
diff
changeset
|
102 var fname = 'XScriptSuccess' .. sequence |
5c4ab8d4472c
patch 8.2.4360: Vim9: allowing use of "s:" leads to inconsistencies
Bram Moolenaar <Bram@vim.org>
parents:
27457
diff
changeset
|
103 sequence += 1 |
23092
c713358da074
patch 8.2.2092: Vim9: unpredictable errors for script tests
Bram Moolenaar <Bram@vim.org>
parents:
22500
diff
changeset
|
104 writefile(lines, fname) |
23247
f2d05fb28e54
patch 8.2.2169: Vim9: test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents:
23092
diff
changeset
|
105 try |
f2d05fb28e54
patch 8.2.2169: Vim9: test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents:
23092
diff
changeset
|
106 exe 'so ' .. fname |
f2d05fb28e54
patch 8.2.2169: Vim9: test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents:
23092
diff
changeset
|
107 finally |
f2d05fb28e54
patch 8.2.2169: Vim9: test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents:
23092
diff
changeset
|
108 chdir(cwd) |
f2d05fb28e54
patch 8.2.2169: Vim9: test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents:
23092
diff
changeset
|
109 delete(fname) |
f2d05fb28e54
patch 8.2.2169: Vim9: test leaves file behind
Bram Moolenaar <Bram@vim.org>
parents:
23092
diff
changeset
|
110 endtry |
20170
0612c64a2b87
patch 8.2.0640: Vim9: expanding does not work
Bram Moolenaar <Bram@vim.org>
parents:
diff
changeset
|
111 enddef |
21909
a211bca98bc3
patch 8.2.1504: Vim9: white space checks are only done for a :def function
Bram Moolenaar <Bram@vim.org>
parents:
21863
diff
changeset
|
112 |
27457
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
113 export def CheckDefAndScriptSuccess(lines: list<string>) |
21937
b931df03adcc
patch 8.2.1518: Vim9: cannot assign to local option
Bram Moolenaar <Bram@vim.org>
parents:
21909
diff
changeset
|
114 CheckDefSuccess(lines) |
b931df03adcc
patch 8.2.1518: Vim9: cannot assign to local option
Bram Moolenaar <Bram@vim.org>
parents:
21909
diff
changeset
|
115 CheckScriptSuccess(['vim9script'] + lines) |
b931df03adcc
patch 8.2.1518: Vim9: cannot assign to local option
Bram Moolenaar <Bram@vim.org>
parents:
21909
diff
changeset
|
116 enddef |
b931df03adcc
patch 8.2.1518: Vim9: cannot assign to local option
Bram Moolenaar <Bram@vim.org>
parents:
21909
diff
changeset
|
117 |
27457
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
118 # Check that a command fails when used in a :def function and when used in |
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
119 # Vim9 script. |
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
120 # When "error" is a string, both with the same error. |
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
121 # When "error" is a list, the :def function fails with "error[0]" , the script |
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
122 # fails with "error[1]". |
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
123 export def CheckDefAndScriptFailure(lines: list<string>, error: any, lnum = -3) |
26650
a07323eb647f
patch 8.2.3854: Vim9: inconsistent arguments for test functions
Bram Moolenaar <Bram@vim.org>
parents:
25609
diff
changeset
|
124 var errorDef: string |
a07323eb647f
patch 8.2.3854: Vim9: inconsistent arguments for test functions
Bram Moolenaar <Bram@vim.org>
parents:
25609
diff
changeset
|
125 var errorScript: string |
a07323eb647f
patch 8.2.3854: Vim9: inconsistent arguments for test functions
Bram Moolenaar <Bram@vim.org>
parents:
25609
diff
changeset
|
126 if type(error) == v:t_string |
a07323eb647f
patch 8.2.3854: Vim9: inconsistent arguments for test functions
Bram Moolenaar <Bram@vim.org>
parents:
25609
diff
changeset
|
127 errorDef = error |
a07323eb647f
patch 8.2.3854: Vim9: inconsistent arguments for test functions
Bram Moolenaar <Bram@vim.org>
parents:
25609
diff
changeset
|
128 errorScript = error |
a07323eb647f
patch 8.2.3854: Vim9: inconsistent arguments for test functions
Bram Moolenaar <Bram@vim.org>
parents:
25609
diff
changeset
|
129 elseif type(error) == v:t_list && len(error) == 2 |
a07323eb647f
patch 8.2.3854: Vim9: inconsistent arguments for test functions
Bram Moolenaar <Bram@vim.org>
parents:
25609
diff
changeset
|
130 errorDef = error[0] |
a07323eb647f
patch 8.2.3854: Vim9: inconsistent arguments for test functions
Bram Moolenaar <Bram@vim.org>
parents:
25609
diff
changeset
|
131 errorScript = error[1] |
a07323eb647f
patch 8.2.3854: Vim9: inconsistent arguments for test functions
Bram Moolenaar <Bram@vim.org>
parents:
25609
diff
changeset
|
132 else |
a07323eb647f
patch 8.2.3854: Vim9: inconsistent arguments for test functions
Bram Moolenaar <Bram@vim.org>
parents:
25609
diff
changeset
|
133 echoerr 'error argument must be a string or a list with two items' |
a07323eb647f
patch 8.2.3854: Vim9: inconsistent arguments for test functions
Bram Moolenaar <Bram@vim.org>
parents:
25609
diff
changeset
|
134 return |
a07323eb647f
patch 8.2.3854: Vim9: inconsistent arguments for test functions
Bram Moolenaar <Bram@vim.org>
parents:
25609
diff
changeset
|
135 endif |
24339
236e9ebdb30e
patch 8.2.2710: Vim9: not all tests cover script and :def function
Bram Moolenaar <Bram@vim.org>
parents:
23679
diff
changeset
|
136 CheckDefFailure(lines, errorDef, lnum) |
236e9ebdb30e
patch 8.2.2710: Vim9: not all tests cover script and :def function
Bram Moolenaar <Bram@vim.org>
parents:
23679
diff
changeset
|
137 CheckScriptFailure(['vim9script'] + lines, errorScript, lnum + 1) |
236e9ebdb30e
patch 8.2.2710: Vim9: not all tests cover script and :def function
Bram Moolenaar <Bram@vim.org>
parents:
23679
diff
changeset
|
138 enddef |
236e9ebdb30e
patch 8.2.2710: Vim9: not all tests cover script and :def function
Bram Moolenaar <Bram@vim.org>
parents:
23679
diff
changeset
|
139 |
27457
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
140 # Check that a command fails when executed in a :def function and when used in |
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
141 # Vim9 script. |
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
142 # When "error" is a string, both with the same error. |
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
143 # When "error" is a list, the :def function fails with "error[0]" , the script |
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
144 # fails with "error[1]". |
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
145 export def CheckDefExecAndScriptFailure(lines: list<string>, error: any, lnum = -3) |
26650
a07323eb647f
patch 8.2.3854: Vim9: inconsistent arguments for test functions
Bram Moolenaar <Bram@vim.org>
parents:
25609
diff
changeset
|
146 var errorDef: string |
a07323eb647f
patch 8.2.3854: Vim9: inconsistent arguments for test functions
Bram Moolenaar <Bram@vim.org>
parents:
25609
diff
changeset
|
147 var errorScript: string |
a07323eb647f
patch 8.2.3854: Vim9: inconsistent arguments for test functions
Bram Moolenaar <Bram@vim.org>
parents:
25609
diff
changeset
|
148 if type(error) == v:t_string |
a07323eb647f
patch 8.2.3854: Vim9: inconsistent arguments for test functions
Bram Moolenaar <Bram@vim.org>
parents:
25609
diff
changeset
|
149 errorDef = error |
a07323eb647f
patch 8.2.3854: Vim9: inconsistent arguments for test functions
Bram Moolenaar <Bram@vim.org>
parents:
25609
diff
changeset
|
150 errorScript = error |
a07323eb647f
patch 8.2.3854: Vim9: inconsistent arguments for test functions
Bram Moolenaar <Bram@vim.org>
parents:
25609
diff
changeset
|
151 elseif type(error) == v:t_list && len(error) == 2 |
a07323eb647f
patch 8.2.3854: Vim9: inconsistent arguments for test functions
Bram Moolenaar <Bram@vim.org>
parents:
25609
diff
changeset
|
152 errorDef = error[0] |
a07323eb647f
patch 8.2.3854: Vim9: inconsistent arguments for test functions
Bram Moolenaar <Bram@vim.org>
parents:
25609
diff
changeset
|
153 errorScript = error[1] |
a07323eb647f
patch 8.2.3854: Vim9: inconsistent arguments for test functions
Bram Moolenaar <Bram@vim.org>
parents:
25609
diff
changeset
|
154 else |
a07323eb647f
patch 8.2.3854: Vim9: inconsistent arguments for test functions
Bram Moolenaar <Bram@vim.org>
parents:
25609
diff
changeset
|
155 echoerr 'error argument must be a string or a list with two items' |
a07323eb647f
patch 8.2.3854: Vim9: inconsistent arguments for test functions
Bram Moolenaar <Bram@vim.org>
parents:
25609
diff
changeset
|
156 return |
a07323eb647f
patch 8.2.3854: Vim9: inconsistent arguments for test functions
Bram Moolenaar <Bram@vim.org>
parents:
25609
diff
changeset
|
157 endif |
24339
236e9ebdb30e
patch 8.2.2710: Vim9: not all tests cover script and :def function
Bram Moolenaar <Bram@vim.org>
parents:
23679
diff
changeset
|
158 CheckDefExecFailure(lines, errorDef, lnum) |
236e9ebdb30e
patch 8.2.2710: Vim9: not all tests cover script and :def function
Bram Moolenaar <Bram@vim.org>
parents:
23679
diff
changeset
|
159 CheckScriptFailure(['vim9script'] + lines, errorScript, lnum + 1) |
236e9ebdb30e
patch 8.2.2710: Vim9: not all tests cover script and :def function
Bram Moolenaar <Bram@vim.org>
parents:
23679
diff
changeset
|
160 enddef |
24434
602e528a8e43
patch 8.2.2757: Vim9: blob tests for legacy and Vim9 script are separate
Bram Moolenaar <Bram@vim.org>
parents:
24339
diff
changeset
|
161 |
602e528a8e43
patch 8.2.2757: Vim9: blob tests for legacy and Vim9 script are separate
Bram Moolenaar <Bram@vim.org>
parents:
24339
diff
changeset
|
162 |
27457
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
163 # Check that "lines" inside a legacy function has no error. |
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
164 export func CheckLegacySuccess(lines) |
24434
602e528a8e43
patch 8.2.2757: Vim9: blob tests for legacy and Vim9 script are separate
Bram Moolenaar <Bram@vim.org>
parents:
24339
diff
changeset
|
165 let cwd = getcwd() |
602e528a8e43
patch 8.2.2757: Vim9: blob tests for legacy and Vim9 script are separate
Bram Moolenaar <Bram@vim.org>
parents:
24339
diff
changeset
|
166 let fname = 'XlegacySuccess' .. s:sequence |
602e528a8e43
patch 8.2.2757: Vim9: blob tests for legacy and Vim9 script are separate
Bram Moolenaar <Bram@vim.org>
parents:
24339
diff
changeset
|
167 let s:sequence += 1 |
602e528a8e43
patch 8.2.2757: Vim9: blob tests for legacy and Vim9 script are separate
Bram Moolenaar <Bram@vim.org>
parents:
24339
diff
changeset
|
168 call writefile(['func Func()'] + a:lines + ['endfunc'], fname) |
602e528a8e43
patch 8.2.2757: Vim9: blob tests for legacy and Vim9 script are separate
Bram Moolenaar <Bram@vim.org>
parents:
24339
diff
changeset
|
169 try |
602e528a8e43
patch 8.2.2757: Vim9: blob tests for legacy and Vim9 script are separate
Bram Moolenaar <Bram@vim.org>
parents:
24339
diff
changeset
|
170 exe 'so ' .. fname |
602e528a8e43
patch 8.2.2757: Vim9: blob tests for legacy and Vim9 script are separate
Bram Moolenaar <Bram@vim.org>
parents:
24339
diff
changeset
|
171 call Func() |
24450
3e1886f1e875
patch 8.2.2765: Vim9: not all blob operations work
Bram Moolenaar <Bram@vim.org>
parents:
24434
diff
changeset
|
172 finally |
24434
602e528a8e43
patch 8.2.2757: Vim9: blob tests for legacy and Vim9 script are separate
Bram Moolenaar <Bram@vim.org>
parents:
24339
diff
changeset
|
173 delfunc! Func |
24450
3e1886f1e875
patch 8.2.2765: Vim9: not all blob operations work
Bram Moolenaar <Bram@vim.org>
parents:
24434
diff
changeset
|
174 call chdir(cwd) |
3e1886f1e875
patch 8.2.2765: Vim9: not all blob operations work
Bram Moolenaar <Bram@vim.org>
parents:
24434
diff
changeset
|
175 call delete(fname) |
3e1886f1e875
patch 8.2.2765: Vim9: not all blob operations work
Bram Moolenaar <Bram@vim.org>
parents:
24434
diff
changeset
|
176 endtry |
3e1886f1e875
patch 8.2.2765: Vim9: not all blob operations work
Bram Moolenaar <Bram@vim.org>
parents:
24434
diff
changeset
|
177 endfunc |
3e1886f1e875
patch 8.2.2765: Vim9: not all blob operations work
Bram Moolenaar <Bram@vim.org>
parents:
24434
diff
changeset
|
178 |
27457
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
179 # Check that "lines" inside a legacy function results in the expected error |
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
180 export func CheckLegacyFailure(lines, error) |
24450
3e1886f1e875
patch 8.2.2765: Vim9: not all blob operations work
Bram Moolenaar <Bram@vim.org>
parents:
24434
diff
changeset
|
181 let cwd = getcwd() |
3e1886f1e875
patch 8.2.2765: Vim9: not all blob operations work
Bram Moolenaar <Bram@vim.org>
parents:
24434
diff
changeset
|
182 let fname = 'XlegacyFails' .. s:sequence |
3e1886f1e875
patch 8.2.2765: Vim9: not all blob operations work
Bram Moolenaar <Bram@vim.org>
parents:
24434
diff
changeset
|
183 let s:sequence += 1 |
3e1886f1e875
patch 8.2.2765: Vim9: not all blob operations work
Bram Moolenaar <Bram@vim.org>
parents:
24434
diff
changeset
|
184 call writefile(['func Func()'] + a:lines + ['endfunc', 'call Func()'], fname) |
3e1886f1e875
patch 8.2.2765: Vim9: not all blob operations work
Bram Moolenaar <Bram@vim.org>
parents:
24434
diff
changeset
|
185 try |
3e1886f1e875
patch 8.2.2765: Vim9: not all blob operations work
Bram Moolenaar <Bram@vim.org>
parents:
24434
diff
changeset
|
186 call assert_fails('so ' .. fname, a:error) |
24434
602e528a8e43
patch 8.2.2757: Vim9: blob tests for legacy and Vim9 script are separate
Bram Moolenaar <Bram@vim.org>
parents:
24339
diff
changeset
|
187 finally |
24450
3e1886f1e875
patch 8.2.2765: Vim9: not all blob operations work
Bram Moolenaar <Bram@vim.org>
parents:
24434
diff
changeset
|
188 delfunc! Func |
24434
602e528a8e43
patch 8.2.2757: Vim9: blob tests for legacy and Vim9 script are separate
Bram Moolenaar <Bram@vim.org>
parents:
24339
diff
changeset
|
189 call chdir(cwd) |
602e528a8e43
patch 8.2.2757: Vim9: blob tests for legacy and Vim9 script are separate
Bram Moolenaar <Bram@vim.org>
parents:
24339
diff
changeset
|
190 call delete(fname) |
602e528a8e43
patch 8.2.2757: Vim9: blob tests for legacy and Vim9 script are separate
Bram Moolenaar <Bram@vim.org>
parents:
24339
diff
changeset
|
191 endtry |
602e528a8e43
patch 8.2.2757: Vim9: blob tests for legacy and Vim9 script are separate
Bram Moolenaar <Bram@vim.org>
parents:
24339
diff
changeset
|
192 endfunc |
602e528a8e43
patch 8.2.2757: Vim9: blob tests for legacy and Vim9 script are separate
Bram Moolenaar <Bram@vim.org>
parents:
24339
diff
changeset
|
193 |
27457
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
194 # Execute "lines" in a legacy function, translated as in |
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
195 # CheckLegacyAndVim9Success() |
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
196 export def CheckTransLegacySuccess(lines: list<string>) |
25593
c6277019b8c1
patch 8.2.3333: Vim9: not enough tests run with Vim9
Bram Moolenaar <Bram@vim.org>
parents:
25016
diff
changeset
|
197 var legacylines = lines->mapnew((_, v) => |
31849
dbec60b8c253
patch 9.0.1257: code style is not check in test scripts
Bram Moolenaar <Bram@vim.org>
parents:
27669
diff
changeset
|
198 v->substitute('\<VAR\>', 'let', 'g') |
dbec60b8c253
patch 9.0.1257: code style is not check in test scripts
Bram Moolenaar <Bram@vim.org>
parents:
27669
diff
changeset
|
199 ->substitute('\<LET\>', 'let', 'g') |
dbec60b8c253
patch 9.0.1257: code style is not check in test scripts
Bram Moolenaar <Bram@vim.org>
parents:
27669
diff
changeset
|
200 ->substitute('\<LSTART\>', '{', 'g') |
dbec60b8c253
patch 9.0.1257: code style is not check in test scripts
Bram Moolenaar <Bram@vim.org>
parents:
27669
diff
changeset
|
201 ->substitute('\<LMIDDLE\>', '->', 'g') |
25597
0fdacd8f0cf3
patch 8.2.3335: Vim9: not enough tests run with Vim9
Bram Moolenaar <Bram@vim.org>
parents:
25593
diff
changeset
|
202 ->substitute('\<LEND\>', '}', 'g') |
26654
e01607ab0fab
patch 8.2.3856: Vim9: not enough tests
Bram Moolenaar <Bram@vim.org>
parents:
26650
diff
changeset
|
203 ->substitute('\<TRUE\>', '1', 'g') |
e01607ab0fab
patch 8.2.3856: Vim9: not enough tests
Bram Moolenaar <Bram@vim.org>
parents:
26650
diff
changeset
|
204 ->substitute('\<FALSE\>', '0', 'g') |
31849
dbec60b8c253
patch 9.0.1257: code style is not check in test scripts
Bram Moolenaar <Bram@vim.org>
parents:
27669
diff
changeset
|
205 ->substitute('#"', ' "', 'g')) |
25593
c6277019b8c1
patch 8.2.3333: Vim9: not enough tests run with Vim9
Bram Moolenaar <Bram@vim.org>
parents:
25016
diff
changeset
|
206 CheckLegacySuccess(legacylines) |
c6277019b8c1
patch 8.2.3333: Vim9: not enough tests run with Vim9
Bram Moolenaar <Bram@vim.org>
parents:
25016
diff
changeset
|
207 enddef |
c6277019b8c1
patch 8.2.3333: Vim9: not enough tests run with Vim9
Bram Moolenaar <Bram@vim.org>
parents:
25016
diff
changeset
|
208 |
27457
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
209 export def Vim9Trans(lines: list<string>): list<string> |
26654
e01607ab0fab
patch 8.2.3856: Vim9: not enough tests
Bram Moolenaar <Bram@vim.org>
parents:
26650
diff
changeset
|
210 return lines->mapnew((_, v) => |
e01607ab0fab
patch 8.2.3856: Vim9: not enough tests
Bram Moolenaar <Bram@vim.org>
parents:
26650
diff
changeset
|
211 v->substitute('\<VAR\>', 'var', 'g') |
e01607ab0fab
patch 8.2.3856: Vim9: not enough tests
Bram Moolenaar <Bram@vim.org>
parents:
26650
diff
changeset
|
212 ->substitute('\<LET ', '', 'g') |
e01607ab0fab
patch 8.2.3856: Vim9: not enough tests
Bram Moolenaar <Bram@vim.org>
parents:
26650
diff
changeset
|
213 ->substitute('\<LSTART\>', '(', 'g') |
e01607ab0fab
patch 8.2.3856: Vim9: not enough tests
Bram Moolenaar <Bram@vim.org>
parents:
26650
diff
changeset
|
214 ->substitute('\<LMIDDLE\>', ') =>', 'g') |
e01607ab0fab
patch 8.2.3856: Vim9: not enough tests
Bram Moolenaar <Bram@vim.org>
parents:
26650
diff
changeset
|
215 ->substitute(' *\<LEND\> *', '', 'g') |
e01607ab0fab
patch 8.2.3856: Vim9: not enough tests
Bram Moolenaar <Bram@vim.org>
parents:
26650
diff
changeset
|
216 ->substitute('\<TRUE\>', 'true', 'g') |
e01607ab0fab
patch 8.2.3856: Vim9: not enough tests
Bram Moolenaar <Bram@vim.org>
parents:
26650
diff
changeset
|
217 ->substitute('\<FALSE\>', 'false', 'g')) |
e01607ab0fab
patch 8.2.3856: Vim9: not enough tests
Bram Moolenaar <Bram@vim.org>
parents:
26650
diff
changeset
|
218 enddef |
e01607ab0fab
patch 8.2.3856: Vim9: not enough tests
Bram Moolenaar <Bram@vim.org>
parents:
26650
diff
changeset
|
219 |
27457
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
220 # Execute "lines" in a :def function, translated as in |
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
221 # CheckLegacyAndVim9Success() |
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
222 export def CheckTransDefSuccess(lines: list<string>) |
26654
e01607ab0fab
patch 8.2.3856: Vim9: not enough tests
Bram Moolenaar <Bram@vim.org>
parents:
26650
diff
changeset
|
223 CheckDefSuccess(Vim9Trans(lines)) |
25593
c6277019b8c1
patch 8.2.3333: Vim9: not enough tests run with Vim9
Bram Moolenaar <Bram@vim.org>
parents:
25016
diff
changeset
|
224 enddef |
c6277019b8c1
patch 8.2.3333: Vim9: not enough tests run with Vim9
Bram Moolenaar <Bram@vim.org>
parents:
25016
diff
changeset
|
225 |
27457
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
226 # Execute "lines" in a Vim9 script, translated as in |
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
227 # CheckLegacyAndVim9Success() |
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
228 export def CheckTransVim9Success(lines: list<string>) |
26654
e01607ab0fab
patch 8.2.3856: Vim9: not enough tests
Bram Moolenaar <Bram@vim.org>
parents:
26650
diff
changeset
|
229 CheckScriptSuccess(['vim9script'] + Vim9Trans(lines)) |
25593
c6277019b8c1
patch 8.2.3333: Vim9: not enough tests run with Vim9
Bram Moolenaar <Bram@vim.org>
parents:
25016
diff
changeset
|
230 enddef |
c6277019b8c1
patch 8.2.3333: Vim9: not enough tests run with Vim9
Bram Moolenaar <Bram@vim.org>
parents:
25016
diff
changeset
|
231 |
27457
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
232 # Execute "lines" in a legacy function, :def function and Vim9 script. |
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
233 # Use 'VAR' for a declaration. |
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
234 # Use 'LET' for an assignment |
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
235 # Use ' #"' for a comment |
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
236 # Use LSTART arg LMIDDLE expr LEND for lambda |
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
237 # Use 'TRUE' for 1 in legacy, true in Vim9 |
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
238 # Use 'FALSE' for 0 in legacy, false in Vim9 |
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
239 export def CheckLegacyAndVim9Success(lines: list<string>) |
25593
c6277019b8c1
patch 8.2.3333: Vim9: not enough tests run with Vim9
Bram Moolenaar <Bram@vim.org>
parents:
25016
diff
changeset
|
240 CheckTransLegacySuccess(lines) |
c6277019b8c1
patch 8.2.3333: Vim9: not enough tests run with Vim9
Bram Moolenaar <Bram@vim.org>
parents:
25016
diff
changeset
|
241 CheckTransDefSuccess(lines) |
c6277019b8c1
patch 8.2.3333: Vim9: not enough tests run with Vim9
Bram Moolenaar <Bram@vim.org>
parents:
25016
diff
changeset
|
242 CheckTransVim9Success(lines) |
24434
602e528a8e43
patch 8.2.2757: Vim9: blob tests for legacy and Vim9 script are separate
Bram Moolenaar <Bram@vim.org>
parents:
24339
diff
changeset
|
243 enddef |
24450
3e1886f1e875
patch 8.2.2765: Vim9: not all blob operations work
Bram Moolenaar <Bram@vim.org>
parents:
24434
diff
changeset
|
244 |
27457
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
245 # Execute "lines" in a legacy function, :def function and Vim9 script. |
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
246 # Use 'VAR' for a declaration. |
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
247 # Use 'LET' for an assignment |
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
248 # Use ' #"' for a comment |
4c16acb2525f
patch 8.2.4257: Vim9: finding global function without g: prefix inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
26686
diff
changeset
|
249 export def CheckLegacyAndVim9Failure(lines: list<string>, error: any) |
24450
3e1886f1e875
patch 8.2.2765: Vim9: not all blob operations work
Bram Moolenaar <Bram@vim.org>
parents:
24434
diff
changeset
|
250 var legacyError: string |
3e1886f1e875
patch 8.2.2765: Vim9: not all blob operations work
Bram Moolenaar <Bram@vim.org>
parents:
24434
diff
changeset
|
251 var defError: string |
3e1886f1e875
patch 8.2.2765: Vim9: not all blob operations work
Bram Moolenaar <Bram@vim.org>
parents:
24434
diff
changeset
|
252 var scriptError: string |
3e1886f1e875
patch 8.2.2765: Vim9: not all blob operations work
Bram Moolenaar <Bram@vim.org>
parents:
24434
diff
changeset
|
253 |
3e1886f1e875
patch 8.2.2765: Vim9: not all blob operations work
Bram Moolenaar <Bram@vim.org>
parents:
24434
diff
changeset
|
254 if type(error) == type('string') |
3e1886f1e875
patch 8.2.2765: Vim9: not all blob operations work
Bram Moolenaar <Bram@vim.org>
parents:
24434
diff
changeset
|
255 legacyError = error |
3e1886f1e875
patch 8.2.2765: Vim9: not all blob operations work
Bram Moolenaar <Bram@vim.org>
parents:
24434
diff
changeset
|
256 defError = error |
3e1886f1e875
patch 8.2.2765: Vim9: not all blob operations work
Bram Moolenaar <Bram@vim.org>
parents:
24434
diff
changeset
|
257 scriptError = error |
3e1886f1e875
patch 8.2.2765: Vim9: not all blob operations work
Bram Moolenaar <Bram@vim.org>
parents:
24434
diff
changeset
|
258 else |
3e1886f1e875
patch 8.2.2765: Vim9: not all blob operations work
Bram Moolenaar <Bram@vim.org>
parents:
24434
diff
changeset
|
259 legacyError = error[0] |
3e1886f1e875
patch 8.2.2765: Vim9: not all blob operations work
Bram Moolenaar <Bram@vim.org>
parents:
24434
diff
changeset
|
260 defError = error[1] |
3e1886f1e875
patch 8.2.2765: Vim9: not all blob operations work
Bram Moolenaar <Bram@vim.org>
parents:
24434
diff
changeset
|
261 scriptError = error[2] |
3e1886f1e875
patch 8.2.2765: Vim9: not all blob operations work
Bram Moolenaar <Bram@vim.org>
parents:
24434
diff
changeset
|
262 endif |
3e1886f1e875
patch 8.2.2765: Vim9: not all blob operations work
Bram Moolenaar <Bram@vim.org>
parents:
24434
diff
changeset
|
263 |
3e1886f1e875
patch 8.2.2765: Vim9: not all blob operations work
Bram Moolenaar <Bram@vim.org>
parents:
24434
diff
changeset
|
264 var legacylines = lines->mapnew((_, v) => |
31849
dbec60b8c253
patch 9.0.1257: code style is not check in test scripts
Bram Moolenaar <Bram@vim.org>
parents:
27669
diff
changeset
|
265 v->substitute('\<VAR\>', 'let', 'g') |
dbec60b8c253
patch 9.0.1257: code style is not check in test scripts
Bram Moolenaar <Bram@vim.org>
parents:
27669
diff
changeset
|
266 ->substitute('\<LET\>', 'let', 'g') |
dbec60b8c253
patch 9.0.1257: code style is not check in test scripts
Bram Moolenaar <Bram@vim.org>
parents:
27669
diff
changeset
|
267 ->substitute('#"', ' "', 'g')) |
24450
3e1886f1e875
patch 8.2.2765: Vim9: not all blob operations work
Bram Moolenaar <Bram@vim.org>
parents:
24434
diff
changeset
|
268 CheckLegacyFailure(legacylines, legacyError) |
3e1886f1e875
patch 8.2.2765: Vim9: not all blob operations work
Bram Moolenaar <Bram@vim.org>
parents:
24434
diff
changeset
|
269 |
3e1886f1e875
patch 8.2.2765: Vim9: not all blob operations work
Bram Moolenaar <Bram@vim.org>
parents:
24434
diff
changeset
|
270 var vim9lines = lines->mapnew((_, v) => |
31849
dbec60b8c253
patch 9.0.1257: code style is not check in test scripts
Bram Moolenaar <Bram@vim.org>
parents:
27669
diff
changeset
|
271 v->substitute('\<VAR\>', 'var', 'g') |
dbec60b8c253
patch 9.0.1257: code style is not check in test scripts
Bram Moolenaar <Bram@vim.org>
parents:
27669
diff
changeset
|
272 ->substitute('\<LET ', '', 'g')) |
24450
3e1886f1e875
patch 8.2.2765: Vim9: not all blob operations work
Bram Moolenaar <Bram@vim.org>
parents:
24434
diff
changeset
|
273 CheckDefExecFailure(vim9lines, defError) |
3e1886f1e875
patch 8.2.2765: Vim9: not all blob operations work
Bram Moolenaar <Bram@vim.org>
parents:
24434
diff
changeset
|
274 CheckScriptFailure(['vim9script'] + vim9lines, scriptError) |
3e1886f1e875
patch 8.2.2765: Vim9: not all blob operations work
Bram Moolenaar <Bram@vim.org>
parents:
24434
diff
changeset
|
275 enddef |
35026
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
276 |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
277 # :source a list of "lines" and check whether it fails with "error" |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
278 export def CheckSourceScriptFailure(lines: list<string>, error: string, lnum = -3) |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
279 var cwd = getcwd() |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
280 new |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
281 setline(1, lines) |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
282 var bnr = bufnr() |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
283 try |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
284 assert_fails('source', error, lines, lnum) |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
285 finally |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
286 chdir(cwd) |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
287 exe $':bw! {bnr}' |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
288 endtry |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
289 enddef |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
290 |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
291 # :source a list of "lines" and check whether it fails with the list of |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
292 # "errors" |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
293 export def CheckSourceScriptFailureList(lines: list<string>, errors: list<string>, lnum = -3) |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
294 var cwd = getcwd() |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
295 new |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
296 var bnr = bufnr() |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
297 setline(1, lines) |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
298 try |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
299 assert_fails('source', errors, lines, lnum) |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
300 finally |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
301 chdir(cwd) |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
302 exe $':bw! {bnr}' |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
303 endtry |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
304 enddef |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
305 |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
306 # :source a list of "lines" and check whether it succeeds |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
307 export def CheckSourceScriptSuccess(lines: list<string>) |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
308 var cwd = getcwd() |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
309 new |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
310 var bnr = bufnr() |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
311 setline(1, lines) |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
312 try |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
313 :source |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
314 finally |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
315 chdir(cwd) |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
316 exe $':bw! {bnr}' |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
317 endtry |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
318 enddef |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
319 |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
320 export def CheckSourceSuccess(lines: list<string>) |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
321 CheckSourceScriptSuccess(lines) |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
322 enddef |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
323 |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
324 export def CheckSourceFailure(lines: list<string>, error: string, lnum = -3) |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
325 CheckSourceScriptFailure(lines, error, lnum) |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
326 enddef |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
327 |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
328 export def CheckSourceFailureList(lines: list<string>, errors: list<string>, lnum = -3) |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
329 CheckSourceScriptFailureList(lines, errors, lnum) |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
330 enddef |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
331 |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
332 # :source a List of "lines" inside a ":def" function and check that no error |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
333 # occurs when called. |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
334 export func CheckSourceDefSuccess(lines) |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
335 let cwd = getcwd() |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
336 new |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
337 let bnr = bufnr() |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
338 call setline(1, ['def Func()'] + a:lines + ['enddef', 'defcompile']) |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
339 try |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
340 source |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
341 call Func() |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
342 finally |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
343 call chdir(cwd) |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
344 delfunc! Func |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
345 exe $'bw! {bnr}' |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
346 endtry |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
347 endfunc |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
348 |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
349 export def CheckSourceDefAndScriptSuccess(lines: list<string>) |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
350 CheckSourceDefSuccess(lines) |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
351 CheckSourceScriptSuccess(['vim9script'] + lines) |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
352 enddef |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
353 |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
354 # Check that "lines" inside a ":def" function has no error when compiled. |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
355 export func CheckSourceDefCompileSuccess(lines) |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
356 let cwd = getcwd() |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
357 new |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
358 let bnr = bufnr() |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
359 call setline(1, ['def Func()', '# comment'] + a:lines + ['#comment', 'enddef', 'defcompile']) |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
360 try |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
361 source |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
362 finally |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
363 call chdir(cwd) |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
364 delfunc! Func |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
365 exe $':bw! {bnr}' |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
366 endtry |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
367 endfunc |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
368 |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
369 # Check that "lines" inside ":def" results in an "error" message. |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
370 # If "lnum" is given check that the error is reported for this line. |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
371 # Add a line before and after to make it less likely that the line number is |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
372 # accidentally correct. |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
373 export func CheckSourceDefFailure(lines, error, lnum = -3) |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
374 let cwd = getcwd() |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
375 new |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
376 let bnr = bufnr() |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
377 call setline(1, ['def Func()', '# comment'] + a:lines + ['#comment', 'enddef', 'defcompile']) |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
378 try |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
379 call assert_fails('source', a:error, a:lines, a:lnum + 1) |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
380 finally |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
381 call chdir(cwd) |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
382 delfunc! Func |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
383 exe $':bw! {bnr}' |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
384 endtry |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
385 endfunc |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
386 |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
387 # Check that "lines" inside ":def" results in an "error" message when executed. |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
388 # If "lnum" is given check that the error is reported for this line. |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
389 # Add a line before and after to make it less likely that the line number is |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
390 # accidentally correct. |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
391 export func CheckSourceDefExecFailure(lines, error, lnum = -3) |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
392 let cwd = getcwd() |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
393 new |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
394 let bnr = bufnr() |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
395 call setline(1, ['def Func()', '# comment'] + a:lines + ['#comment', 'enddef']) |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
396 try |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
397 source |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
398 call assert_fails('call Func()', a:error, a:lines, a:lnum + 1) |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
399 finally |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
400 call chdir(cwd) |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
401 delfunc! Func |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
402 exe $':bw! {bnr}' |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
403 endtry |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
404 endfunc |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
405 |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
406 # Check that a command fails when used in a :def function and when used in |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
407 # Vim9 script. |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
408 # When "error" is a string, both with the same error. |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
409 # When "error" is a list, the :def function fails with "error[0]" , the script |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
410 # fails with "error[1]". |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
411 export def CheckSourceDefAndScriptFailure(lines: list<string>, error: any, lnum = -3) |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
412 var errorDef: string |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
413 var errorScript: string |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
414 if type(error) == v:t_string |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
415 errorDef = error |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
416 errorScript = error |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
417 elseif type(error) == v:t_list && len(error) == 2 |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
418 errorDef = error[0] |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
419 errorScript = error[1] |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
420 else |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
421 echoerr 'error argument must be a string or a list with two items' |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
422 return |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
423 endif |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
424 CheckSourceDefFailure(lines, errorDef, lnum) |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
425 CheckSourceScriptFailure(['vim9script'] + lines, errorScript, lnum + 1) |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
426 enddef |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
427 |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
428 # Check that a command fails when executed in a :def function and when used in |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
429 # Vim9 script. |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
430 # When "error" is a string, both with the same error. |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
431 # When "error" is a list, the :def function fails with "error[0]" , the script |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
432 # fails with "error[1]". |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
433 export def CheckSourceDefExecAndScriptFailure(lines: list<string>, error: any, lnum = -3) |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
434 var errorDef: string |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
435 var errorScript: string |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
436 if type(error) == v:t_string |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
437 errorDef = error |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
438 errorScript = error |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
439 elseif type(error) == v:t_list && len(error) == 2 |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
440 errorDef = error[0] |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
441 errorScript = error[1] |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
442 else |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
443 echoerr 'error argument must be a string or a list with two items' |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
444 return |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
445 endif |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
446 CheckSourceDefExecFailure(lines, errorDef, lnum) |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
447 CheckSourceScriptFailure(['vim9script'] + lines, errorScript, lnum + 1) |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
448 enddef |
96131d0faead
patch 9.1.0364: tests: test_vim9_builtin is a bit slow
Christian Brabandt <cb@256bit.org>
parents:
34864
diff
changeset
|
449 |