comparison src/testdir/test_timers.vim @ 12375:ab0d827151a1 v8.0.1067

patch 8.0.1067: try/catch in timer does not prevent it from being stopped commit https://github.com/vim/vim/commit/e723c42836d971180d1bf9f98916966c5543fff1 Author: Bram Moolenaar <Bram@vim.org> Date: Wed Sep 6 23:40:10 2017 +0200 patch 8.0.1067: try/catch in timer does not prevent it from being stopped Problem: Using try/catch in timer does not prevent it from being stopped. Solution: Reset the exception context and use did_emsg instead of called_emsg.
author Christian Brabandt <cb@256bit.org>
date Wed, 06 Sep 2017 23:45:04 +0200
parents 4e61b77cd96f
children 937356f8f8d6
comparison
equal deleted inserted replaced
12374:a3a35f113a36 12375:ab0d827151a1
206 call WaitFor('g:call_count == 3') 206 call WaitFor('g:call_count == 3')
207 sleep 50m 207 sleep 50m
208 call assert_equal(3, g:call_count) 208 call assert_equal(3, g:call_count)
209 endfunc 209 endfunc
210 210
211 func FuncWithCaughtError(timer)
212 let g:call_count += 1
213 try
214 doesnotexist
215 catch
216 " nop
217 endtry
218 endfunc
219
220 func Test_timer_catch_error()
221 let g:call_count = 0
222 let timer = timer_start(10, 'FuncWithCaughtError', {'repeat': 4})
223 " Timer will not be stopped.
224 call WaitFor('g:call_count == 4')
225 sleep 50m
226 call assert_equal(4, g:call_count)
227 endfunc
228
211 func FeedAndPeek(timer) 229 func FeedAndPeek(timer)
212 call test_feedinput('a') 230 call test_feedinput('a')
213 call getchar(1) 231 call getchar(1)
214 endfunc 232 endfunc
215 233