Mercurial > vim
changeset 12120:017031c7717e v8.0.0940
patch 8.0.0940: Test_terminal_scrape_multibyte is flaky
commit https://github.com/vim/vim/commit/c08706135d006453784f85d211c76e27b4f2a6d0
Author: Bram Moolenaar <Bram@vim.org>
Date: Mon Aug 14 22:01:16 2017 +0200
patch 8.0.0940: Test_terminal_scrape_multibyte is flaky
Problem: Test_terminal_scrape_multibyte is flaky. (James McCoy)
Solution: Use WaitFor() instead of term_wait().
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Mon, 14 Aug 2017 22:15:04 +0200 |
parents | a7e24c12df21 |
children | fd2cdeef06d6 |
files | src/testdir/test_terminal.vim src/version.c |
diffstat | 2 files changed, 16 insertions(+), 17 deletions(-) [+] |
line wrap: on
line diff
--- a/src/testdir/test_terminal.vim +++ b/src/testdir/test_terminal.vim @@ -189,15 +189,10 @@ func Test_terminal_scrape_multibyte() else let cmd = "cat Xtext" endif - let buf = term_start(cmd) + let g:buf = term_start(cmd) - call term_wait(buf) - if has('win32') - " TODO: this should not be needed - sleep 100m - endif - - let l = term_scrape(buf, 1) + call WaitFor('term_scrape(g:buf, 1)[0].chars == "l"') + let l = term_scrape(g:buf, 1) call assert_true(len(l) >= 7) call assert_equal('l', l[0].chars) call assert_equal('é', l[1].chars) @@ -209,11 +204,12 @@ func Test_terminal_scrape_multibyte() call assert_equal('r', l[5].chars) call assert_equal('s', l[6].chars) - let g:job = term_getjob(buf) + let g:job = term_getjob(g:buf) call WaitFor('job_status(g:job) == "dead"') - call term_wait(buf) + call term_wait(g:buf) - exe buf . 'bwipe' + exe g:buf . 'bwipe' + unlet g:buf call delete('Xtext') endfunc @@ -409,16 +405,17 @@ func Test_terminal_env() if !has('unix') return endif - let buf = Run_shell_in_terminal({'env': {'TESTENV': 'correct'}}) + let g:buf = Run_shell_in_terminal({'env': {'TESTENV': 'correct'}}) " Wait for the shell to display a prompt - call WaitFor('term_getline(1) != ""') - call term_sendkeys(buf, "echo $TESTENV\r") - call term_wait(buf) - call Stop_shell_in_terminal(buf) + call WaitFor('term_getline(g:buf, 1) != ""') + call term_sendkeys(g:buf, "echo $TESTENV\r") + call term_wait(g:buf) + call Stop_shell_in_terminal(g:buf) call WaitFor('getline(2) == "correct"') call assert_equal('correct', getline(2)) - exe buf . 'bwipe' + exe g:buf . 'bwipe' + unlet g:buf endfunc " must be last, we can't go back from GUI to terminal