]> granicus.if.org Git - vim/commitdiff
patch 9.0.0508: when the channel test fails there is no clue why v9.0.0508
authorK.Takata <kentkt@csc.jp>
Tue, 20 Sep 2022 10:04:47 +0000 (11:04 +0100)
committerBram Moolenaar <Bram@vim.org>
Tue, 20 Sep 2022 10:04:47 +0000 (11:04 +0100)
Problem:    When the channel test fails there is no clue why.
Solution:   Add info about the job status. (Ken Takata, closes #11175)

src/testdir/test_channel.vim
src/version.c

index 930868f511871af72025fb041b0801adf3927fc7..5e1127e5e704cb1272375ed1d0c79b3a3084b20e 100644 (file)
@@ -1633,7 +1633,12 @@ func Test_exit_callback_interval()
   let g:exit_cb_val = {'start': reltime(), 'end': 0, 'process': 0}
   let job = [s:python, '-c', 'import time;time.sleep(0.5)']->job_start({'exit_cb': 'MyExitTimeCb'})
   let g:exit_cb_val.process = job_info(job).process
-  call WaitFor('type(g:exit_cb_val.end) != v:t_number || g:exit_cb_val.end != 0')
+  try
+    call WaitFor('type(g:exit_cb_val.end) != v:t_number || g:exit_cb_val.end != 0')
+  catch
+    call add(v:errors, "Job status: " .. string(job->job_info()))
+    throw v:exception
+  endtry
   let elapsed = reltimefloat(g:exit_cb_val.end)
   call assert_inrange(0.5, 1.0, elapsed)
 
@@ -1964,8 +1969,10 @@ func Test_env()
     let cmd = [&shell, &shellcmdflag, 'echo $FOO']
   endif
   call assert_fails('call job_start(cmd, {"env": 1})', 'E475:')
-  call job_start(cmd, {'callback': {ch,msg -> execute(":let g:envstr .= msg")}, 'env': {'FOO': 'bar'}})
-  call WaitForAssert({-> assert_equal("bar", g:envstr)})
+  let job = job_start(cmd, {'callback': {ch,msg -> execute(":let g:envstr .= msg")}, 'env': {'FOO': 'bar'}})
+  if WaitForAssert({-> assert_equal("bar", g:envstr)}, 500) != 0
+    call add(v:errors, "Job status: " .. string(job->job_info()))
+  endif
   unlet g:envstr
 endfunc
 
@@ -2027,7 +2034,12 @@ func s:test_list_args(cmd, out, remove_lf)
   try
     let g:out = ''
     let job = job_start([s:python, '-c', a:cmd], {'callback': {ch, msg -> execute('let g:out .= msg')}, 'out_mode': 'raw'})
-    call WaitFor('"" != g:out')
+    try
+      call WaitFor('"" != g:out')
+    catch
+      call add(v:errors, "Job status: " .. string(job->job_info()))
+      throw v:exception
+    endtry
     if has('win32')
       let g:out = substitute(g:out, '\r', '', 'g')
     endif
index 554f8f1e903e917a5590b309000dc2d9d2439c82..2f545d019eeb09e0ccd5ef1f77c6f0c8157b842e 100644 (file)
@@ -699,6 +699,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    508,
 /**/
     507,
 /**/