summaryrefslogtreecommitdiff
path: root/src/testdir
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-03-26 16:50:57 +0100
committerBram Moolenaar <Bram@vim.org>2020-03-26 16:50:57 +0100
commit3ed9efc2b15b624268bcce4e4d312fb35840a12b (patch)
tree5245d20c2fd3a5e2822f766ece99af732bfde907 /src/testdir
parent7851b1ca992222880df1314684a790f293e11896 (diff)
downloadvim-git-3ed9efc2b15b624268bcce4e4d312fb35840a12b.tar.gz
patch 8.2.0454: some tests fail when the system is slowv8.2.0454
Problem: Some tests fail when the system is slow. Solution: Make the run number global, use in the test to increase the waiting time. (closes #5841)
Diffstat (limited to 'src/testdir')
-rw-r--r--src/testdir/runtest.vim8
-rw-r--r--src/testdir/test_functions.vim22
2 files changed, 20 insertions, 10 deletions
diff --git a/src/testdir/runtest.vim b/src/testdir/runtest.vim
index 585021868..0d603231a 100644
--- a/src/testdir/runtest.vim
+++ b/src/testdir/runtest.vim
@@ -406,7 +406,7 @@ for s:test in sort(s:tests)
set belloff=all
let prev_error = ''
let total_errors = []
- let run_nr = 1
+ let g:run_nr = 1
" A test can set test_is_flaky to retry running the test.
let test_is_flaky = 0
@@ -423,10 +423,10 @@ for s:test in sort(s:tests)
call add(s:messages, 'Found errors in ' . s:test . ':')
call extend(s:messages, v:errors)
- call add(total_errors, 'Run ' . run_nr . ':')
+ call add(total_errors, 'Run ' . g:run_nr . ':')
call extend(total_errors, v:errors)
- if run_nr == 5 || prev_error == v:errors[0]
+ if g:run_nr == 5 || prev_error == v:errors[0]
call add(total_errors, 'Flaky test failed too often, giving up')
let v:errors = total_errors
break
@@ -441,7 +441,7 @@ for s:test in sort(s:tests)
let prev_error = v:errors[0]
let v:errors = []
- let run_nr += 1
+ let g:run_nr += 1
call RunTheTest(s:test)
diff --git a/src/testdir/test_functions.vim b/src/testdir/test_functions.vim
index fd5cde8ee..7462da856 100644
--- a/src/testdir/test_functions.vim
+++ b/src/testdir/test_functions.vim
@@ -1832,6 +1832,17 @@ endfunc
func Test_state()
CheckRunVimInTerminal
+ " In the first run try a short wait time. If the test fails retry with a
+ " longer wait time.
+ if g:run_nr == 1
+ let wait_time = 50
+ elseif g:run_nr == 2
+ let wait_time = 200
+ else
+ let wait_time = 500
+ endif
+ let getstate = ":echo 'state: ' .. g:state .. '; mode: ' .. g:mode\<CR>"
+
let lines =<< trim END
call setline(1, ['one', 'two', 'three'])
map ;; gg
@@ -1851,28 +1862,27 @@ func Test_state()
" Using a timer callback
call term_sendkeys(buf, ":call RunTimer()\<CR>")
- call term_wait(buf, 50)
- let getstate = ":echo 'state: ' .. g:state .. '; mode: ' .. g:mode\<CR>"
+ call term_wait(buf, wait_time)
call term_sendkeys(buf, getstate)
call WaitForAssert({-> assert_match('state: c; mode: n', term_getline(buf, 6))}, 1000)
" Halfway a mapping
call term_sendkeys(buf, ":call RunTimer()\<CR>;")
- call term_wait(buf, 50)
+ call term_wait(buf, wait_time)
call term_sendkeys(buf, ";")
call term_sendkeys(buf, getstate)
call WaitForAssert({-> assert_match('state: mSc; mode: n', term_getline(buf, 6))}, 1000)
" Insert mode completion (bit slower on Mac)
call term_sendkeys(buf, ":call RunTimer()\<CR>Got\<C-N>")
- call term_wait(buf, 200)
+ call term_wait(buf, wait_time)
call term_sendkeys(buf, "\<Esc>")
call term_sendkeys(buf, getstate)
call WaitForAssert({-> assert_match('state: aSc; mode: i', term_getline(buf, 6))}, 1000)
" Autocommand executing
call term_sendkeys(buf, ":set filetype=foobar\<CR>")
- call term_wait(buf, 50)
+ call term_wait(buf, wait_time)
call term_sendkeys(buf, getstate)
call WaitForAssert({-> assert_match('state: xS; mode: n', term_getline(buf, 6))}, 1000)
@@ -1880,7 +1890,7 @@ func Test_state()
" messages scrolled
call term_sendkeys(buf, ":call RunTimer()\<CR>:echo \"one\\ntwo\\nthree\"\<CR>")
- call term_wait(buf, 50)
+ call term_wait(buf, wait_time)
call term_sendkeys(buf, "\<CR>")
call term_sendkeys(buf, getstate)
call WaitForAssert({-> assert_match('state: Scs; mode: r', term_getline(buf, 6))}, 1000)