changeset 18144:95719bfeced2 v8.1.2067

patch 8.1.2067: no tests for SafeState and SafeStateAgain Commit: https://github.com/vim/vim/commit/cadbe1b1fbdf7d7740ae617710e0f6862fdee598 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Sep 22 21:50:09 2019 +0200 patch 8.1.2067: no tests for SafeState and SafeStateAgain Problem: No tests for SafeState and SafeStateAgain. Solution: Add tests.
author Bram Moolenaar <Bram@vim.org>
date Sun, 22 Sep 2019 22:00:03 +0200
parents 2416e1a887ca
children 2923095ca100
files src/testdir/test_autocmd.vim src/version.c
diffstat 2 files changed, 33 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/testdir/test_autocmd.vim
+++ b/src/testdir/test_autocmd.vim
@@ -2,6 +2,7 @@
 
 source shared.vim
 source check.vim
+source term_util.vim
 
 func s:cleanup_buffers() abort
   for bnr in range(1, bufnr('$'))
@@ -2225,3 +2226,33 @@ func Test_throw_in_BufWritePre()
   bwipe!
   au! throwing
 endfunc
+
+func Test_autocmd_SafeState()
+  CheckRunVimInTerminal
+
+  let lines =<< trim END
+	let g:safe = 0
+	let g:again = ''
+	au SafeState * let g:safe += 1
+	au SafeStateAgain * let g:again ..= 'x'
+	func CallTimer()
+	  call timer_start(10, {id -> execute('let g:again ..= "t"')})
+	endfunc
+  END
+  call writefile(lines, 'XSafeState')
+  let buf = RunVimInTerminal('-S XSafeState', #{rows: 6})
+
+  call term_sendkeys(buf, ":echo g:safe\<CR>")
+  call WaitForAssert({-> assert_match('^2 ', term_getline(buf, 6))}, 1000)
+
+  call term_sendkeys(buf, ":echo g:again\<CR>")
+  call WaitForAssert({-> assert_match('^xxxx', term_getline(buf, 6))}, 1000)
+
+  call term_sendkeys(buf, ":let g:again = ''\<CR>:call CallTimer()\<CR>")
+  call term_wait(buf)
+  call term_sendkeys(buf, ":echo g:again\<CR>")
+  call WaitForAssert({-> assert_match('xtx', term_getline(buf, 6))}, 1000)
+
+  call StopVimInTerminal(buf)
+  call delete('XSafeState')
+endfunc
--- a/src/version.c
+++ b/src/version.c
@@ -758,6 +758,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    2067,
+/**/
     2066,
 /**/
     2065,