summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2022-09-23 20:25:55 +0100
committerBram Moolenaar <Bram@vim.org>2022-09-23 20:25:55 +0100
commit3bcd0ddc2deb34794c735c6ea0b8f964b510c6db (patch)
tree2682cb6ae790f960acf1adfa500654a1d9edaff7
parentb9093d50098ccff3848c2a404b9d0324a074c7b7 (diff)
downloadvim-git-9.0.0561.tar.gz
patch 9.0.0561: when a test gets stuck it just hangs foreverv9.0.0561
Problem: When a test gets stuck it just hangs forever. Solution: Set a timeout of 30 seconds.
-rw-r--r--src/testdir/runtest.vim21
-rw-r--r--src/version.c2
2 files changed, 23 insertions, 0 deletions
diff --git a/src/testdir/runtest.vim b/src/testdir/runtest.vim
index 5e1d6418f..e1d999912 100644
--- a/src/testdir/runtest.vim
+++ b/src/testdir/runtest.vim
@@ -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()
diff --git a/src/version.c b/src/version.c
index fb34719eb..20ed2d764 100644
--- a/src/version.c
+++ b/src/version.c
@@ -700,6 +700,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 561,
+/**/
560,
/**/
559,