Mercurial > vim
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 |