forked from aniani/vim
patch 8.0.1087: Test_terminal_cwd is flaky
Problem: Test_terminal_cwd is flaky. MS-Windows: term_start() "cwd" argument does not work. Solution: Wait for the condition to be true instead of using a sleep. Pass the directory to winpty.
This commit is contained in:
@@ -38,8 +38,11 @@
|
||||
* in tl_scrollback are no longer used.
|
||||
*
|
||||
* TODO:
|
||||
* - check for memory leaks
|
||||
* - patch to use GUI or cterm colors for vterm. Yasuhiro, #2067
|
||||
* - when Normal background is not white or black, going to Terminal-Normal
|
||||
* mode does not clear correctly. Use the terminal background color to erase
|
||||
* the background.
|
||||
* - patch to add tmap, jakalope (Jacob Askeland) #2073
|
||||
* - Redirecting output does not work on MS-Windows.
|
||||
* - implement term_setsize()
|
||||
* - add test for giving error for invalid 'termsize' value.
|
||||
@@ -3099,6 +3102,7 @@ term_and_job_init(
|
||||
jobopt_T *opt)
|
||||
{
|
||||
WCHAR *cmd_wchar = NULL;
|
||||
WCHAR *cwd_wchar = NULL;
|
||||
channel_T *channel = NULL;
|
||||
job_T *job = NULL;
|
||||
DWORD error;
|
||||
@@ -3126,6 +3130,8 @@ term_and_job_init(
|
||||
cmd_wchar = enc_to_utf16(cmd, NULL);
|
||||
if (cmd_wchar == NULL)
|
||||
return FAIL;
|
||||
if (opt->jo_cwd != NULL)
|
||||
cwd_wchar = enc_to_utf16(opt->jo_cwd, NULL);
|
||||
|
||||
job = job_alloc();
|
||||
if (job == NULL)
|
||||
@@ -3152,7 +3158,7 @@ term_and_job_init(
|
||||
WINPTY_SPAWN_FLAG_EXIT_AFTER_SHUTDOWN,
|
||||
NULL,
|
||||
cmd_wchar,
|
||||
NULL,
|
||||
cwd_wchar,
|
||||
NULL,
|
||||
&winpty_err);
|
||||
if (spawn_config == NULL)
|
||||
@@ -3203,6 +3209,7 @@ term_and_job_init(
|
||||
|
||||
winpty_spawn_config_free(spawn_config);
|
||||
vim_free(cmd_wchar);
|
||||
vim_free(cwd_wchar);
|
||||
|
||||
create_vterm(term, term->tl_rows, term->tl_cols);
|
||||
|
||||
@@ -3226,8 +3233,8 @@ term_and_job_init(
|
||||
failed:
|
||||
if (argvar->v_type == VAR_LIST)
|
||||
vim_free(ga.ga_data);
|
||||
if (cmd_wchar != NULL)
|
||||
vim_free(cmd_wchar);
|
||||
vim_free(cmd_wchar);
|
||||
vim_free(cwd_wchar);
|
||||
if (spawn_config != NULL)
|
||||
winpty_spawn_config_free(spawn_config);
|
||||
if (channel != NULL)
|
||||
|
@@ -396,14 +396,13 @@ func Test_finish_open_close()
|
||||
endfunc
|
||||
|
||||
func Test_terminal_cwd()
|
||||
if !has('unix')
|
||||
if !executable('pwd')
|
||||
return
|
||||
endif
|
||||
call mkdir('Xdir')
|
||||
let buf = term_start('pwd', {'cwd': 'Xdir'})
|
||||
sleep 100m
|
||||
call term_wait(buf)
|
||||
call assert_equal(getcwd() . '/Xdir', getline(1))
|
||||
call WaitFor('"Xdir" == fnamemodify(getline(1), ":t")')
|
||||
call assert_equal('Xdir', fnamemodify(getline(1), ":t"))
|
||||
|
||||
exe buf . 'bwipe'
|
||||
call delete('Xdir', 'rf')
|
||||
@@ -603,6 +602,8 @@ func Test_terminal_redir_file()
|
||||
call term_wait(buf)
|
||||
call WaitFor('len(readfile("Xfile")) > 0')
|
||||
call assert_match('123', readfile('Xfile')[0])
|
||||
let g:job = term_getjob(buf)
|
||||
call WaitFor('job_status(g:job) == "dead"')
|
||||
call delete('Xfile')
|
||||
bwipe
|
||||
endif
|
||||
|
@@ -769,6 +769,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
1087,
|
||||
/**/
|
||||
1086,
|
||||
/**/
|
||||
|
Reference in New Issue
Block a user