diff src/testdir/test_channel.vim @ 15369:c73f1fdfb27a v8.1.0692

patch 8.1.0692: if a buffer was deleted a channel can't write to it commit https://github.com/vim/vim/commit/8b62d87e4243d3dc9bf4f17bfe1a8953077a70c9 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Jan 5 00:02:57 2019 +0100 patch 8.1.0692: if a buffer was deleted a channel can't write to it Problem: If a buffer was deleted a channel can't write to it. Solution: When the buffer exists but was unloaded, prepare it for writing. (closes #3764)
author Bram Moolenaar <Bram@vim.org>
date Sat, 05 Jan 2019 00:15:07 +0100
parents d2ac3f2b44ba
children cda564e7c111
line wrap: on
line diff
--- a/src/testdir/test_channel.vim
+++ b/src/testdir/test_channel.vim
@@ -1645,6 +1645,28 @@ func Test_collapse_buffers()
   bwipe!
 endfunc
 
+func Test_write_to_deleted_buffer()
+  if !executable('echo') || !has('job')
+    return
+  endif
+  let job = job_start('echo hello', {'out_io': 'buffer', 'out_name': 'test_buffer', 'out_msg': 0})
+  call WaitForAssert({-> assert_equal("dead", job_status(job))})
+  let bufnr = bufnr('test_buffer')
+  call assert_equal(['hello'], getbufline(bufnr, 1, '$'))
+  call assert_equal('nofile', getbufvar(bufnr, '&buftype'))
+  call assert_equal('hide', getbufvar(bufnr, '&bufhidden'))
+  bdel test_buffer
+  call assert_equal([], getbufline(bufnr, 1, '$'))
+
+  let job = job_start('echo hello', {'out_io': 'buffer', 'out_name': 'test_buffer', 'out_msg': 0})
+  call WaitForAssert({-> assert_equal("dead", job_status(job))})
+  call assert_equal(['hello'], getbufline(bufnr, 1, '$'))
+  call assert_equal('nofile', getbufvar(bufnr, '&buftype'))
+  call assert_equal('hide', getbufvar(bufnr, '&bufhidden'))
+
+  bwipe! test_buffer
+endfunc
+
 func Test_cmd_parsing()
   if !has('unix')
     return