forked from aniani/vim
patch 8.1.0799: calling deleted function; test doesn't work on Mac
Problem: Calling deleted function; test doesn't work on Mac. Solution: Wait for the function to be called before deleting it. Use a job to write to the pty, unless in the GUI. (Ozaki Kiichi, closes #3854)
This commit is contained in:
@@ -1945,10 +1945,11 @@ func Test_job_start_in_timer()
|
||||
endif
|
||||
|
||||
func OutCb(chan, msg)
|
||||
let g:val += 1
|
||||
endfunc
|
||||
|
||||
func ExitCb(job, status)
|
||||
let g:val = 1
|
||||
let g:val += 1
|
||||
call Resume()
|
||||
endfunc
|
||||
|
||||
@@ -1967,6 +1968,10 @@ func Test_job_start_in_timer()
|
||||
call timer_start(1, 'TimerCb')
|
||||
let elapsed = Standby(&ut)
|
||||
call assert_inrange(1, &ut / 2, elapsed)
|
||||
|
||||
" Wait for both OutCb() and ExitCb() to have been called before deleting
|
||||
" them.
|
||||
call WaitForAssert({-> assert_equal(2, g:val)})
|
||||
call job_stop(g:job)
|
||||
|
||||
delfunc OutCb
|
||||
|
@@ -643,19 +643,17 @@ func Test_terminal_write_stdin()
|
||||
endfunc
|
||||
|
||||
func Test_terminal_no_cmd()
|
||||
" Does not work on Mac.
|
||||
if has('mac')
|
||||
return
|
||||
endif
|
||||
let buf = term_start('NONE', {})
|
||||
call assert_notequal(0, buf)
|
||||
|
||||
let pty = job_info(term_getjob(buf))['tty_out']
|
||||
call assert_notequal('', pty)
|
||||
if has('win32')
|
||||
silent exe '!start cmd /c "echo look here > ' . pty . '"'
|
||||
else
|
||||
if has('gui_running') && !has('win32')
|
||||
" In the GUI job_start() doesn't work, it does not read from the pty.
|
||||
call system('echo "look here" > ' . pty)
|
||||
else
|
||||
" Otherwise using a job works on all systems.
|
||||
call job_start([&shell, &shellcmdflag, 'echo "look here" > ' . pty])
|
||||
endif
|
||||
call WaitForAssert({-> assert_match('look here', term_getline(buf, 1))})
|
||||
|
||||
|
@@ -791,6 +791,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
799,
|
||||
/**/
|
||||
798,
|
||||
/**/
|
||||
|
Reference in New Issue
Block a user