# HG changeset patch # User Bram Moolenaar # Date 1585238404 -3600 # Node ID 1c7f92a1100ef3c1e409413336859df7bcdb0594 # Parent 37fc7cc2d83b152b13ea8bbc07f6028df34555bd patch 8.2.0454: some tests fail when the system is slow Commit: https://github.com/vim/vim/commit/3ed9efc2b15b624268bcce4e4d312fb35840a12b Author: Bram Moolenaar Date: Thu Mar 26 16:50:57 2020 +0100 patch 8.2.0454: some tests fail when the system is slow 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) diff --git a/src/testdir/runtest.vim b/src/testdir/runtest.vim --- 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 --- 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\" + 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()\") - call term_wait(buf, 50) - let getstate = ":echo 'state: ' .. g:state .. '; mode: ' .. g:mode\" + 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()\;") - 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()\Got\") - call term_wait(buf, 200) + call term_wait(buf, wait_time) call term_sendkeys(buf, "\") 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\") - 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()\:echo \"one\\ntwo\\nthree\"\") - 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: Scs; mode: r', term_getline(buf, 6))}, 1000) diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -739,6 +739,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 454, +/**/ 453, /**/ 452,