1" Tests for various eval things. 2 3function s:foo() abort 4 try 5 return [] == 0 6 catch 7 return 1 8 endtry 9endfunction 10 11func Test_catch_return_with_error() 12 call assert_equal(1, s:foo()) 13endfunc 14 15func Test_nocatch_restore_silent_emsg() 16 silent! try 17 throw 1 18 catch 19 endtry 20 echoerr 'wrong' 21 let c1 = nr2char(screenchar(&lines, 1)) 22 let c2 = nr2char(screenchar(&lines, 2)) 23 let c3 = nr2char(screenchar(&lines, 3)) 24 let c4 = nr2char(screenchar(&lines, 4)) 25 let c5 = nr2char(screenchar(&lines, 5)) 26 call assert_equal('wrong', c1 . c2 . c3 . c4 . c5) 27endfunc 28 29func Test_mkdir_p() 30 call mkdir('Xmkdir/nested', 'p') 31 call assert_true(isdirectory('Xmkdir/nested')) 32 try 33 " Trying to make existing directories doesn't error 34 call mkdir('Xmkdir', 'p') 35 call mkdir('Xmkdir/nested', 'p') 36 catch /E739:/ 37 call assert_report('mkdir(..., "p") failed for an existing directory') 38 endtry 39 " 'p' doesn't suppress real errors 40 call writefile([], 'Xfile') 41 call assert_fails('call mkdir("Xfile", "p")', 'E739') 42 call delete('Xfile') 43 call delete('Xmkdir', 'rf') 44endfunc 45