summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-11-22 14:24:00 +0100
committerBram Moolenaar <Bram@vim.org>2020-11-22 14:24:00 +0100
commit18dc355395f2eac72ab83d984cacd26ae61c791f (patch)
tree6c1e7d7f7bae004eb34e0cf4251ccb5419bb10d7
parent4b2ce1297e6e991bf6a674f9465d26d28e648de7 (diff)
patch 8.2.2031: some tests fail when run under valgrindv8.2.2031
Problem: Some tests fail when run under valgrind. Solution: Avoid timing problems.
-rw-r--r--src/testdir/test_channel.vim15
-rw-r--r--src/testdir/test_clientserver.vim5
-rw-r--r--src/testdir/test_debugger.vim19
-rw-r--r--src/testdir/test_quotestar.vim5
-rw-r--r--src/testdir/test_vim9_func.vim2
-rw-r--r--src/version.c2
6 files changed, 30 insertions, 18 deletions
diff --git a/src/testdir/test_channel.vim b/src/testdir/test_channel.vim
index 6fa7e3bfdb..90d828bdb3 100644
--- a/src/testdir/test_channel.vim
+++ b/src/testdir/test_channel.vim
@@ -2181,18 +2181,21 @@ func Test_issue_5150()
else
let cmd = 'grep foo'
endif
+
let g:job = job_start(cmd, {})
+ sleep 50m " give the job time to start
call job_stop(g:job)
- sleep 50m
- call assert_equal(-1, job_info(g:job).exitval)
+ call WaitForAssert({-> assert_equal(-1, job_info(g:job).exitval)})
+
let g:job = job_start(cmd, {})
- call job_stop(g:job, 'term')
sleep 50m
- call assert_equal(-1, job_info(g:job).exitval)
+ call job_stop(g:job, 'term')
+ call WaitForAssert({-> assert_equal(-1, job_info(g:job).exitval)})
+
let g:job = job_start(cmd, {})
- call job_stop(g:job, 'kill')
sleep 50m
- call assert_equal(-1, job_info(g:job).exitval)
+ call job_stop(g:job, 'kill')
+ call WaitForAssert({-> assert_equal(-1, job_info(g:job).exitval)})
endfunc
func Test_issue_5485()
diff --git a/src/testdir/test_clientserver.vim b/src/testdir/test_clientserver.vim
index 7a750556ab..6043184211 100644
--- a/src/testdir/test_clientserver.vim
+++ b/src/testdir/test_clientserver.vim
@@ -63,8 +63,9 @@ func Test_client_server()
call remote_send(name, ":gui -f\<CR>")
endif
" Wait for the server to be up and answering requests.
- sleep 100m
- call WaitForAssert({-> assert_true(name->remote_expr("v:version", "", 1) != "")})
+ " When using valgrind this can be very, very slow.
+ sleep 1
+ call WaitForAssert({-> assert_match('\d', name->remote_expr("v:version", "", 1))}, 10000)
call remote_send(name, ":let testvar = 'maybe'\<CR>")
call WaitForAssert({-> assert_equal('maybe', remote_expr(name, "testvar", "", 2))})
diff --git a/src/testdir/test_debugger.vim b/src/testdir/test_debugger.vim
index 3b02241205..b3636408d8 100644
--- a/src/testdir/test_debugger.vim
+++ b/src/testdir/test_debugger.vim
@@ -17,14 +17,18 @@ func CheckCWD()
endfunc
command! -nargs=0 -bar CheckCWD call CheckCWD()
+" "options" argument can contain:
+" 'msec' - time to wait for a match
+" 'match' - "pattern" to use "lines" as pattern instead of text
func CheckDbgOutput(buf, lines, options = {})
" Verify the expected output
let lnum = 20 - len(a:lines)
+ let msec = get(a:options, 'msec', 1000)
for l in a:lines
if get(a:options, 'match', 'equal') ==# 'pattern'
- call WaitForAssert({-> assert_match(l, term_getline(a:buf, lnum))}, 200)
+ call WaitForAssert({-> assert_match(l, term_getline(a:buf, lnum))}, msec)
else
- call WaitForAssert({-> assert_equal(l, term_getline(a:buf, lnum))}, 200)
+ call WaitForAssert({-> assert_equal(l, term_getline(a:buf, lnum))}, msec)
endif
let lnum += 1
endfor
@@ -198,7 +202,7 @@ func Test_Debugger()
" Start a debug session, so that reading the last line from the terminal
" works properly.
- call RunDbgCmd(buf, ':debug echo Foo()')
+ call RunDbgCmd(buf, ':debug echo Foo()', ['cmd: echo Foo()'])
" No breakpoints
call RunDbgCmd(buf, 'breakl', ['No breakpoints defined'])
@@ -809,9 +813,10 @@ func Test_Backtrace_CmdLine()
\ '-S Xtest1.vim -c "debug call GlobalFunction()"',
\ {'wait_for_ruler': 0})
- " Need to wait for the vim-in-terminal to be ready
+ " Need to wait for the vim-in-terminal to be ready.
+ " With valgrind this can take quite long.
call CheckDbgOutput(buf, ['command line',
- \ 'cmd: call GlobalFunction()'])
+ \ 'cmd: call GlobalFunction()'], #{msec: 5000})
" At this point the ontly thing in the stack is the cmdline
call RunDbgCmd(buf, 'backtrace', [
@@ -960,14 +965,14 @@ func Test_debug_backtrace_level()
" set a breakpoint and source file1.vim
let buf = RunVimInTerminal(
\ '-c "breakadd file 1 Xtest1.vim" -S Xtest1.vim',
- \ #{ wait_for_ruler: 0 } )
+ \ #{wait_for_ruler: 0})
call CheckDbgOutput(buf, [
\ 'Breakpoint in "' .. file1 .. '" line 1',
\ 'Entering Debug mode. Type "cont" to continue.',
\ 'command line..script ' .. file1,
\ 'line 1: let s:file1_var = ''file1'''
- \ ])
+ \ ], #{msec: 5000})
" step throught the initial declarations
call RunDbgCmd(buf, 'step', [ 'line 2: let g:global_var = ''global''' ] )
diff --git a/src/testdir/test_quotestar.vim b/src/testdir/test_quotestar.vim
index 9e04e19654..6b8aebfff7 100644
--- a/src/testdir/test_quotestar.vim
+++ b/src/testdir/test_quotestar.vim
@@ -98,8 +98,6 @@ func Do_test_quotestar_for_x11()
" Running in a terminal and the GUI is available: Tell the server to open
" the GUI and check that the remote command still works.
- " Need to wait for the GUI to start up, otherwise the send hangs in trying
- " to send to the terminal window.
if has('gui_athena') || has('gui_motif')
" For those GUIs, ignore the 'failed to create input context' error.
call remote_send(name, ":call test_ignore_error('E285') | gui -f\<CR>")
@@ -107,7 +105,10 @@ func Do_test_quotestar_for_x11()
call remote_send(name, ":gui -f\<CR>")
endif
" Wait for the server in the GUI to be up and answering requests.
+ " First need to wait for the GUI to start up, otherwise the send hangs in
+ " trying to send to the terminal window.
" On some systems and with valgrind this can be very slow.
+ sleep 1
call WaitForAssert({-> assert_match("1", remote_expr(name, "has('gui_running')", "", 1))}, 10000)
call remote_send(name, ":let @* = 'maybe'\<CR>")
diff --git a/src/testdir/test_vim9_func.vim b/src/testdir/test_vim9_func.vim
index 7b5d3e9d7e..dd2f576ddc 100644
--- a/src/testdir/test_vim9_func.vim
+++ b/src/testdir/test_vim9_func.vim
@@ -37,7 +37,7 @@ def TestCompilingError()
for i in range(1, 9)
text ..= term_getline(buf, i)
endfor
- if text =~ 'Error detected'
+ if text =~ 'Variable not found: nothing'
break
endif
sleep 20m
diff --git a/src/version.c b/src/version.c
index f2a3ba85c3..14eb31380c 100644
--- a/src/version.c
+++ b/src/version.c
@@ -751,6 +751,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 2031,
+/**/
2030,
/**/
2029,