# HG changeset patch # User Bram Moolenaar # Date 1642087804 -3600 # Node ID 8bb07c88ac27efd4bfcec7784b2e4ce608abbb54 # Parent 6612e555c1c005b3e6f392d368b5ea6660820077 patch 8.2.4078: terminal test for current directory not used on FreeBSD Commit: https://github.com/vim/vim/commit/ced2b38a560cc4f4ec983ed2cf4372ab62e1dbc1 Author: Bram Moolenaar Date: Thu Jan 13 15:25:32 2022 +0000 patch 8.2.4078: terminal test for current directory not used on FreeBSD Problem: Terminal test for current directory not used on FreeBSD. Solution: Make it work on FreeBSD. (Ozaki Kiichi, closes https://github.com/vim/vim/issues/9516) Add TermWait() inside Run_shell_in_terminal() as a generic solution. diff --git a/src/testdir/term_util.vim b/src/testdir/term_util.vim --- a/src/testdir/term_util.vim +++ b/src/testdir/term_util.vim @@ -24,6 +24,7 @@ func StopShellInTerminal(buf) call term_sendkeys(a:buf, "exit\r") let job = term_getjob(a:buf) call WaitForAssert({-> assert_equal("dead", job_status(job))}) + call TermWait(a:buf) endfunc " Wrapper around term_wait() to allow more time for re-runs of flaky tests @@ -176,6 +177,10 @@ func Run_shell_in_terminal(options) let string = string({'job': buf->term_getjob()}) call assert_match("{'job': 'process \\d\\+ run'}", string) + " On slower systems it may take a bit of time before the shell is ready to + " accept keys. This mainly matters when using term_sendkeys() next. + call TermWait(buf) + return buf endfunc diff --git a/src/testdir/test_mapping.vim b/src/testdir/test_mapping.vim --- a/src/testdir/test_mapping.vim +++ b/src/testdir/test_mapping.vim @@ -976,7 +976,6 @@ func Test_map_cmdkey() call assert_equal('t', m) call assert_equal('t', mode(1)) call StopShellInTerminal(buf) - call TermWait(buf) close! tunmap endif diff --git a/src/testdir/test_terminal.vim b/src/testdir/test_terminal.vim --- a/src/testdir/test_terminal.vim +++ b/src/testdir/test_terminal.vim @@ -26,7 +26,6 @@ func Test_terminal_basic() call assert_fails('set modifiable', 'E946:') call StopShellInTerminal(buf) - call TermWait(buf) call assert_equal('n', mode()) call assert_match('%aF[^\n]*finished]', execute('ls')) call assert_match('%aF[^\n]*finished]', execute('ls F')) @@ -48,7 +47,6 @@ func Test_terminal_no_name() call assert_equal("", bufname(buf)) call assert_match('\[No Name\]', execute('file')) call StopShellInTerminal(buf) - call TermWait(buf) endfunc func Test_terminal_TerminalWinOpen() @@ -71,7 +69,6 @@ endfunc func Test_terminal_make_change() let buf = Run_shell_in_terminal({}) call StopShellInTerminal(buf) - call TermWait(buf) setlocal modifiable exe "normal Axxx\" @@ -109,7 +106,6 @@ endfunc func Test_terminal_split_quit() let buf = Run_shell_in_terminal({}) - call TermWait(buf) split quit! call TermWait(buf) @@ -363,7 +359,6 @@ func Test_terminal_scrollback() call assert_inrange(91, 100, lines) call StopShellInTerminal(buf) - call TermWait(buf) exe buf . 'bwipe' set termwinscroll& call delete('Xtext') @@ -751,7 +746,6 @@ func Test_terminal_noblock() let g:job = term_getjob(buf) call StopShellInTerminal(buf) - call TermWait(buf) unlet g:job bwipe endfunc @@ -934,7 +928,6 @@ func TerminalTmap(remap) call term_sendkeys(buf, "\r") call StopShellInTerminal(buf) - call TermWait(buf) tunmap 123 tunmap 456 @@ -952,7 +945,6 @@ func Test_terminal_wall() let buf = Run_shell_in_terminal({}) wall call StopShellInTerminal(buf) - call TermWait(buf) exe buf . 'bwipe' unlet g:job endfunc @@ -961,7 +953,6 @@ func Test_terminal_wqall() let buf = Run_shell_in_terminal({}) call assert_fails('wqall', 'E948:') call StopShellInTerminal(buf) - call TermWait(buf) exe buf . 'bwipe' unlet g:job endfunc @@ -2001,7 +1992,6 @@ func Test_terminal_ansicolors_default() let buf = Run_shell_in_terminal({}) call assert_equal(colors, term_getansicolors(buf)) call StopShellInTerminal(buf) - call TermWait(buf) call assert_equal([], term_getansicolors(buf)) exe buf . 'bwipe' @@ -2026,7 +2016,6 @@ func Test_terminal_ansicolors_global() let buf = Run_shell_in_terminal({}) call assert_equal(g:terminal_ansi_colors, term_getansicolors(buf)) call StopShellInTerminal(buf) - call TermWait(buf) exe buf . 'bwipe' unlet g:terminal_ansi_colors @@ -2060,7 +2049,6 @@ func Test_terminal_ansicolors_func() call assert_fails('call term_setansicolors(buf, {})', 'E714:') call StopShellInTerminal(buf) - call TermWait(buf) call assert_equal(0, term_setansicolors(buf, [])) exe buf . 'bwipe' endfunc diff --git a/src/testdir/test_terminal2.vim b/src/testdir/test_terminal2.vim --- a/src/testdir/test_terminal2.vim +++ b/src/testdir/test_terminal2.vim @@ -49,7 +49,6 @@ func Test_terminal_termwinsize_option_ze let win = bufwinid(buf) call assert_equal([winheight(win), winwidth(win)], term_getsize(buf)) call StopShellInTerminal(buf) - call TermWait(buf) exe buf . 'bwipe' set termwinsize=7x0 @@ -57,7 +56,6 @@ func Test_terminal_termwinsize_option_ze let win = bufwinid(buf) call assert_equal([7, winwidth(win)], term_getsize(buf)) call StopShellInTerminal(buf) - call TermWait(buf) exe buf . 'bwipe' set termwinsize=0x33 @@ -65,7 +63,6 @@ func Test_terminal_termwinsize_option_ze let win = bufwinid(buf) call assert_equal([winheight(win), 33], term_getsize(buf)) call StopShellInTerminal(buf) - call TermWait(buf) exe buf . 'bwipe' set termwinsize= @@ -95,7 +92,6 @@ func Test_terminal_termwinsize_minimum() call assert_equal(30, winwidth(win)) call StopShellInTerminal(buf) - call TermWait(buf) exe buf . 'bwipe' set termwinsize=0*0 @@ -103,7 +99,6 @@ func Test_terminal_termwinsize_minimum() let win = bufwinid(buf) call assert_equal([winheight(win), winwidth(win)], term_getsize(buf)) call StopShellInTerminal(buf) - call TermWait(buf) exe buf . 'bwipe' set termwinsize= @@ -287,7 +282,6 @@ func Test_zz1_terminal_in_gui() call assert_equal(1, winnr('$')) let buf = Run_shell_in_terminal({'term_finish': 'close'}) call StopShellInTerminal(buf) - call TermWait(buf) " closing window wipes out the terminal buffer a with finished job call WaitForAssert({-> assert_equal(1, winnr('$'))}) @@ -572,7 +566,6 @@ func Test_term_gettty() call assert_equal('', term_gettty(buf + 1)) call StopShellInTerminal(buf) - call TermWait(buf) exe buf . 'bwipe' endfunc diff --git a/src/testdir/test_terminal3.vim b/src/testdir/test_terminal3.vim --- a/src/testdir/test_terminal3.vim +++ b/src/testdir/test_terminal3.vim @@ -779,8 +779,6 @@ endfunc func Test_terminal_sync_shell_dir() CheckUnix " The test always use sh (see src/testdir/unix.vim). - " However, BSD's sh doesn't seem to play well with OSC 7 escape sequence. - CheckNotBSD set asd " , is @@ -789,15 +787,15 @@ func Test_terminal_sync_shell_dir() let chars = ",a" " "," is url-encoded as '%2C' let chars_url = "%2Ca" - let tmpfolder = fnamemodify(tempname(),':h').'/'.chars - let tmpfolder_url = fnamemodify(tempname(),':h').'/'.chars_url + let tmpfolder = fnamemodify(tempname(),':h') .. '/' .. chars + let tmpfolder_url = fnamemodify(tempname(),':h') .. '/' .. chars_url call mkdir(tmpfolder, "p") let buf = Run_shell_in_terminal({}) - call term_sendkeys(buf, "echo -ne $'\\e\]7;file://".tmpfolder_url."\\a'\") - "call term_sendkeys(buf, "cd ".tmpfolder."\") + call term_sendkeys(buf, "echo $'\\e\]7;file://" .. tmpfolder_url .. "\\a'\") + "call term_sendkeys(buf, "cd " .. tmpfolder .. "\") call TermWait(buf) if has("mac") - let expected = "/private".tmpfolder + let expected = "/private" .. tmpfolder else let expected = tmpfolder endif diff --git a/src/version.c b/src/version.c --- 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 */ /**/ + 4078, +/**/ 4077, /**/ 4076,