0
0
mirror of https://github.com/vim/vim.git synced 2025-09-29 04:34:16 -04:00

patch 9.0.0561: when a test gets stuck it just hangs forever

Problem:    When a test gets stuck it just hangs forever.
Solution:   Set a timeout of 30 seconds.
This commit is contained in:
Bram Moolenaar
2022-09-23 20:25:55 +01:00
parent b9093d5009
commit 3bcd0ddc2d
2 changed files with 23 additions and 0 deletions

View File

@@ -186,6 +186,17 @@ if has('reltime')
let g:func_start = reltime()
endif
" Invoked when a test takes too much time.
func TestTimeout(id)
split test.log
call append(line('$'), '')
call append(line('$'), 'Test timed out: ' .. g:testfunc)
write
call add(v:errors, 'Test timed out: ' . g:testfunc)
cquit! 42
endfunc
func RunTheTest(test)
let prefix = ''
if has('reltime')
@@ -194,6 +205,12 @@ func RunTheTest(test)
endif
echoconsole prefix .. 'Executing ' .. a:test
if has('timers')
" No test should take longer than 30 seconds. If it takes longer we
" assume we are stuck and need to break out.
let test_timeout_timer = timer_start(30000, 'TestTimeout')
endif
" Avoid stopping at the "hit enter" prompt
set nomore
@@ -259,6 +276,10 @@ func RunTheTest(test)
endtry
endif
if has('timers')
call timer_stop(test_timeout_timer)
endif
" Clear any autocommands and put back the catch-all for SwapExists.
au!
au SwapExists * call HandleSwapExists()

View File

@@ -699,6 +699,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
561,
/**/
560,
/**/