forked from aniani/vim
patch 8.2.5102: interrupt not caught in test
Problem: Interrupt not caught in test. Solution: Consider an exception thrown in the current try/catch when got_int is set. Also catch early exit when not using try/catch.
This commit is contained in:
@@ -201,6 +201,7 @@ func RunTheTest(test)
|
||||
endtry
|
||||
endif
|
||||
|
||||
au VimLeavePre * call EarlyExit(g:testfunc)
|
||||
if a:test =~ 'Test_nocatch_'
|
||||
" Function handles errors itself. This avoids skipping commands after the
|
||||
" error.
|
||||
@@ -212,9 +213,7 @@ func RunTheTest(test)
|
||||
endif
|
||||
else
|
||||
try
|
||||
au VimLeavePre * call EarlyExit(g:testfunc)
|
||||
exe 'call ' . a:test
|
||||
au! VimLeavePre
|
||||
catch /^\cskipped/
|
||||
call add(s:messages, ' Skipped')
|
||||
call add(s:skipped, 'SKIPPED ' . a:test . ': ' . substitute(v:exception, '^\S*\s\+', '', ''))
|
||||
@@ -222,6 +221,7 @@ func RunTheTest(test)
|
||||
call add(v:errors, 'Caught exception in ' . a:test . ': ' . v:exception . ' @ ' . v:throwpoint)
|
||||
endtry
|
||||
endif
|
||||
au! VimLeavePre
|
||||
|
||||
" In case 'insertmode' was set and something went wrong, make sure it is
|
||||
" reset to avoid trouble with anything else.
|
||||
|
Reference in New Issue
Block a user