summaryrefslogtreecommitdiffstats
path: root/src/testdir/test_terminal.vim
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2021-11-21 14:51:13 +0000
committerBram Moolenaar <Bram@vim.org>2021-11-21 14:51:13 +0000
commiteea32afdb83ae281a63152f7494f79ec7e45ff55 (patch)
tree78938a8c7f2d263f1d66a3c6293ea4c9af8ef3a0 /src/testdir/test_terminal.vim
parent7f0c4b418e01d6e056a74de2f22fcbad613b7591 (diff)
patch 8.2.3640: freeze when calling term_wait() in a close callbackv8.2.3640
Problem: Freeze when calling term_wait() in a close callback. Solution: Set a "closing" flag to tell term_wait() to return. (closes #9152)
Diffstat (limited to 'src/testdir/test_terminal.vim')
-rw-r--r--src/testdir/test_terminal.vim17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/testdir/test_terminal.vim b/src/testdir/test_terminal.vim
index 62dfbf1050..8cdb42ae88 100644
--- a/src/testdir/test_terminal.vim
+++ b/src/testdir/test_terminal.vim
@@ -2058,5 +2058,22 @@ func Test_terminal_adds_jump()
bwipe!
endfunc
+func Close_cb(ch, ctx)
+ call term_wait(a:ctx.bufnr)
+ let g:close_done = 'done'
+endfunc
+
+func Test_term_wait_in_close_cb()
+ let g:close_done = ''
+ let ctx = {}
+ let ctx.bufnr = term_start('echo "HELLO WORLD"',
+ \ {'close_cb': {ch -> Close_cb(ch, ctx)}})
+
+ call WaitForAssert({-> assert_equal("done", g:close_done)})
+
+ unlet g:close_done
+ bwipe!
+endfunc
+
" vim: shiftwidth=2 sts=2 expandtab