diff options
author | Justin M. Keyes <justinkz@gmail.com> | 2017-03-15 23:28:37 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-03-15 23:28:37 +0100 |
commit | 40cc49c5da3ad499ec373876679b11b8d47be197 (patch) | |
tree | 16696d7634a645dc19fde9e9548b2f489a20d8ad | |
parent | 297e8d0fdaba6a79e16a1ec14ac467aeaacda00f (diff) | |
download | rneovim-40cc49c5da3ad499ec373876679b11b8d47be197.tar.gz rneovim-40cc49c5da3ad499ec373876679b11b8d47be197.tar.bz2 rneovim-40cc49c5da3ad499ec373876679b11b8d47be197.zip |
test/termclose: Avoid indeterminism (#6281)
-rw-r--r-- | test/functional/autocmd/termclose_spec.lua | 56 |
1 files changed, 28 insertions, 28 deletions
diff --git a/test/functional/autocmd/termclose_spec.lua b/test/functional/autocmd/termclose_spec.lua index 227f2cc56d..ecda1bffb7 100644 --- a/test/functional/autocmd/termclose_spec.lua +++ b/test/functional/autocmd/termclose_spec.lua @@ -1,46 +1,46 @@ local helpers = require('test.functional.helpers')(after_each) -local Screen = require('test.functional.ui.screen') -local clear, execute, feed, nvim, nvim_dir = helpers.clear, -helpers.execute, helpers.feed, helpers.nvim, helpers.nvim_dir -local eval, eq = helpers.eval, helpers.eq +local clear, command, nvim, nvim_dir = + helpers.clear, helpers.command, helpers.nvim, helpers.nvim_dir +local eval, eq, retry = + helpers.eval, helpers.eq, helpers.retry if helpers.pending_win32(pending) then return end describe('TermClose event', function() - local screen before_each(function() clear() nvim('set_option', 'shell', nvim_dir .. '/shell-test') nvim('set_option', 'shellcmdflag', 'EXE') - screen = Screen.new(20, 4) - screen:attach({rgb=false}) end) - it('works as expected', function() - execute('autocmd TermClose * echomsg "TermClose works!"') - execute('terminal') - feed('<c-\\><c-n>') - screen:expect([[ - ^ready $ | - [Process exited 0] | - | - TermClose works! | - ]]) + local function eq_err(expected, actual) + if expected ~= actual then + error('expected: '..tostring(expected)..', actual: '..tostring(actual)) + end + end + + it('triggers when terminal job ends', function() + command('autocmd TermClose * let g:test_termclose = 23') + command('terminal') + command('call jobstop(b:terminal_job_id)') + retry(nil, nil, function() eq_err(23, eval('g:test_termclose')) end) end) it('reports the correct <abuf>', function() - execute('set hidden') - execute('autocmd TermClose * let g:abuf = expand("<abuf>")') - execute('edit foo') - execute('edit bar') + command('set hidden') + command('autocmd TermClose * let g:abuf = expand("<abuf>")') + command('edit foo') + command('edit bar') eq(2, eval('bufnr("%")')) - execute('terminal') - feed('<c-\\><c-n>') - eq(3, eval('bufnr("%")')) - execute('buffer 1') - eq(1, eval('bufnr("%")')) - execute('3bdelete!') - eq('3', eval('g:abuf')) + + command('terminal') + retry(nil, nil, function() eq_err(3, eval('bufnr("%")')) end) + + command('buffer 1') + retry(nil, nil, function() eq_err(1, eval('bufnr("%")')) end) + + command('3bdelete!') + retry(nil, nil, function() eq_err('3', eval('g:abuf')) end) end) end) |