summaryrefslogtreecommitdiff
path: root/src/testdir
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2017-11-02 16:58:00 +0100
committerBram Moolenaar <Bram@vim.org>2017-11-02 16:58:00 +0100
commit3e1c617d49224038a820ee2c552ebe31a84aaa89 (patch)
treeb05d5e0c2b1e6d38b14796cd5329b5d827785470 /src/testdir
parentb94340c04f524482b408543daa1142f883831cab (diff)
downloadvim-git-3e1c617d49224038a820ee2c552ebe31a84aaa89.tar.gz
patch 8.0.1245: when WaitFor() has a wrong expression it just waits a secondv8.0.1245
Problem: When WaitFor() has a wrong expression it just waits a second, which goes unnoticed. (James McCoy) Solution: When WaitFor() times out throw an exception. Fix places where the expression was wrong.
Diffstat (limited to 'src/testdir')
-rw-r--r--src/testdir/shared.vim2
-rw-r--r--src/testdir/test_channel.vim46
-rw-r--r--src/testdir/test_netbeans.vim2
-rw-r--r--src/testdir/test_terminal.vim7
4 files changed, 31 insertions, 26 deletions
diff --git a/src/testdir/shared.vim b/src/testdir/shared.vim
index 8db388a4f..eb43cf4e7 100644
--- a/src/testdir/shared.vim
+++ b/src/testdir/shared.vim
@@ -139,7 +139,7 @@ func WaitFor(expr, ...)
endif
sleep 10m
endfor
- return timeout
+ throw 'WaitFor() timed out after ' . timeout . ' msec'
endfunc
" Wait for up to a given milliseconds.
diff --git a/src/testdir/test_channel.vim b/src/testdir/test_channel.vim
index 9dba0c4b7..5709bf832 100644
--- a/src/testdir/test_channel.vim
+++ b/src/testdir/test_channel.vim
@@ -709,7 +709,7 @@ func Run_test_pipe_to_buffer(use_name, nomod, do_msg)
call ch_sendraw(handle, "double this\n")
call ch_sendraw(handle, "quit\n")
sp pipe-output
- call WaitFor('line("$") >= 6 && g:Ch_bufClosed == "yes"')
+ call WaitFor('line("$") == ' . len(expected) . ' && g:Ch_bufClosed == "yes"')
call assert_equal(expected, getline(1, '$'))
if a:nomod
call assert_equal(0, &modifiable)
@@ -804,7 +804,7 @@ func Run_test_pipe_err_to_buffer(use_name, nomod, do_msg)
call ch_sendraw(handle, "doubleerr this\n")
call ch_sendraw(handle, "quit\n")
sp pipe-err
- call WaitFor('line("$") >= 5')
+ call WaitFor('line("$") == ' . len(expected))
call assert_equal(expected, getline(1, '$'))
if a:nomod
call assert_equal(0, &modifiable)
@@ -1130,12 +1130,14 @@ func Test_pipe_to_buffer_raw()
let job = job_start([s:python, '-c',
\ 'import sys; [sys.stdout.write(".") and sys.stdout.flush() for _ in range(10000)]'], options)
call assert_equal("run", job_status(job))
- call WaitFor('len(join(getline(2,line("$")),"") >= 10000')
+ call WaitFor('len(join(getline(1, "$"), "")) >= 10000', 3000)
try
- for line in getline(2, '$')
- let line = substitute(line, '^\.*', '', '')
- call assert_equal('', line)
+ let totlen = 0
+ for line in getline(1, '$')
+ call assert_equal('', substitute(line, '^\.*', '', ''))
+ let totlen += len(line)
endfor
+ call assert_equal(10000, totlen)
finally
call job_stop(job)
bwipe!
@@ -1300,24 +1302,25 @@ func Test_close_and_exit_cb()
endif
call ch_log('Test_close_and_exit_cb')
- let dict = {'ret': {}}
- func dict.close_cb(ch) dict
+ let g:retdict = {'ret': {}}
+ func g:retdict.close_cb(ch) dict
let self.ret['close_cb'] = job_status(ch_getjob(a:ch))
endfunc
- func dict.exit_cb(job, status) dict
+ func g:retdict.exit_cb(job, status) dict
let self.ret['exit_cb'] = job_status(a:job)
endfunc
let g:job = job_start('echo', {
- \ 'close_cb': dict.close_cb,
- \ 'exit_cb': dict.exit_cb,
+ \ 'close_cb': g:retdict.close_cb,
+ \ 'exit_cb': g:retdict.exit_cb,
\ })
call assert_equal('run', job_status(g:job))
unlet g:job
- call WaitFor('len(dict.ret) >= 2')
- call assert_equal(2, len(dict.ret))
- call assert_match('^\%(dead\|run\)', dict.ret['close_cb'])
- call assert_equal('dead', dict.ret['exit_cb'])
+ call WaitFor('len(g:retdict.ret) >= 2')
+ call assert_equal(2, len(g:retdict.ret))
+ call assert_match('^\%(dead\|run\)', g:retdict.ret['close_cb'])
+ call assert_equal('dead', g:retdict.ret['exit_cb'])
+ unlet g:retdict
endfunc
""""""""""
@@ -1547,13 +1550,14 @@ func Test_job_stop_immediately()
return
endif
- let job = job_start([s:python, '-c', 'import time;time.sleep(10)'])
+ let g:job = job_start([s:python, '-c', 'import time;time.sleep(10)'])
try
- call job_stop(job)
- call WaitFor('"dead" == job_status(job)')
- call assert_equal('dead', job_status(job))
+ call job_stop(g:job)
+ call WaitFor('"dead" == job_status(g:job)')
+ call assert_equal('dead', job_status(g:job))
finally
- call job_stop(job, 'kill')
+ call job_stop(g:job, 'kill')
+ unlet g:job
endtry
endfunc
@@ -1585,7 +1589,7 @@ func Test_collapse_buffers()
split testout
1,$delete
call job_start('cat test_channel.vim', {'out_io': 'buffer', 'out_name': 'testout'})
- call WaitFor('line("$") > g:linecount')
+ call WaitFor('line("$") >= g:linecount')
call assert_inrange(g:linecount, g:linecount + 1, line('$'))
bwipe!
endfunc
diff --git a/src/testdir/test_netbeans.vim b/src/testdir/test_netbeans.vim
index 7bffeb215..4ac03db6f 100644
--- a/src/testdir/test_netbeans.vim
+++ b/src/testdir/test_netbeans.vim
@@ -27,7 +27,7 @@ func Nb_basic(port)
" Opening README.txt will result in a setDot command
call WaitFor('len(readfile("Xnetbeans")) > 4')
- call WaitFor('getcurpos()[1] == 2')
+ call WaitFor('getcurpos()[1] == 3')
let pos = getcurpos()
call assert_equal(3, pos[1])
call assert_equal(20, pos[2])
diff --git a/src/testdir/test_terminal.vim b/src/testdir/test_terminal.vim
index 95c1b98e7..967cd8fc4 100644
--- a/src/testdir/test_terminal.vim
+++ b/src/testdir/test_terminal.vim
@@ -705,7 +705,7 @@ func Test_terminal_composing_unicode()
enew
let buf = term_start(cmd, {'curwin': bufnr('')})
- let job = term_getjob(buf)
+ let g:job = term_getjob(buf)
call term_wait(buf, 50)
" ascii + composing
@@ -742,8 +742,9 @@ func Test_terminal_composing_unicode()
call assert_equal("\u00a0\u0308", l[3].chars)
call term_sendkeys(buf, "exit\r")
- call WaitFor('job_status(job) == "dead"')
- call assert_equal('dead', job_status(job))
+ call WaitFor('job_status(g:job) == "dead"')
+ call assert_equal('dead', job_status(g:job))
bwipe!
+ unlet g:job
let &encoding = save_enc
endfunc