1function! StatuslineWithCaughtError() 2 let s:func_in_statusline_called = 1 3 try 4 call eval('unknown expression') 5 catch 6 endtry 7 return '' 8endfunction 9 10function! StatuslineWithError() 11 let s:func_in_statusline_called = 1 12 call eval('unknown expression') 13 return '' 14endfunction 15 16function! Test_caught_error_in_statusline() 17 let s:func_in_statusline_called = 0 18 set laststatus=2 19 let statusline = '%{StatuslineWithCaughtError()}' 20 let &statusline = statusline 21 redrawstatus 22 call assert_true(s:func_in_statusline_called) 23 call assert_equal(statusline, &statusline) 24 set statusline= 25endfunction 26 27function! Test_statusline_will_be_disabled_with_error() 28 let s:func_in_statusline_called = 0 29 set laststatus=2 30 let statusline = '%{StatuslineWithError()}' 31 try 32 let &statusline = statusline 33 redrawstatus 34 catch 35 endtry 36 call assert_true(s:func_in_statusline_called) 37 call assert_equal('', &statusline) 38 set statusline= 39endfunction 40