Mercurial > vim
comparison src/testdir/test_vim9_builtin.vim @ 25850:6f615b2fdc66 v8.2.3459
patch 8.2.3459: Vim9: need more tests for empty string arguments
Commit: https://github.com/vim/vim/commit/51491adfa86fd66a857cd7ec50d0b57dbdf3da59
Author: Yegappan Lakshmanan <yegappan@yahoo.com>
Date: Thu Sep 30 19:00:00 2021 +0100
patch 8.2.3459: Vim9: need more tests for empty string arguments
Problem: Vim9: need more tests for empty string arguments.
Solution: Add more tests. Also use empty argument with menu_info() to get
the top-level menu names. (Yegappan Lakshmanan, closes #8925)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 30 Sep 2021 20:15:04 +0200 |
parents | 29bbe650f2a1 |
children | c544eacaf066 |
comparison
equal
deleted
inserted
replaced
25849:ecbd01ddf78d | 25850:6f615b2fdc66 |
---|---|
199 assert_equal(['zero'], getbufline(bnum, 1)) | 199 assert_equal(['zero'], getbufline(bnum, 1)) |
200 CheckDefAndScriptFailure2(['appendbufline([1], 1, "x")'], 'E1013: Argument 1: type mismatch, expected string but got list<number>', 'E1220: String or Number required for argument 1') | 200 CheckDefAndScriptFailure2(['appendbufline([1], 1, "x")'], 'E1013: Argument 1: type mismatch, expected string but got list<number>', 'E1220: String or Number required for argument 1') |
201 CheckDefAndScriptFailure2(['appendbufline(1, [1], "x")'], 'E1013: Argument 2: type mismatch, expected string but got list<number>', 'E1220: String or Number required for argument 2') | 201 CheckDefAndScriptFailure2(['appendbufline(1, [1], "x")'], 'E1013: Argument 2: type mismatch, expected string but got list<number>', 'E1220: String or Number required for argument 2') |
202 CheckDefAndScriptFailure2(['appendbufline(1, 1, {"a": 10})'], 'E1013: Argument 3: type mismatch, expected string but got dict<number>', 'E1224: String, Number or List required for argument 3') | 202 CheckDefAndScriptFailure2(['appendbufline(1, 1, {"a": 10})'], 'E1013: Argument 3: type mismatch, expected string but got dict<number>', 'E1224: String, Number or List required for argument 3') |
203 bnum->bufwinid()->win_gotoid() | 203 bnum->bufwinid()->win_gotoid() |
204 appendbufline('', 0, 'numbers') | |
205 getline(1)->assert_equal('numbers') | |
204 bwipe! | 206 bwipe! |
205 enddef | 207 enddef |
206 | 208 |
207 def Test_argc() | 209 def Test_argc() |
208 CheckDefAndScriptFailure2(['argc("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') | 210 CheckDefAndScriptFailure2(['argc("x")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') |
324 buflisted('')->assert_false() | 326 buflisted('')->assert_false() |
325 enddef | 327 enddef |
326 | 328 |
327 def Test_bufload() | 329 def Test_bufload() |
328 assert_fails('bufload([])', 'E1220:') | 330 assert_fails('bufload([])', 'E1220:') |
331 bufload('')->assert_equal(0) | |
329 enddef | 332 enddef |
330 | 333 |
331 def Test_bufloaded() | 334 def Test_bufloaded() |
332 assert_fails('bufloaded(true)', 'E1220:') | 335 assert_fails('bufloaded(true)', 'E1220:') |
333 assert_fails('bufloaded([])', 'E1220:') | 336 assert_fails('bufloaded([])', 'E1220:') |
450 if !has('channel') | 453 if !has('channel') |
451 CheckFeature channel | 454 CheckFeature channel |
452 else | 455 else |
453 CheckDefAndScriptFailure2(['ch_getbufnr(1, "a")'], 'E1013: Argument 1: type mismatch, expected channel but got number', 'E1217: Channel or Job required for argument 1') | 456 CheckDefAndScriptFailure2(['ch_getbufnr(1, "a")'], 'E1013: Argument 1: type mismatch, expected channel but got number', 'E1217: Channel or Job required for argument 1') |
454 CheckDefAndScriptFailure2(['ch_getbufnr(test_null_channel(), 1)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') | 457 CheckDefAndScriptFailure2(['ch_getbufnr(test_null_channel(), 1)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') |
458 # test empty string argument for ch_getbufnr() | |
459 var job: job = job_start(&shell) | |
460 job->ch_getbufnr('')->assert_equal(-1) | |
461 job_stop(job) | |
455 endif | 462 endif |
456 enddef | 463 enddef |
457 | 464 |
458 def Test_ch_getjob() | 465 def Test_ch_getjob() |
459 if !has('channel') | 466 if !has('channel') |
486 if !has('channel') | 493 if !has('channel') |
487 CheckFeature channel | 494 CheckFeature channel |
488 else | 495 else |
489 assert_fails('ch_logfile(true)', 'E1174:') | 496 assert_fails('ch_logfile(true)', 'E1174:') |
490 assert_fails('ch_logfile("foo", true)', 'E1174:') | 497 assert_fails('ch_logfile("foo", true)', 'E1174:') |
498 ch_logfile('', '')->assert_equal(0) | |
491 | 499 |
492 CheckDefAndScriptFailure2(['ch_logfile(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') | 500 CheckDefAndScriptFailure2(['ch_logfile(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') |
493 CheckDefAndScriptFailure2(['ch_logfile("a", true)'], 'E1013: Argument 2: type mismatch, expected string but got bool', 'E1174: String required for argument 2') | 501 CheckDefAndScriptFailure2(['ch_logfile("a", true)'], 'E1013: Argument 2: type mismatch, expected string but got bool', 'E1174: String required for argument 2') |
494 endif | 502 endif |
495 enddef | 503 enddef |
747 | 755 |
748 def Test_deletebufline() | 756 def Test_deletebufline() |
749 CheckDefAndScriptFailure2(['deletebufline([], 2)'], 'E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1220: String or Number required for argument 1') | 757 CheckDefAndScriptFailure2(['deletebufline([], 2)'], 'E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1220: String or Number required for argument 1') |
750 CheckDefAndScriptFailure2(['deletebufline("a", [])'], 'E1013: Argument 2: type mismatch, expected string but got list<unknown>', 'E1220: String or Number required for argument 2') | 758 CheckDefAndScriptFailure2(['deletebufline("a", [])'], 'E1013: Argument 2: type mismatch, expected string but got list<unknown>', 'E1220: String or Number required for argument 2') |
751 CheckDefAndScriptFailure2(['deletebufline("a", 2, 0z10)'], 'E1013: Argument 3: type mismatch, expected string but got blob', 'E1220: String or Number required for argument 3') | 759 CheckDefAndScriptFailure2(['deletebufline("a", 2, 0z10)'], 'E1013: Argument 3: type mismatch, expected string but got blob', 'E1220: String or Number required for argument 3') |
760 new | |
761 setline(1, ['one', 'two']) | |
762 deletebufline('', 1) | |
763 getline(1, '$')->assert_equal(['two']) | |
764 bwipe! | |
752 enddef | 765 enddef |
753 | 766 |
754 def Test_diff_filler() | 767 def Test_diff_filler() |
755 CheckDefAndScriptFailure2(['diff_filler([])'], 'E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1220: String or Number required for argument 1') | 768 CheckDefAndScriptFailure2(['diff_filler([])'], 'E1013: Argument 1: type mismatch, expected string but got list<unknown>', 'E1220: String or Number required for argument 1') |
756 CheckDefAndScriptFailure2(['diff_filler(true)'], 'E1013: Argument 1: type mismatch, expected string but got bool', 'E1220: String or Number required for argument 1') | 769 CheckDefAndScriptFailure2(['diff_filler(true)'], 'E1013: Argument 1: type mismatch, expected string but got bool', 'E1220: String or Number required for argument 1') |
2703 CheckEnv DISPLAY | 2716 CheckEnv DISPLAY |
2704 CheckDefAndScriptFailure2(['remote_expr(1, "b")'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') | 2717 CheckDefAndScriptFailure2(['remote_expr(1, "b")'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') |
2705 CheckDefAndScriptFailure2(['remote_expr("a", 2)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') | 2718 CheckDefAndScriptFailure2(['remote_expr("a", 2)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') |
2706 CheckDefAndScriptFailure2(['remote_expr("a", "b", 3)'], 'E1013: Argument 3: type mismatch, expected string but got number', 'E1174: String required for argument 3') | 2719 CheckDefAndScriptFailure2(['remote_expr("a", "b", 3)'], 'E1013: Argument 3: type mismatch, expected string but got number', 'E1174: String required for argument 3') |
2707 CheckDefAndScriptFailure2(['remote_expr("a", "b", "c", "d")'], 'E1013: Argument 4: type mismatch, expected number but got string', 'E1210: Number required for argument 4') | 2720 CheckDefAndScriptFailure2(['remote_expr("a", "b", "c", "d")'], 'E1013: Argument 4: type mismatch, expected number but got string', 'E1210: Number required for argument 4') |
2721 CheckDefExecAndScriptFailure(['remote_expr("", "")'], 'E241: Unable to send to ') | |
2708 enddef | 2722 enddef |
2709 | 2723 |
2710 def Test_remote_foreground() | 2724 def Test_remote_foreground() |
2711 CheckFeature clientserver | 2725 CheckFeature clientserver |
2712 # remote_foreground() doesn't fail on MS-Windows | 2726 # remote_foreground() doesn't fail on MS-Windows |
2713 CheckNotMSWindows | 2727 CheckNotMSWindows |
2714 CheckEnv DISPLAY | 2728 CheckEnv DISPLAY |
2715 | 2729 |
2716 CheckDefAndScriptFailure2(['remote_foreground(10)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') | 2730 CheckDefAndScriptFailure2(['remote_foreground(10)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') |
2717 assert_fails('remote_foreground("NonExistingServer")', 'E241:') | 2731 assert_fails('remote_foreground("NonExistingServer")', 'E241:') |
2732 assert_fails('remote_foreground("")', 'E241:') | |
2718 enddef | 2733 enddef |
2719 | 2734 |
2720 def Test_remote_peek() | 2735 def Test_remote_peek() |
2721 CheckFeature clientserver | 2736 CheckFeature clientserver |
2722 CheckEnv DISPLAY | 2737 CheckEnv DISPLAY |
2737 CheckFeature clientserver | 2752 CheckFeature clientserver |
2738 CheckEnv DISPLAY | 2753 CheckEnv DISPLAY |
2739 CheckDefAndScriptFailure2(['remote_send(1, "b")'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') | 2754 CheckDefAndScriptFailure2(['remote_send(1, "b")'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') |
2740 CheckDefAndScriptFailure2(['remote_send("a", 2)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') | 2755 CheckDefAndScriptFailure2(['remote_send("a", 2)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') |
2741 CheckDefAndScriptFailure2(['remote_send("a", "b", 3)'], 'E1013: Argument 3: type mismatch, expected string but got number', 'E1174: String required for argument 3') | 2756 CheckDefAndScriptFailure2(['remote_send("a", "b", 3)'], 'E1013: Argument 3: type mismatch, expected string but got number', 'E1174: String required for argument 3') |
2757 assert_fails('remote_send("", "")', 'E241:') | |
2742 enddef | 2758 enddef |
2743 | 2759 |
2744 def Test_remote_startserver() | 2760 def Test_remote_startserver() |
2745 CheckFeature clientserver | 2761 CheckFeature clientserver |
2746 CheckEnv DISPLAY | 2762 CheckEnv DISPLAY |
2983 CheckFeature clientserver | 2999 CheckFeature clientserver |
2984 CheckEnv DISPLAY | 3000 CheckEnv DISPLAY |
2985 CheckDefAndScriptFailure2(['server2client(10, "b")'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') | 3001 CheckDefAndScriptFailure2(['server2client(10, "b")'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') |
2986 CheckDefAndScriptFailure2(['server2client("a", 10)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') | 3002 CheckDefAndScriptFailure2(['server2client("a", 10)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') |
2987 CheckDefExecAndScriptFailure(['server2client("", "a")'], 'E573: Invalid server id used') | 3003 CheckDefExecAndScriptFailure(['server2client("", "a")'], 'E573: Invalid server id used') |
3004 CheckDefExecAndScriptFailure(['server2client("", "")'], 'E573: Invalid server id used') | |
2988 enddef | 3005 enddef |
2989 | 3006 |
2990 def Test_shellescape() | 3007 def Test_shellescape() |
2991 CheckDefAndScriptFailure2(['shellescape(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') | 3008 CheckDefAndScriptFailure2(['shellescape(1)'], 'E1013: Argument 1: type mismatch, expected string but got number', 'E1174: String required for argument 1') |
2992 CheckDefAndScriptFailure2(['shellescape("a", 2)'], 'E1013: Argument 2: type mismatch, expected bool but got number', 'E1212: Bool required for argument 2') | 3009 CheckDefAndScriptFailure2(['shellescape("a", 2)'], 'E1013: Argument 2: type mismatch, expected bool but got number', 'E1212: Bool required for argument 2') |
3085 assert_equal(['1', '2', '3', 'one', '10', 'two', '11'], getbufline(bnum, 1, '$')) | 3102 assert_equal(['1', '2', '3', 'one', '10', 'two', '11'], getbufline(bnum, 1, '$')) |
3086 CheckDefAndScriptFailure2(['setbufline([1], 1, "x")'], 'E1013: Argument 1: type mismatch, expected string but got list<number>', 'E1220: String or Number required for argument 1') | 3103 CheckDefAndScriptFailure2(['setbufline([1], 1, "x")'], 'E1013: Argument 1: type mismatch, expected string but got list<number>', 'E1220: String or Number required for argument 1') |
3087 CheckDefAndScriptFailure2(['setbufline(1, [1], "x")'], 'E1013: Argument 2: type mismatch, expected string but got list<number>', 'E1220: String or Number required for argument 2') | 3104 CheckDefAndScriptFailure2(['setbufline(1, [1], "x")'], 'E1013: Argument 2: type mismatch, expected string but got list<number>', 'E1220: String or Number required for argument 2') |
3088 CheckDefAndScriptFailure2(['setbufline(1, 1, {"a": 10})'], 'E1013: Argument 3: type mismatch, expected string but got dict<number>', 'E1224: String, Number or List required for argument 3') | 3105 CheckDefAndScriptFailure2(['setbufline(1, 1, {"a": 10})'], 'E1013: Argument 3: type mismatch, expected string but got dict<number>', 'E1224: String, Number or List required for argument 3') |
3089 bnum->bufwinid()->win_gotoid() | 3106 bnum->bufwinid()->win_gotoid() |
3107 setbufline('', 1, 'nombres') | |
3108 getline(1)->assert_equal('nombres') | |
3090 bw! | 3109 bw! |
3091 enddef | 3110 enddef |
3092 | 3111 |
3093 def Test_setcellwidths() | 3112 def Test_setcellwidths() |
3094 CheckDefAndScriptFailure2(['setcellwidths(1)'], 'E1013: Argument 1: type mismatch, expected list<any> but got number', 'E1211: List required for argument 1') | 3113 CheckDefAndScriptFailure2(['setcellwidths(1)'], 'E1013: Argument 1: type mismatch, expected list<any> but got number', 'E1211: List required for argument 1') |
3242 | 3261 |
3243 def Test_sign_getplaced() | 3262 def Test_sign_getplaced() |
3244 CheckDefAndScriptFailure2(['sign_getplaced(["x"])'], 'E1013: Argument 1: type mismatch, expected string but got list<string>', 'E1220: String or Number required for argument 1') | 3263 CheckDefAndScriptFailure2(['sign_getplaced(["x"])'], 'E1013: Argument 1: type mismatch, expected string but got list<string>', 'E1220: String or Number required for argument 1') |
3245 CheckDefAndScriptFailure2(['sign_getplaced(1, ["a"])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<string>', 'E1206: Dictionary required for argument 2') | 3264 CheckDefAndScriptFailure2(['sign_getplaced(1, ["a"])'], 'E1013: Argument 2: type mismatch, expected dict<any> but got list<string>', 'E1206: Dictionary required for argument 2') |
3246 CheckDefAndScriptFailure2(['sign_getplaced("a", 1.1)'], 'E1013: Argument 2: type mismatch, expected dict<any> but got float', 'E1206: Dictionary required for argument 2') | 3265 CheckDefAndScriptFailure2(['sign_getplaced("a", 1.1)'], 'E1013: Argument 2: type mismatch, expected dict<any> but got float', 'E1206: Dictionary required for argument 2') |
3266 CheckDefExecAndScriptFailure(['sign_getplaced(bufnr(), {lnum: ""})'], 'E1030: Using a String as a Number:') | |
3267 sign_getplaced('')->assert_equal([{signs: [], bufnr: bufnr()}]) | |
3247 enddef | 3268 enddef |
3248 | 3269 |
3249 def Test_sign_jump() | 3270 def Test_sign_jump() |
3250 CheckDefAndScriptFailure2(['sign_jump("a", "b", "c")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') | 3271 CheckDefAndScriptFailure2(['sign_jump("a", "b", "c")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') |
3251 CheckDefAndScriptFailure2(['sign_jump(1, 2, 3)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') | 3272 CheckDefAndScriptFailure2(['sign_jump(1, 2, 3)'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') |
3256 CheckDefAndScriptFailure2(['sign_place("a", "b", "c", "d")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') | 3277 CheckDefAndScriptFailure2(['sign_place("a", "b", "c", "d")'], 'E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1') |
3257 CheckDefAndScriptFailure2(['sign_place(1, 2, "c", "d")'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') | 3278 CheckDefAndScriptFailure2(['sign_place(1, 2, "c", "d")'], 'E1013: Argument 2: type mismatch, expected string but got number', 'E1174: String required for argument 2') |
3258 CheckDefAndScriptFailure2(['sign_place(1, "b", 3, "d")'], 'E1013: Argument 3: type mismatch, expected string but got number', 'E1174: String required for argument 3') | 3279 CheckDefAndScriptFailure2(['sign_place(1, "b", 3, "d")'], 'E1013: Argument 3: type mismatch, expected string but got number', 'E1174: String required for argument 3') |
3259 CheckDefAndScriptFailure2(['sign_place(1, "b", "c", 1.1)'], 'E1013: Argument 4: type mismatch, expected string but got float', 'E1220: String or Number required for argument 4') | 3280 CheckDefAndScriptFailure2(['sign_place(1, "b", "c", 1.1)'], 'E1013: Argument 4: type mismatch, expected string but got float', 'E1220: String or Number required for argument 4') |
3260 CheckDefAndScriptFailure2(['sign_place(1, "b", "c", "d", [1])'], 'E1013: Argument 5: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 5') | 3281 CheckDefAndScriptFailure2(['sign_place(1, "b", "c", "d", [1])'], 'E1013: Argument 5: type mismatch, expected dict<any> but got list<number>', 'E1206: Dictionary required for argument 5') |
3282 CheckDefExecAndScriptFailure(['sign_place(0, "", "MySign", bufnr(), {lnum: ""})'], 'E1209: Invalid value for a line number: ""') | |
3261 assert_fails("sign_place(0, '', '', '')", 'E155:') | 3283 assert_fails("sign_place(0, '', '', '')", 'E155:') |
3262 enddef | 3284 enddef |
3263 | 3285 |
3264 def Test_sign_placelist() | 3286 def Test_sign_placelist() |
3265 CheckDefAndScriptFailure2(['sign_placelist("x")'], 'E1013: Argument 1: type mismatch, expected list<any> but got string', 'E1211: List required for argument 1') | 3287 CheckDefAndScriptFailure2(['sign_placelist("x")'], 'E1013: Argument 1: type mismatch, expected list<any> but got string', 'E1211: List required for argument 1') |
3266 CheckDefAndScriptFailure2(['sign_placelist({"a": 10})'], 'E1013: Argument 1: type mismatch, expected list<any> but got dict<number>', 'E1211: List required for argument 1') | 3288 CheckDefAndScriptFailure2(['sign_placelist({"a": 10})'], 'E1013: Argument 1: type mismatch, expected list<any> but got dict<number>', 'E1211: List required for argument 1') |
3289 CheckDefExecAndScriptFailure(['sign_placelist([{"name": "MySign", "buffer": bufnr(), "lnum": ""}])'], 'E1209: Invalid value for a line number: ""') | |
3267 enddef | 3290 enddef |
3268 | 3291 |
3269 def Test_sign_undefine() | 3292 def Test_sign_undefine() |
3270 CheckDefAndScriptFailure2(['sign_undefine({})'], 'E1013: Argument 1: type mismatch, expected string but got dict<unknown>', 'E1222: String or List required for argument 1') | 3293 CheckDefAndScriptFailure2(['sign_undefine({})'], 'E1013: Argument 1: type mismatch, expected string but got dict<unknown>', 'E1222: String or List required for argument 1') |
3271 CheckDefAndScriptFailure2(['sign_undefine([1])'], 'E1013: Argument 1: type mismatch, expected list<string> but got list<number>', 'E155: Unknown sign:') | 3294 CheckDefAndScriptFailure2(['sign_undefine([1])'], 'E1013: Argument 1: type mismatch, expected list<string> but got list<number>', 'E155: Unknown sign:') |