diff options
| author | Mehmet Samet Duman <yongdohyun@projecttick.org> | 2026-04-03 22:21:25 +0300 |
|---|---|---|
| committer | Mehmet Samet Duman <yongdohyun@projecttick.org> | 2026-04-04 00:23:03 +0300 |
| commit | 2eae5db069dc171f74cd863487655f6a88e5384d (patch) | |
| tree | 2d9d05e09978a2a44acbfbb8d651f240df3ca052 /uvim/src/testdir/test_source.vim | |
| parent | 473d922faed49241a5d29d9e37dc4819cd512006 (diff) | |
| download | Project-Tick-2eae5db069dc171f74cd863487655f6a88e5384d.tar.gz Project-Tick-2eae5db069dc171f74cd863487655f6a88e5384d.zip | |
NOISSUE rebrand vim to MNV's not Vim
Signed-off-by: Mehmet Samet Duman <yongdohyun@projecttick.org>
Diffstat (limited to 'uvim/src/testdir/test_source.vim')
| -rw-r--r-- | uvim/src/testdir/test_source.vim | 674 |
1 files changed, 0 insertions, 674 deletions
diff --git a/uvim/src/testdir/test_source.vim b/uvim/src/testdir/test_source.vim deleted file mode 100644 index b7b0d11753..0000000000 --- a/uvim/src/testdir/test_source.vim +++ /dev/null @@ -1,674 +0,0 @@ -" Tests for the :source command. - -func Test_source_autocmd() - call writefile([ - \ 'let did_source = 1', - \ ], 'Xsourced', 'D') - au SourcePre *source* let did_source_pre = 1 - au SourcePost *source* let did_source_post = 1 - - source Xsourced - - call assert_equal(g:did_source, 1) - call assert_equal(g:did_source_pre, 1) - call assert_equal(g:did_source_post, 1) - - au! SourcePre - au! SourcePost - unlet g:did_source - unlet g:did_source_pre - unlet g:did_source_post -endfunc - -func Test_source_cmd() - au SourceCmd *source* let did_source = expand('<afile>') - au SourcePre *source* let did_source_pre = 2 - au SourcePost *source* let did_source_post = 2 - - source Xsourced - - call assert_equal(g:did_source, 'Xsourced') - call assert_false(exists('g:did_source_pre')) - call assert_equal(g:did_source_post, 2) - - au! SourceCmd - au! SourcePre - au! SourcePost -endfunc - -func Test_source_sandbox() - new - call writefile(["Ohello\<Esc>"], 'Xsourcehello', 'D') - source! Xsourcehello | echo - call assert_equal('hello', getline(1)) - call assert_fails('sandbox source! Xsourcehello', 'E48:') - bwipe! -endfunc - -" When deleting a file and immediately creating a new one the inode may be -" recycled. Vim should not recognize it as the same script. -func Test_different_script() - call writefile(['let s:var = "asdf"'], 'XoneScript', 'D') - source XoneScript - call writefile(['let g:var = s:var'], 'XtwoScript', 'D') - call assert_fails('source XtwoScript', 'E121:') -endfunc - -" When sourcing a Vim script, shebang should be ignored. -func Test_source_ignore_shebang() - call writefile(['#!./xyzabc', 'let g:val=369'], 'Xsisfile.vim', 'D') - source Xsisfile.vim - call assert_equal(g:val, 369) -endfunc - -" Test for expanding <sfile> in an autocmd and for <slnum> and <sflnum> -func Test_source_autocmd_sfile() - let code =<< trim [CODE] - let g:SfileName = '' - augroup sfiletest - au! - autocmd User UserAutoCmd let g:Sfile = '<sfile>:t' - augroup END - doautocmd User UserAutoCmd - let g:Slnum = expand('<slnum>') - let g:Sflnum = expand('<sflnum>') - augroup! sfiletest - [CODE] - call writefile(code, 'Xscript.vim', 'D') - source Xscript.vim - call assert_equal('Xscript.vim', g:Sfile) - call assert_equal('7', g:Slnum) - call assert_equal('8', g:Sflnum) -endfunc - -func Test_source_error() - call assert_fails('scriptencoding utf-8', 'E167:') - call assert_fails('finish', 'E168:') - call assert_fails('scriptversion 2', 'E984:') - call assert_fails('source!', 'E471:') - new - call setline(1, ['', '', '', '']) - call assert_fails('1,3source Xscript.vim', 'E481:') - call assert_fails('1,3source! Xscript.vim', 'E481:') - bw! -endfunc - -" Test for sourcing a script recursively -func Test_nested_script() - CheckRunVimInTerminal - call writefile([':source! Xscript.vim', ''], 'Xscript.vim', 'D') - let buf = RunVimInTerminal('', {'rows': 6}) - call term_wait(buf) - call term_sendkeys(buf, ":set noruler\n") - call term_sendkeys(buf, ":source! Xscript.vim\n") - call term_wait(buf) - call WaitForAssert({-> assert_match('E22: Scripts nested too deep\s*', term_getline(buf, 6))}) - call StopVimInTerminal(buf) -endfunc - -" Test for sourcing a script from the current buffer -func Test_source_buffer() - new - " Source a simple script - let lines =<< trim END - let a = "Test" - let b = 20 - - let c = [1.1] - END - call setline(1, lines) - source - call assert_equal(['Test', 20, [1.1]], [g:a, g:b, g:c]) - - " Source a range of lines in the current buffer - %d _ - let lines =<< trim END - let a = 10 - let a += 20 - let a += 30 - let a += 40 - END - call setline(1, lines) - .source - call assert_equal(10, g:a) - 3source - call assert_equal(40, g:a) - 2,3source - call assert_equal(90, g:a) - - " Make sure the script line number is correct when sourcing a range of - " lines. - %d _ - let lines =<< trim END - Line 1 - Line 2 - func Xtestfunc() - return expand("<sflnum>") - endfunc - Line 3 - Line 4 - END - call setline(1, lines) - 3,5source - call assert_equal('4', Xtestfunc()) - delfunc Xtestfunc - - " Source a script with line continuation lines - %d _ - let lines =<< trim END - let m = [ - \ 1, - \ 2, - \ ] - call add(m, 3) - END - call setline(1, lines) - source - call assert_equal([1, 2, 3], g:m) - " Source a script with line continuation lines and a comment - %d _ - let lines =<< trim END - let m = [ - "\ first entry - \ 'a', - "\ second entry - \ 'b', - \ ] - " third entry - call add(m, 'c') - END - call setline(1, lines) - source - call assert_equal(['a', 'b', 'c'], g:m) - " Source an incomplete line continuation line - %d _ - let lines =<< trim END - let k = [ - \ - END - call setline(1, lines) - call assert_fails('source', 'E697:') - " Source a function with a for loop - %d _ - let lines =<< trim END - let m = [] - " test function - func! Xtest() - for i in range(5, 7) - call add(g:m, i) - endfor - endfunc - call Xtest() - END - call setline(1, lines) - source - call assert_equal([5, 6, 7], g:m) - " Source an empty buffer - %d _ - source - - " test for script local functions and variables - let lines =<< trim END - let s:var1 = 10 - func s:F1() - let s:var1 += 1 - return s:var1 - endfunc - func s:F2() - endfunc - let g:ScriptID = expand("<SID>") - END - call setline(1, lines) - source - call assert_true(g:ScriptID != '') - call assert_true(exists('*' .. g:ScriptID .. 'F1')) - call assert_true(exists('*' .. g:ScriptID .. 'F2')) - call assert_equal(11, call(g:ScriptID .. 'F1', [])) - - " the same script ID should be used even if the buffer is sourced more than - " once - %d _ - let lines =<< trim END - let g:ScriptID = expand("<SID>") - let g:Count += 1 - END - call setline(1, lines) - let g:Count = 0 - source - call assert_true(g:ScriptID != '') - let scid = g:ScriptID - source - call assert_equal(scid, g:ScriptID) - call assert_equal(2, g:Count) - source - call assert_equal(scid, g:ScriptID) - call assert_equal(3, g:Count) - - " test for the script line number - %d _ - let lines =<< trim END - " comment - let g:Slnum1 = expand("<slnum>") - let i = 1 + - \ 2 + - "\ comment - \ 3 - let g:Slnum2 = expand("<slnum>") - END - call setline(1, lines) - source - call assert_equal('2', g:Slnum1) - call assert_equal('7', g:Slnum2) - - " test for retaining the same script number across source calls - let lines =<< trim END - let g:ScriptID1 = expand("<SID>") - let g:Slnum1 = expand("<slnum>") - let l =<< trim END - let g:Slnum2 = expand("<slnum>") - let g:ScriptID2 = expand("<SID>") - END - new - call setline(1, l) - source - bw! - let g:ScriptID3 = expand("<SID>") - let g:Slnum3 = expand("<slnum>") - END - call writefile(lines, 'Xscript', 'D') - source Xscript - call assert_true(g:ScriptID1 != g:ScriptID2) - call assert_equal(g:ScriptID1, g:ScriptID3) - call assert_equal('2', g:Slnum1) - call assert_equal('1', g:Slnum2) - call assert_equal('12', g:Slnum3) - - " test for sourcing a heredoc - %d _ - let lines =<< trim END - let a = 1 - let heredoc =<< trim DATA - red - green - blue - DATA - let b = 2 - END - call setline(1, lines) - source - call assert_equal(['red', ' green', 'blue'], g:heredoc) - - " test for a while and for statement - %d _ - let lines =<< trim END - let a = 0 - let b = 1 - while b <= 10 - let a += 10 - let b += 1 - endwhile - for i in range(5) - let a += 10 - endfor - END - call setline(1, lines) - source - call assert_equal(150, g:a) - - " test for sourcing the same buffer multiple times after changing a function - %d _ - let lines =<< trim END - func Xtestfunc() - return "one" - endfunc - END - call setline(1, lines) - source - call assert_equal("one", Xtestfunc()) - call setline(2, ' return "two"') - source - call assert_equal("two", Xtestfunc()) - call setline(2, ' return "three"') - source - call assert_equal("three", Xtestfunc()) - delfunc Xtestfunc - - " test for using try/catch - %d _ - let lines =<< trim END - let Trace = '1' - try - let a1 = b1 - catch - let Trace ..= '2' - finally - let Trace ..= '3' - endtry - END - call setline(1, lines) - source - call assert_equal("123", g:Trace) - - " test with the finish command - %d _ - let lines =<< trim END - let g:Color = 'blue' - finish - let g:Color = 'green' - END - call setline(1, lines) - source - call assert_equal('blue', g:Color) - - " Test for the SourcePre and SourcePost autocmds - augroup Xtest - au! - au SourcePre * let g:XsourcePre=4 - \ | let g:XsourcePreFile = expand("<afile>") - au SourcePost * let g:XsourcePost=6 - \ | let g:XsourcePostFile = expand("<afile>") - augroup END - %d _ - let lines =<< trim END - let a = 1 - END - call setline(1, lines) - source - call assert_equal(4, g:XsourcePre) - call assert_equal(6, g:XsourcePost) - call assert_equal(':source buffer=' .. bufnr(), g:XsourcePreFile) - call assert_equal(':source buffer=' .. bufnr(), g:XsourcePostFile) - augroup Xtest - au! - augroup END - augroup! Xtest - - %bw! -endfunc - -" Test for sourcing a Vim9 script from the current buffer -func Test_source_buffer_vim9() - new - - " test for sourcing a Vim9 script - %d _ - let lines =<< trim END - vim9script - - # check dict - var x: number = 10 - def g:Xtestfunc(): number - return x - enddef - END - call setline(1, lines) - source - call assert_equal(10, Xtestfunc()) - - " test for sourcing a Vim9 script with line continuation - %d _ - let lines =<< trim END - vim9script - - g:Str1 = "hello " - .. "world" - .. ", how are you?" - g:Colors = [ - 'red', - # comment - 'blue' - ] - g:Dict = { - a: 22, - # comment - b: 33 - } - - # calling a function with line continuation - def Sum(...values: list<number>): number - var sum: number = 0 - for v in values - sum += v - endfor - return sum - enddef - g:Total1 = Sum(10, - 20, - 30) - - var i: number = 0 - while i < 10 - # while loop - i += - 1 - endwhile - g:Count1 = i - - # for loop - g:Count2 = 0 - for j in range(10, 20) - g:Count2 += - i - endfor - - g:Total2 = 10 + - 20 - - 5 - - g:Result1 = g:Total2 > 1 - ? 'red' - : 'blue' - - g:Str2 = 'x' - ->repeat(10) - ->trim() - ->strpart(4) - - g:Result2 = g:Dict - .a - - augroup Test - au! - au BufNewFile Xsubfile g:readFile = 1 - | g:readExtra = 2 - augroup END - g:readFile = 0 - g:readExtra = 0 - new Xsubfile - bwipe! - augroup Test - au! - augroup END - END - call setline(1, lines) - source - call assert_equal("hello world, how are you?", g:Str1) - call assert_equal(['red', 'blue'], g:Colors) - call assert_equal(#{a: 22, b: 33}, g:Dict) - call assert_equal(60, g:Total1) - call assert_equal(10, g:Count1) - call assert_equal(110, g:Count2) - call assert_equal(25, g:Total2) - call assert_equal('red', g:Result1) - call assert_equal('xxxxxx', g:Str2) - call assert_equal(22, g:Result2) - call assert_equal(1, g:readFile) - call assert_equal(2, g:readExtra) - - " test for sourcing the same buffer multiple times after changing a function - %d _ - let lines =<< trim END - vim9script - def g:Xtestfunc(): string - return "one" - enddef - END - call setline(1, lines) - source - call assert_equal("one", Xtestfunc()) - call setline(3, ' return "two"') - source - call assert_equal("two", Xtestfunc()) - call setline(3, ' return "three"') - source - call assert_equal("three", Xtestfunc()) - delfunc Xtestfunc - - " Test for sourcing a range of lines. Make sure the script line number is - " correct. - %d _ - let lines =<< trim END - Line 1 - Line 2 - vim9script - def g:Xtestfunc(): string - return expand("<sflnum>") - enddef - Line 3 - Line 4 - END - call setline(1, lines) - 3,6source - call assert_equal('5', Xtestfunc()) - delfunc Xtestfunc - - " test for sourcing a heredoc - %d _ - let lines =<< trim END - vim9script - var a = 1 - g:heredoc =<< trim DATA - red - green - blue - DATA - var b = 2 - END - call setline(1, lines) - source - call assert_equal(['red', ' green', 'blue'], g:heredoc) - - " test for using the :vim9cmd modifier - %d _ - let lines =<< trim END - first line - g:Math = { - pi: 3.12, - e: 2.71828 - } - g:Editors = [ - 'vim', - # comment - 'nano' - ] - last line - END - call setline(1, lines) - vim9cmd :2,10source - call assert_equal(#{pi: 3.12, e: 2.71828}, g:Math) - call assert_equal(['vim', 'nano'], g:Editors) - - " '<,'> range before the cmd modifier works - unlet g:Math - unlet g:Editors - exe "normal 6GV4j:vim9cmd source\<CR>" - call assert_equal(['vim', 'nano'], g:Editors) - unlet g:Editors - - " test for using try/catch - %d _ - let lines =<< trim END - vim9script - g:Trace = '1' - try - a1 = b1 - catch - g:Trace ..= '2' - finally - g:Trace ..= '3' - endtry - END - call setline(1, lines) - source - call assert_equal('123', g:Trace) - - " test with the finish command - %d _ - let lines =<< trim END - vim9script - g:Color = 'red' - finish - g:Color = 'blue' - END - call setline(1, lines) - source - call assert_equal('red', g:Color) - - " test for ++clear argument to clear all the functions/variables - %d _ - let lines =<< trim END - g:ScriptVarFound = exists("color") - g:MyFuncFound = exists('*Myfunc') - if g:MyFuncFound - finish - endif - var color = 'blue' - def Myfunc() - enddef - END - call setline(1, lines) - vim9cmd source - call assert_false(g:MyFuncFound) - call assert_false(g:ScriptVarFound) - vim9cmd source - call assert_true(g:MyFuncFound) - call assert_true(g:ScriptVarFound) - vim9cmd source ++clear - call assert_false(g:MyFuncFound) - call assert_false(g:ScriptVarFound) - vim9cmd source ++clear - call assert_false(g:MyFuncFound) - call assert_false(g:ScriptVarFound) - call assert_fails('vim9cmd source ++clearx', 'E475:') - call assert_fails('vim9cmd source ++abcde', 'E484:') - - %bw! -endfunc - -func Test_source_buffer_long_line() - " This was reading past the end of the line. - new - norm300gr0 - so - bwipe! - - let lines =<< trim END - new - norm 10a0000000000ΓΈ00000000000 - norm i0000000000000000000 - silent! so - END - call writefile(lines, 'Xtest.vim', 'D') - source Xtest.vim - bwipe! -endfunc - -func Test_source_buffer_with_NUL_char() - " This was trying to use a line below the buffer. - let lines =<< trim END - if !exists('g:loaded') - let g:loaded = 1 - source - endif - END - " Can't have a NL in heredoc - let lines += ["silent! vim9 echo [0 \<NL> ? 'a' : 'b']"] - call writefile(lines, 'XsourceNul', 'D') - edit XsourceNul - source - - bwipe! -endfunc - - -" vim: shiftwidth=2 sts=2 expandtab |
