Bram Moolenaar | cfe435d | 2020-04-25 20:02:55 +0200 | [diff] [blame] | 1 | " Utility functions for testing vim9 script |
| 2 | |
Bram Moolenaar | 3e06a1e | 2020-08-10 21:57:54 +0200 | [diff] [blame] | 3 | " Check that "lines" inside ":def" has no error. |
| 4 | func CheckDefSuccess(lines) |
| 5 | call writefile(['def Func()'] + a:lines + ['enddef', 'defcompile'], 'Xdef') |
| 6 | so Xdef |
| 7 | call Func() |
| 8 | call delete('Xdef') |
| 9 | endfunc |
| 10 | |
Bram Moolenaar | cfe435d | 2020-04-25 20:02:55 +0200 | [diff] [blame] | 11 | " Check that "lines" inside ":def" results in an "error" message. |
Bram Moolenaar | 1d63454 | 2020-08-18 13:41:50 +0200 | [diff] [blame] | 12 | " If "lnum" is given check that the error is reported for this line. |
Bram Moolenaar | 3affe7a | 2020-08-18 20:34:13 +0200 | [diff] [blame] | 13 | " Add a line before and after to make it less likely that the line number is |
| 14 | " accidentally correct. |
| 15 | func CheckDefFailure(lines, error, lnum = -3) |
| 16 | call writefile(['def Func()', '# comment'] + a:lines + ['#comment', 'enddef', 'defcompile'], 'Xdef') |
| 17 | call assert_fails('so Xdef', a:error, a:lines, a:lnum + 1) |
Bram Moolenaar | cfe435d | 2020-04-25 20:02:55 +0200 | [diff] [blame] | 18 | call delete('Xdef') |
| 19 | endfunc |
| 20 | |
Bram Moolenaar | 015f426 | 2020-05-05 21:25:22 +0200 | [diff] [blame] | 21 | " Check that "lines" inside ":def" results in an "error" message when executed. |
Bram Moolenaar | 1d63454 | 2020-08-18 13:41:50 +0200 | [diff] [blame] | 22 | " If "lnum" is given check that the error is reported for this line. |
Bram Moolenaar | 3affe7a | 2020-08-18 20:34:13 +0200 | [diff] [blame] | 23 | " Add a line before and after to make it less likely that the line number is |
| 24 | " accidentally correct. |
| 25 | func CheckDefExecFailure(lines, error, lnum = -3) |
| 26 | call writefile(['def Func()', '# comment'] + a:lines + ['#comment', 'enddef'], 'Xdef') |
Bram Moolenaar | 015f426 | 2020-05-05 21:25:22 +0200 | [diff] [blame] | 27 | so Xdef |
Bram Moolenaar | 3affe7a | 2020-08-18 20:34:13 +0200 | [diff] [blame] | 28 | call assert_fails('call Func()', a:error, a:lines, a:lnum + 1) |
Bram Moolenaar | 015f426 | 2020-05-05 21:25:22 +0200 | [diff] [blame] | 29 | call delete('Xdef') |
| 30 | endfunc |
| 31 | |
Bram Moolenaar | 3affe7a | 2020-08-18 20:34:13 +0200 | [diff] [blame] | 32 | def CheckScriptFailure(lines: list<string>, error: string, lnum = -3) |
Bram Moolenaar | cfe435d | 2020-04-25 20:02:55 +0200 | [diff] [blame] | 33 | writefile(lines, 'Xdef') |
Bram Moolenaar | 3affe7a | 2020-08-18 20:34:13 +0200 | [diff] [blame] | 34 | assert_fails('so Xdef', error, lines, lnum) |
Bram Moolenaar | cfe435d | 2020-04-25 20:02:55 +0200 | [diff] [blame] | 35 | delete('Xdef') |
| 36 | enddef |
| 37 | |
| 38 | def CheckScriptSuccess(lines: list<string>) |
| 39 | writefile(lines, 'Xdef') |
| 40 | so Xdef |
| 41 | delete('Xdef') |
| 42 | enddef |
Bram Moolenaar | 7cb6fc2 | 2020-08-21 22:36:47 +0200 | [diff] [blame] | 43 | |
| 44 | " Check that a command fails both when used in a :def function and when used |
| 45 | " in Vim9 script. |
| 46 | def CheckScriptAndDefFailure(lines: list<string>, error: string, lnum = -3) |
| 47 | CheckDefFailure(lines, error, lnum) |
| 48 | CheckScriptFailure(['vim9script'] + lines, error, lnum + 1) |
| 49 | enddef |