annotate src/testdir/test_autocmd.vim @ 11199:e08ead1d269f v8.0.0486

patch 8.0.0486: crash and endless loop when closing windows in autocmd commit https://github.com/vim/vim/commit/8c752bd6c4af54c0b7bac35a39acc2bf16015f85 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Mar 19 17:09:56 2017 +0100 patch 8.0.0486: crash and endless loop when closing windows in autocmd Problem: Crash and endless loop when closing windows in a SessionLoadPost autocommand. Solution: Check for valid tabpage. (partly neovim #6308)
author Christian Brabandt <cb@256bit.org>
date Sun, 19 Mar 2017 17:15:05 +0100
parents 7f355d8cd634
children 87ef152072d4
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8738
e770986c855a commit https://github.com/vim/vim/commit/1473551a4457d4920b235eeeb9f279e196ee7225
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
1 " Tests for autocommands
e770986c855a commit https://github.com/vim/vim/commit/1473551a4457d4920b235eeeb9f279e196ee7225
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
2
11197
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 10575
diff changeset
3 set belloff=all
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 10575
diff changeset
4
10242
a369d97995ff commit https://github.com/vim/vim/commit/b3435b0a3a0967115658d0a8c0224a28969cfa02
Christian Brabandt <cb@256bit.org>
parents: 10151
diff changeset
5 function! s:cleanup_buffers() abort
a369d97995ff commit https://github.com/vim/vim/commit/b3435b0a3a0967115658d0a8c0224a28969cfa02
Christian Brabandt <cb@256bit.org>
parents: 10151
diff changeset
6 for bnr in range(1, bufnr('$'))
a369d97995ff commit https://github.com/vim/vim/commit/b3435b0a3a0967115658d0a8c0224a28969cfa02
Christian Brabandt <cb@256bit.org>
parents: 10151
diff changeset
7 if bufloaded(bnr) && bufnr('%') != bnr
a369d97995ff commit https://github.com/vim/vim/commit/b3435b0a3a0967115658d0a8c0224a28969cfa02
Christian Brabandt <cb@256bit.org>
parents: 10151
diff changeset
8 execute 'bd! ' . bnr
a369d97995ff commit https://github.com/vim/vim/commit/b3435b0a3a0967115658d0a8c0224a28969cfa02
Christian Brabandt <cb@256bit.org>
parents: 10151
diff changeset
9 endif
a369d97995ff commit https://github.com/vim/vim/commit/b3435b0a3a0967115658d0a8c0224a28969cfa02
Christian Brabandt <cb@256bit.org>
parents: 10151
diff changeset
10 endfor
a369d97995ff commit https://github.com/vim/vim/commit/b3435b0a3a0967115658d0a8c0224a28969cfa02
Christian Brabandt <cb@256bit.org>
parents: 10151
diff changeset
11 endfunction
a369d97995ff commit https://github.com/vim/vim/commit/b3435b0a3a0967115658d0a8c0224a28969cfa02
Christian Brabandt <cb@256bit.org>
parents: 10151
diff changeset
12
8738
e770986c855a commit https://github.com/vim/vim/commit/1473551a4457d4920b235eeeb9f279e196ee7225
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
13 func Test_vim_did_enter()
e770986c855a commit https://github.com/vim/vim/commit/1473551a4457d4920b235eeeb9f279e196ee7225
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
14 call assert_false(v:vim_did_enter)
e770986c855a commit https://github.com/vim/vim/commit/1473551a4457d4920b235eeeb9f279e196ee7225
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
15
e770986c855a commit https://github.com/vim/vim/commit/1473551a4457d4920b235eeeb9f279e196ee7225
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
16 " This script will never reach the main loop, can't check if v:vim_did_enter
e770986c855a commit https://github.com/vim/vim/commit/1473551a4457d4920b235eeeb9f279e196ee7225
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
17 " becomes one.
e770986c855a commit https://github.com/vim/vim/commit/1473551a4457d4920b235eeeb9f279e196ee7225
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
18 endfunc
8947
c07caeb90a35 commit https://github.com/vim/vim/commit/40b1b5443c88fab77f1f7c6f9e801f7ffdb7e0a8
Christian Brabandt <cb@256bit.org>
parents: 8738
diff changeset
19
9106
97a9538c37ff commit https://github.com/vim/vim/commit/c67e89213476b5f4756d92208b57ce9ef4a4cf24
Christian Brabandt <cb@256bit.org>
parents: 8947
diff changeset
20 if has('timers')
97a9538c37ff commit https://github.com/vim/vim/commit/c67e89213476b5f4756d92208b57ce9ef4a4cf24
Christian Brabandt <cb@256bit.org>
parents: 8947
diff changeset
21 func ExitInsertMode(id)
97a9538c37ff commit https://github.com/vim/vim/commit/c67e89213476b5f4756d92208b57ce9ef4a4cf24
Christian Brabandt <cb@256bit.org>
parents: 8947
diff changeset
22 call feedkeys("\<Esc>")
97a9538c37ff commit https://github.com/vim/vim/commit/c67e89213476b5f4756d92208b57ce9ef4a4cf24
Christian Brabandt <cb@256bit.org>
parents: 8947
diff changeset
23 endfunc
97a9538c37ff commit https://github.com/vim/vim/commit/c67e89213476b5f4756d92208b57ce9ef4a4cf24
Christian Brabandt <cb@256bit.org>
parents: 8947
diff changeset
24
97a9538c37ff commit https://github.com/vim/vim/commit/c67e89213476b5f4756d92208b57ce9ef4a4cf24
Christian Brabandt <cb@256bit.org>
parents: 8947
diff changeset
25 func Test_cursorhold_insert()
10151
0be17a56e65f commit https://github.com/vim/vim/commit/f18c4dbbe545757ce93563b25380e6f010340b4e
Christian Brabandt <cb@256bit.org>
parents: 10141
diff changeset
26 " Need to move the cursor.
0be17a56e65f commit https://github.com/vim/vim/commit/f18c4dbbe545757ce93563b25380e6f010340b4e
Christian Brabandt <cb@256bit.org>
parents: 10141
diff changeset
27 call feedkeys("ggG", "xt")
0be17a56e65f commit https://github.com/vim/vim/commit/f18c4dbbe545757ce93563b25380e6f010340b4e
Christian Brabandt <cb@256bit.org>
parents: 10141
diff changeset
28
9106
97a9538c37ff commit https://github.com/vim/vim/commit/c67e89213476b5f4756d92208b57ce9ef4a4cf24
Christian Brabandt <cb@256bit.org>
parents: 8947
diff changeset
29 let g:triggered = 0
97a9538c37ff commit https://github.com/vim/vim/commit/c67e89213476b5f4756d92208b57ce9ef4a4cf24
Christian Brabandt <cb@256bit.org>
parents: 8947
diff changeset
30 au CursorHoldI * let g:triggered += 1
97a9538c37ff commit https://github.com/vim/vim/commit/c67e89213476b5f4756d92208b57ce9ef4a4cf24
Christian Brabandt <cb@256bit.org>
parents: 8947
diff changeset
31 set updatetime=20
97a9538c37ff commit https://github.com/vim/vim/commit/c67e89213476b5f4756d92208b57ce9ef4a4cf24
Christian Brabandt <cb@256bit.org>
parents: 8947
diff changeset
32 call timer_start(100, 'ExitInsertMode')
97a9538c37ff commit https://github.com/vim/vim/commit/c67e89213476b5f4756d92208b57ce9ef4a4cf24
Christian Brabandt <cb@256bit.org>
parents: 8947
diff changeset
33 call feedkeys('a', 'x!')
97a9538c37ff commit https://github.com/vim/vim/commit/c67e89213476b5f4756d92208b57ce9ef4a4cf24
Christian Brabandt <cb@256bit.org>
parents: 8947
diff changeset
34 call assert_equal(1, g:triggered)
9653
01c9630e80e0 commit https://github.com/vim/vim/commit/e99e84497b89e5f91df519790802770920ecf4fe
Christian Brabandt <cb@256bit.org>
parents: 9599
diff changeset
35 au! CursorHoldI
10141
b67088aae933 commit https://github.com/vim/vim/commit/aeac9006d5d14910f214f09df52c026a5936e737
Christian Brabandt <cb@256bit.org>
parents: 10114
diff changeset
36 set updatetime&
9106
97a9538c37ff commit https://github.com/vim/vim/commit/c67e89213476b5f4756d92208b57ce9ef4a4cf24
Christian Brabandt <cb@256bit.org>
parents: 8947
diff changeset
37 endfunc
97a9538c37ff commit https://github.com/vim/vim/commit/c67e89213476b5f4756d92208b57ce9ef4a4cf24
Christian Brabandt <cb@256bit.org>
parents: 8947
diff changeset
38
97a9538c37ff commit https://github.com/vim/vim/commit/c67e89213476b5f4756d92208b57ce9ef4a4cf24
Christian Brabandt <cb@256bit.org>
parents: 8947
diff changeset
39 func Test_cursorhold_insert_ctrl_x()
97a9538c37ff commit https://github.com/vim/vim/commit/c67e89213476b5f4756d92208b57ce9ef4a4cf24
Christian Brabandt <cb@256bit.org>
parents: 8947
diff changeset
40 let g:triggered = 0
97a9538c37ff commit https://github.com/vim/vim/commit/c67e89213476b5f4756d92208b57ce9ef4a4cf24
Christian Brabandt <cb@256bit.org>
parents: 8947
diff changeset
41 au CursorHoldI * let g:triggered += 1
97a9538c37ff commit https://github.com/vim/vim/commit/c67e89213476b5f4756d92208b57ce9ef4a4cf24
Christian Brabandt <cb@256bit.org>
parents: 8947
diff changeset
42 set updatetime=20
97a9538c37ff commit https://github.com/vim/vim/commit/c67e89213476b5f4756d92208b57ce9ef4a4cf24
Christian Brabandt <cb@256bit.org>
parents: 8947
diff changeset
43 call timer_start(100, 'ExitInsertMode')
97a9538c37ff commit https://github.com/vim/vim/commit/c67e89213476b5f4756d92208b57ce9ef4a4cf24
Christian Brabandt <cb@256bit.org>
parents: 8947
diff changeset
44 " CursorHoldI does not trigger after CTRL-X
97a9538c37ff commit https://github.com/vim/vim/commit/c67e89213476b5f4756d92208b57ce9ef4a4cf24
Christian Brabandt <cb@256bit.org>
parents: 8947
diff changeset
45 call feedkeys("a\<C-X>", 'x!')
97a9538c37ff commit https://github.com/vim/vim/commit/c67e89213476b5f4756d92208b57ce9ef4a4cf24
Christian Brabandt <cb@256bit.org>
parents: 8947
diff changeset
46 call assert_equal(0, g:triggered)
9653
01c9630e80e0 commit https://github.com/vim/vim/commit/e99e84497b89e5f91df519790802770920ecf4fe
Christian Brabandt <cb@256bit.org>
parents: 9599
diff changeset
47 au! CursorHoldI
10141
b67088aae933 commit https://github.com/vim/vim/commit/aeac9006d5d14910f214f09df52c026a5936e737
Christian Brabandt <cb@256bit.org>
parents: 10114
diff changeset
48 set updatetime&
9106
97a9538c37ff commit https://github.com/vim/vim/commit/c67e89213476b5f4756d92208b57ce9ef4a4cf24
Christian Brabandt <cb@256bit.org>
parents: 8947
diff changeset
49 endfunc
8947
c07caeb90a35 commit https://github.com/vim/vim/commit/40b1b5443c88fab77f1f7c6f9e801f7ffdb7e0a8
Christian Brabandt <cb@256bit.org>
parents: 8738
diff changeset
50 endif
c07caeb90a35 commit https://github.com/vim/vim/commit/40b1b5443c88fab77f1f7c6f9e801f7ffdb7e0a8
Christian Brabandt <cb@256bit.org>
parents: 8738
diff changeset
51
9106
97a9538c37ff commit https://github.com/vim/vim/commit/c67e89213476b5f4756d92208b57ce9ef4a4cf24
Christian Brabandt <cb@256bit.org>
parents: 8947
diff changeset
52 function Test_bufunload()
97a9538c37ff commit https://github.com/vim/vim/commit/c67e89213476b5f4756d92208b57ce9ef4a4cf24
Christian Brabandt <cb@256bit.org>
parents: 8947
diff changeset
53 augroup test_bufunload_group
97a9538c37ff commit https://github.com/vim/vim/commit/c67e89213476b5f4756d92208b57ce9ef4a4cf24
Christian Brabandt <cb@256bit.org>
parents: 8947
diff changeset
54 autocmd!
97a9538c37ff commit https://github.com/vim/vim/commit/c67e89213476b5f4756d92208b57ce9ef4a4cf24
Christian Brabandt <cb@256bit.org>
parents: 8947
diff changeset
55 autocmd BufUnload * call add(s:li, "bufunload")
97a9538c37ff commit https://github.com/vim/vim/commit/c67e89213476b5f4756d92208b57ce9ef4a4cf24
Christian Brabandt <cb@256bit.org>
parents: 8947
diff changeset
56 autocmd BufDelete * call add(s:li, "bufdelete")
97a9538c37ff commit https://github.com/vim/vim/commit/c67e89213476b5f4756d92208b57ce9ef4a4cf24
Christian Brabandt <cb@256bit.org>
parents: 8947
diff changeset
57 autocmd BufWipeout * call add(s:li, "bufwipeout")
97a9538c37ff commit https://github.com/vim/vim/commit/c67e89213476b5f4756d92208b57ce9ef4a4cf24
Christian Brabandt <cb@256bit.org>
parents: 8947
diff changeset
58 augroup END
97a9538c37ff commit https://github.com/vim/vim/commit/c67e89213476b5f4756d92208b57ce9ef4a4cf24
Christian Brabandt <cb@256bit.org>
parents: 8947
diff changeset
59
97a9538c37ff commit https://github.com/vim/vim/commit/c67e89213476b5f4756d92208b57ce9ef4a4cf24
Christian Brabandt <cb@256bit.org>
parents: 8947
diff changeset
60 let s:li=[]
97a9538c37ff commit https://github.com/vim/vim/commit/c67e89213476b5f4756d92208b57ce9ef4a4cf24
Christian Brabandt <cb@256bit.org>
parents: 8947
diff changeset
61 new
97a9538c37ff commit https://github.com/vim/vim/commit/c67e89213476b5f4756d92208b57ce9ef4a4cf24
Christian Brabandt <cb@256bit.org>
parents: 8947
diff changeset
62 setlocal bufhidden=
97a9538c37ff commit https://github.com/vim/vim/commit/c67e89213476b5f4756d92208b57ce9ef4a4cf24
Christian Brabandt <cb@256bit.org>
parents: 8947
diff changeset
63 bunload
97a9538c37ff commit https://github.com/vim/vim/commit/c67e89213476b5f4756d92208b57ce9ef4a4cf24
Christian Brabandt <cb@256bit.org>
parents: 8947
diff changeset
64 call assert_equal(["bufunload", "bufdelete"], s:li)
8947
c07caeb90a35 commit https://github.com/vim/vim/commit/40b1b5443c88fab77f1f7c6f9e801f7ffdb7e0a8
Christian Brabandt <cb@256bit.org>
parents: 8738
diff changeset
65
9106
97a9538c37ff commit https://github.com/vim/vim/commit/c67e89213476b5f4756d92208b57ce9ef4a4cf24
Christian Brabandt <cb@256bit.org>
parents: 8947
diff changeset
66 let s:li=[]
97a9538c37ff commit https://github.com/vim/vim/commit/c67e89213476b5f4756d92208b57ce9ef4a4cf24
Christian Brabandt <cb@256bit.org>
parents: 8947
diff changeset
67 new
97a9538c37ff commit https://github.com/vim/vim/commit/c67e89213476b5f4756d92208b57ce9ef4a4cf24
Christian Brabandt <cb@256bit.org>
parents: 8947
diff changeset
68 setlocal bufhidden=delete
97a9538c37ff commit https://github.com/vim/vim/commit/c67e89213476b5f4756d92208b57ce9ef4a4cf24
Christian Brabandt <cb@256bit.org>
parents: 8947
diff changeset
69 bunload
97a9538c37ff commit https://github.com/vim/vim/commit/c67e89213476b5f4756d92208b57ce9ef4a4cf24
Christian Brabandt <cb@256bit.org>
parents: 8947
diff changeset
70 call assert_equal(["bufunload", "bufdelete"], s:li)
8947
c07caeb90a35 commit https://github.com/vim/vim/commit/40b1b5443c88fab77f1f7c6f9e801f7ffdb7e0a8
Christian Brabandt <cb@256bit.org>
parents: 8738
diff changeset
71
9106
97a9538c37ff commit https://github.com/vim/vim/commit/c67e89213476b5f4756d92208b57ce9ef4a4cf24
Christian Brabandt <cb@256bit.org>
parents: 8947
diff changeset
72 let s:li=[]
97a9538c37ff commit https://github.com/vim/vim/commit/c67e89213476b5f4756d92208b57ce9ef4a4cf24
Christian Brabandt <cb@256bit.org>
parents: 8947
diff changeset
73 new
97a9538c37ff commit https://github.com/vim/vim/commit/c67e89213476b5f4756d92208b57ce9ef4a4cf24
Christian Brabandt <cb@256bit.org>
parents: 8947
diff changeset
74 setlocal bufhidden=unload
97a9538c37ff commit https://github.com/vim/vim/commit/c67e89213476b5f4756d92208b57ce9ef4a4cf24
Christian Brabandt <cb@256bit.org>
parents: 8947
diff changeset
75 bwipeout
97a9538c37ff commit https://github.com/vim/vim/commit/c67e89213476b5f4756d92208b57ce9ef4a4cf24
Christian Brabandt <cb@256bit.org>
parents: 8947
diff changeset
76 call assert_equal(["bufunload", "bufdelete", "bufwipeout"], s:li)
97a9538c37ff commit https://github.com/vim/vim/commit/c67e89213476b5f4756d92208b57ce9ef4a4cf24
Christian Brabandt <cb@256bit.org>
parents: 8947
diff changeset
77
9653
01c9630e80e0 commit https://github.com/vim/vim/commit/e99e84497b89e5f91df519790802770920ecf4fe
Christian Brabandt <cb@256bit.org>
parents: 9599
diff changeset
78 au! test_bufunload_group
9106
97a9538c37ff commit https://github.com/vim/vim/commit/c67e89213476b5f4756d92208b57ce9ef4a4cf24
Christian Brabandt <cb@256bit.org>
parents: 8947
diff changeset
79 augroup! test_bufunload_group
8947
c07caeb90a35 commit https://github.com/vim/vim/commit/40b1b5443c88fab77f1f7c6f9e801f7ffdb7e0a8
Christian Brabandt <cb@256bit.org>
parents: 8738
diff changeset
80 endfunc
9450
073aebdba121 commit https://github.com/vim/vim/commit/30445cb6e94698d212ba866ef3e4022ac625540a
Christian Brabandt <cb@256bit.org>
parents: 9106
diff changeset
81
073aebdba121 commit https://github.com/vim/vim/commit/30445cb6e94698d212ba866ef3e4022ac625540a
Christian Brabandt <cb@256bit.org>
parents: 9106
diff changeset
82 " SEGV occurs in older versions. (At least 7.4.2005 or older)
073aebdba121 commit https://github.com/vim/vim/commit/30445cb6e94698d212ba866ef3e4022ac625540a
Christian Brabandt <cb@256bit.org>
parents: 9106
diff changeset
83 function Test_autocmd_bufunload_with_tabnext()
073aebdba121 commit https://github.com/vim/vim/commit/30445cb6e94698d212ba866ef3e4022ac625540a
Christian Brabandt <cb@256bit.org>
parents: 9106
diff changeset
84 tabedit
073aebdba121 commit https://github.com/vim/vim/commit/30445cb6e94698d212ba866ef3e4022ac625540a
Christian Brabandt <cb@256bit.org>
parents: 9106
diff changeset
85 tabfirst
073aebdba121 commit https://github.com/vim/vim/commit/30445cb6e94698d212ba866ef3e4022ac625540a
Christian Brabandt <cb@256bit.org>
parents: 9106
diff changeset
86
073aebdba121 commit https://github.com/vim/vim/commit/30445cb6e94698d212ba866ef3e4022ac625540a
Christian Brabandt <cb@256bit.org>
parents: 9106
diff changeset
87 augroup test_autocmd_bufunload_with_tabnext_group
073aebdba121 commit https://github.com/vim/vim/commit/30445cb6e94698d212ba866ef3e4022ac625540a
Christian Brabandt <cb@256bit.org>
parents: 9106
diff changeset
88 autocmd!
073aebdba121 commit https://github.com/vim/vim/commit/30445cb6e94698d212ba866ef3e4022ac625540a
Christian Brabandt <cb@256bit.org>
parents: 9106
diff changeset
89 autocmd BufUnload <buffer> tabnext
073aebdba121 commit https://github.com/vim/vim/commit/30445cb6e94698d212ba866ef3e4022ac625540a
Christian Brabandt <cb@256bit.org>
parents: 9106
diff changeset
90 augroup END
073aebdba121 commit https://github.com/vim/vim/commit/30445cb6e94698d212ba866ef3e4022ac625540a
Christian Brabandt <cb@256bit.org>
parents: 9106
diff changeset
91
073aebdba121 commit https://github.com/vim/vim/commit/30445cb6e94698d212ba866ef3e4022ac625540a
Christian Brabandt <cb@256bit.org>
parents: 9106
diff changeset
92 quit
073aebdba121 commit https://github.com/vim/vim/commit/30445cb6e94698d212ba866ef3e4022ac625540a
Christian Brabandt <cb@256bit.org>
parents: 9106
diff changeset
93 call assert_equal(2, tabpagenr('$'))
073aebdba121 commit https://github.com/vim/vim/commit/30445cb6e94698d212ba866ef3e4022ac625540a
Christian Brabandt <cb@256bit.org>
parents: 9106
diff changeset
94
10106
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
95 autocmd! test_autocmd_bufunload_with_tabnext_group
9450
073aebdba121 commit https://github.com/vim/vim/commit/30445cb6e94698d212ba866ef3e4022ac625540a
Christian Brabandt <cb@256bit.org>
parents: 9106
diff changeset
96 augroup! test_autocmd_bufunload_with_tabnext_group
073aebdba121 commit https://github.com/vim/vim/commit/30445cb6e94698d212ba866ef3e4022ac625540a
Christian Brabandt <cb@256bit.org>
parents: 9106
diff changeset
97 tablast
073aebdba121 commit https://github.com/vim/vim/commit/30445cb6e94698d212ba866ef3e4022ac625540a
Christian Brabandt <cb@256bit.org>
parents: 9106
diff changeset
98 quit
073aebdba121 commit https://github.com/vim/vim/commit/30445cb6e94698d212ba866ef3e4022ac625540a
Christian Brabandt <cb@256bit.org>
parents: 9106
diff changeset
99 endfunc
9595
0190d5de215f commit https://github.com/vim/vim/commit/c917da4b3e8801a255dbefea8e4ed19c1c716dd8
Christian Brabandt <cb@256bit.org>
parents: 9450
diff changeset
100
10114
aa2219afd1c2 commit https://github.com/vim/vim/commit/f9e687e0681a250e1549ab27b6c7ef2c500395e3
Christian Brabandt <cb@256bit.org>
parents: 10106
diff changeset
101 function Test_autocmd_bufwinleave_with_tabfirst()
aa2219afd1c2 commit https://github.com/vim/vim/commit/f9e687e0681a250e1549ab27b6c7ef2c500395e3
Christian Brabandt <cb@256bit.org>
parents: 10106
diff changeset
102 tabedit
aa2219afd1c2 commit https://github.com/vim/vim/commit/f9e687e0681a250e1549ab27b6c7ef2c500395e3
Christian Brabandt <cb@256bit.org>
parents: 10106
diff changeset
103 augroup sample
aa2219afd1c2 commit https://github.com/vim/vim/commit/f9e687e0681a250e1549ab27b6c7ef2c500395e3
Christian Brabandt <cb@256bit.org>
parents: 10106
diff changeset
104 autocmd!
aa2219afd1c2 commit https://github.com/vim/vim/commit/f9e687e0681a250e1549ab27b6c7ef2c500395e3
Christian Brabandt <cb@256bit.org>
parents: 10106
diff changeset
105 autocmd BufWinLeave <buffer> tabfirst
aa2219afd1c2 commit https://github.com/vim/vim/commit/f9e687e0681a250e1549ab27b6c7ef2c500395e3
Christian Brabandt <cb@256bit.org>
parents: 10106
diff changeset
106 augroup END
aa2219afd1c2 commit https://github.com/vim/vim/commit/f9e687e0681a250e1549ab27b6c7ef2c500395e3
Christian Brabandt <cb@256bit.org>
parents: 10106
diff changeset
107 call setline(1, ['a', 'b', 'c'])
aa2219afd1c2 commit https://github.com/vim/vim/commit/f9e687e0681a250e1549ab27b6c7ef2c500395e3
Christian Brabandt <cb@256bit.org>
parents: 10106
diff changeset
108 edit! a.txt
10151
0be17a56e65f commit https://github.com/vim/vim/commit/f18c4dbbe545757ce93563b25380e6f010340b4e
Christian Brabandt <cb@256bit.org>
parents: 10141
diff changeset
109 tabclose
10114
aa2219afd1c2 commit https://github.com/vim/vim/commit/f9e687e0681a250e1549ab27b6c7ef2c500395e3
Christian Brabandt <cb@256bit.org>
parents: 10106
diff changeset
110 endfunc
aa2219afd1c2 commit https://github.com/vim/vim/commit/f9e687e0681a250e1549ab27b6c7ef2c500395e3
Christian Brabandt <cb@256bit.org>
parents: 10106
diff changeset
111
10106
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
112 " SEGV occurs in older versions. (At least 7.4.2321 or older)
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
113 function Test_autocmd_bufunload_avoiding_SEGV_01()
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
114 split aa.txt
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
115 let lastbuf = bufnr('$')
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
116
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
117 augroup test_autocmd_bufunload
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
118 autocmd!
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
119 exe 'autocmd BufUnload <buffer> ' . (lastbuf + 1) . 'bwipeout!'
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
120 augroup END
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
121
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
122 call assert_fails('edit bb.txt', 'E937:')
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
123
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
124 autocmd! test_autocmd_bufunload
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
125 augroup! test_autocmd_bufunload
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
126 bwipe! aa.txt
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
127 bwipe! bb.txt
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
128 endfunc
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
129
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
130 " SEGV occurs in older versions. (At least 7.4.2321 or older)
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
131 function Test_autocmd_bufunload_avoiding_SEGV_02()
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
132 setlocal buftype=nowrite
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
133 let lastbuf = bufnr('$')
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
134
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
135 augroup test_autocmd_bufunload
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
136 autocmd!
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
137 exe 'autocmd BufUnload <buffer> ' . (lastbuf + 1) . 'bwipeout!'
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
138 augroup END
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
139
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
140 normal! i1
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
141 call assert_fails('edit a.txt', 'E517:')
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
142 call feedkeys("\<CR>")
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
143
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
144 autocmd! test_autocmd_bufunload
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
145 augroup! test_autocmd_bufunload
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
146 bwipe! a.txt
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
147 endfunc
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
148
9595
0190d5de215f commit https://github.com/vim/vim/commit/c917da4b3e8801a255dbefea8e4ed19c1c716dd8
Christian Brabandt <cb@256bit.org>
parents: 9450
diff changeset
149 func Test_win_tab_autocmd()
0190d5de215f commit https://github.com/vim/vim/commit/c917da4b3e8801a255dbefea8e4ed19c1c716dd8
Christian Brabandt <cb@256bit.org>
parents: 9450
diff changeset
150 let g:record = []
0190d5de215f commit https://github.com/vim/vim/commit/c917da4b3e8801a255dbefea8e4ed19c1c716dd8
Christian Brabandt <cb@256bit.org>
parents: 9450
diff changeset
151
0190d5de215f commit https://github.com/vim/vim/commit/c917da4b3e8801a255dbefea8e4ed19c1c716dd8
Christian Brabandt <cb@256bit.org>
parents: 9450
diff changeset
152 augroup testing
0190d5de215f commit https://github.com/vim/vim/commit/c917da4b3e8801a255dbefea8e4ed19c1c716dd8
Christian Brabandt <cb@256bit.org>
parents: 9450
diff changeset
153 au WinNew * call add(g:record, 'WinNew')
0190d5de215f commit https://github.com/vim/vim/commit/c917da4b3e8801a255dbefea8e4ed19c1c716dd8
Christian Brabandt <cb@256bit.org>
parents: 9450
diff changeset
154 au WinEnter * call add(g:record, 'WinEnter')
0190d5de215f commit https://github.com/vim/vim/commit/c917da4b3e8801a255dbefea8e4ed19c1c716dd8
Christian Brabandt <cb@256bit.org>
parents: 9450
diff changeset
155 au WinLeave * call add(g:record, 'WinLeave')
0190d5de215f commit https://github.com/vim/vim/commit/c917da4b3e8801a255dbefea8e4ed19c1c716dd8
Christian Brabandt <cb@256bit.org>
parents: 9450
diff changeset
156 au TabNew * call add(g:record, 'TabNew')
9599
42a8a81decdf commit https://github.com/vim/vim/commit/12c11d553053f5a9eae9eb3c518279b12fa928c2
Christian Brabandt <cb@256bit.org>
parents: 9595
diff changeset
157 au TabClosed * call add(g:record, 'TabClosed')
9595
0190d5de215f commit https://github.com/vim/vim/commit/c917da4b3e8801a255dbefea8e4ed19c1c716dd8
Christian Brabandt <cb@256bit.org>
parents: 9450
diff changeset
158 au TabEnter * call add(g:record, 'TabEnter')
0190d5de215f commit https://github.com/vim/vim/commit/c917da4b3e8801a255dbefea8e4ed19c1c716dd8
Christian Brabandt <cb@256bit.org>
parents: 9450
diff changeset
159 au TabLeave * call add(g:record, 'TabLeave')
0190d5de215f commit https://github.com/vim/vim/commit/c917da4b3e8801a255dbefea8e4ed19c1c716dd8
Christian Brabandt <cb@256bit.org>
parents: 9450
diff changeset
160 augroup END
0190d5de215f commit https://github.com/vim/vim/commit/c917da4b3e8801a255dbefea8e4ed19c1c716dd8
Christian Brabandt <cb@256bit.org>
parents: 9450
diff changeset
161
0190d5de215f commit https://github.com/vim/vim/commit/c917da4b3e8801a255dbefea8e4ed19c1c716dd8
Christian Brabandt <cb@256bit.org>
parents: 9450
diff changeset
162 split
0190d5de215f commit https://github.com/vim/vim/commit/c917da4b3e8801a255dbefea8e4ed19c1c716dd8
Christian Brabandt <cb@256bit.org>
parents: 9450
diff changeset
163 tabnew
0190d5de215f commit https://github.com/vim/vim/commit/c917da4b3e8801a255dbefea8e4ed19c1c716dd8
Christian Brabandt <cb@256bit.org>
parents: 9450
diff changeset
164 close
0190d5de215f commit https://github.com/vim/vim/commit/c917da4b3e8801a255dbefea8e4ed19c1c716dd8
Christian Brabandt <cb@256bit.org>
parents: 9450
diff changeset
165 close
0190d5de215f commit https://github.com/vim/vim/commit/c917da4b3e8801a255dbefea8e4ed19c1c716dd8
Christian Brabandt <cb@256bit.org>
parents: 9450
diff changeset
166
0190d5de215f commit https://github.com/vim/vim/commit/c917da4b3e8801a255dbefea8e4ed19c1c716dd8
Christian Brabandt <cb@256bit.org>
parents: 9450
diff changeset
167 call assert_equal([
0190d5de215f commit https://github.com/vim/vim/commit/c917da4b3e8801a255dbefea8e4ed19c1c716dd8
Christian Brabandt <cb@256bit.org>
parents: 9450
diff changeset
168 \ 'WinLeave', 'WinNew', 'WinEnter',
0190d5de215f commit https://github.com/vim/vim/commit/c917da4b3e8801a255dbefea8e4ed19c1c716dd8
Christian Brabandt <cb@256bit.org>
parents: 9450
diff changeset
169 \ 'WinLeave', 'TabLeave', 'WinNew', 'WinEnter', 'TabNew', 'TabEnter',
9599
42a8a81decdf commit https://github.com/vim/vim/commit/12c11d553053f5a9eae9eb3c518279b12fa928c2
Christian Brabandt <cb@256bit.org>
parents: 9595
diff changeset
170 \ 'WinLeave', 'TabLeave', 'TabClosed', 'WinEnter', 'TabEnter',
42a8a81decdf commit https://github.com/vim/vim/commit/12c11d553053f5a9eae9eb3c518279b12fa928c2
Christian Brabandt <cb@256bit.org>
parents: 9595
diff changeset
171 \ 'WinLeave', 'WinEnter'
42a8a81decdf commit https://github.com/vim/vim/commit/12c11d553053f5a9eae9eb3c518279b12fa928c2
Christian Brabandt <cb@256bit.org>
parents: 9595
diff changeset
172 \ ], g:record)
42a8a81decdf commit https://github.com/vim/vim/commit/12c11d553053f5a9eae9eb3c518279b12fa928c2
Christian Brabandt <cb@256bit.org>
parents: 9595
diff changeset
173
42a8a81decdf commit https://github.com/vim/vim/commit/12c11d553053f5a9eae9eb3c518279b12fa928c2
Christian Brabandt <cb@256bit.org>
parents: 9595
diff changeset
174 let g:record = []
42a8a81decdf commit https://github.com/vim/vim/commit/12c11d553053f5a9eae9eb3c518279b12fa928c2
Christian Brabandt <cb@256bit.org>
parents: 9595
diff changeset
175 tabnew somefile
42a8a81decdf commit https://github.com/vim/vim/commit/12c11d553053f5a9eae9eb3c518279b12fa928c2
Christian Brabandt <cb@256bit.org>
parents: 9595
diff changeset
176 tabnext
42a8a81decdf commit https://github.com/vim/vim/commit/12c11d553053f5a9eae9eb3c518279b12fa928c2
Christian Brabandt <cb@256bit.org>
parents: 9595
diff changeset
177 bwipe somefile
42a8a81decdf commit https://github.com/vim/vim/commit/12c11d553053f5a9eae9eb3c518279b12fa928c2
Christian Brabandt <cb@256bit.org>
parents: 9595
diff changeset
178
42a8a81decdf commit https://github.com/vim/vim/commit/12c11d553053f5a9eae9eb3c518279b12fa928c2
Christian Brabandt <cb@256bit.org>
parents: 9595
diff changeset
179 call assert_equal([
42a8a81decdf commit https://github.com/vim/vim/commit/12c11d553053f5a9eae9eb3c518279b12fa928c2
Christian Brabandt <cb@256bit.org>
parents: 9595
diff changeset
180 \ 'WinLeave', 'TabLeave', 'WinNew', 'WinEnter', 'TabNew', 'TabEnter',
9595
0190d5de215f commit https://github.com/vim/vim/commit/c917da4b3e8801a255dbefea8e4ed19c1c716dd8
Christian Brabandt <cb@256bit.org>
parents: 9450
diff changeset
181 \ 'WinLeave', 'TabLeave', 'WinEnter', 'TabEnter',
9599
42a8a81decdf commit https://github.com/vim/vim/commit/12c11d553053f5a9eae9eb3c518279b12fa928c2
Christian Brabandt <cb@256bit.org>
parents: 9595
diff changeset
182 \ 'TabClosed'
9595
0190d5de215f commit https://github.com/vim/vim/commit/c917da4b3e8801a255dbefea8e4ed19c1c716dd8
Christian Brabandt <cb@256bit.org>
parents: 9450
diff changeset
183 \ ], g:record)
0190d5de215f commit https://github.com/vim/vim/commit/c917da4b3e8801a255dbefea8e4ed19c1c716dd8
Christian Brabandt <cb@256bit.org>
parents: 9450
diff changeset
184
0190d5de215f commit https://github.com/vim/vim/commit/c917da4b3e8801a255dbefea8e4ed19c1c716dd8
Christian Brabandt <cb@256bit.org>
parents: 9450
diff changeset
185 augroup testing
0190d5de215f commit https://github.com/vim/vim/commit/c917da4b3e8801a255dbefea8e4ed19c1c716dd8
Christian Brabandt <cb@256bit.org>
parents: 9450
diff changeset
186 au!
0190d5de215f commit https://github.com/vim/vim/commit/c917da4b3e8801a255dbefea8e4ed19c1c716dd8
Christian Brabandt <cb@256bit.org>
parents: 9450
diff changeset
187 augroup END
0190d5de215f commit https://github.com/vim/vim/commit/c917da4b3e8801a255dbefea8e4ed19c1c716dd8
Christian Brabandt <cb@256bit.org>
parents: 9450
diff changeset
188 unlet g:record
0190d5de215f commit https://github.com/vim/vim/commit/c917da4b3e8801a255dbefea8e4ed19c1c716dd8
Christian Brabandt <cb@256bit.org>
parents: 9450
diff changeset
189 endfunc
9653
01c9630e80e0 commit https://github.com/vim/vim/commit/e99e84497b89e5f91df519790802770920ecf4fe
Christian Brabandt <cb@256bit.org>
parents: 9599
diff changeset
190
01c9630e80e0 commit https://github.com/vim/vim/commit/e99e84497b89e5f91df519790802770920ecf4fe
Christian Brabandt <cb@256bit.org>
parents: 9599
diff changeset
191 func s:AddAnAutocmd()
01c9630e80e0 commit https://github.com/vim/vim/commit/e99e84497b89e5f91df519790802770920ecf4fe
Christian Brabandt <cb@256bit.org>
parents: 9599
diff changeset
192 augroup vimBarTest
01c9630e80e0 commit https://github.com/vim/vim/commit/e99e84497b89e5f91df519790802770920ecf4fe
Christian Brabandt <cb@256bit.org>
parents: 9599
diff changeset
193 au BufReadCmd * echo 'hello'
01c9630e80e0 commit https://github.com/vim/vim/commit/e99e84497b89e5f91df519790802770920ecf4fe
Christian Brabandt <cb@256bit.org>
parents: 9599
diff changeset
194 augroup END
01c9630e80e0 commit https://github.com/vim/vim/commit/e99e84497b89e5f91df519790802770920ecf4fe
Christian Brabandt <cb@256bit.org>
parents: 9599
diff changeset
195 call assert_equal(3, len(split(execute('au vimBarTest'), "\n")))
01c9630e80e0 commit https://github.com/vim/vim/commit/e99e84497b89e5f91df519790802770920ecf4fe
Christian Brabandt <cb@256bit.org>
parents: 9599
diff changeset
196 endfunc
01c9630e80e0 commit https://github.com/vim/vim/commit/e99e84497b89e5f91df519790802770920ecf4fe
Christian Brabandt <cb@256bit.org>
parents: 9599
diff changeset
197
01c9630e80e0 commit https://github.com/vim/vim/commit/e99e84497b89e5f91df519790802770920ecf4fe
Christian Brabandt <cb@256bit.org>
parents: 9599
diff changeset
198 func Test_early_bar()
01c9630e80e0 commit https://github.com/vim/vim/commit/e99e84497b89e5f91df519790802770920ecf4fe
Christian Brabandt <cb@256bit.org>
parents: 9599
diff changeset
199 " test that a bar is recognized before the {event}
01c9630e80e0 commit https://github.com/vim/vim/commit/e99e84497b89e5f91df519790802770920ecf4fe
Christian Brabandt <cb@256bit.org>
parents: 9599
diff changeset
200 call s:AddAnAutocmd()
01c9630e80e0 commit https://github.com/vim/vim/commit/e99e84497b89e5f91df519790802770920ecf4fe
Christian Brabandt <cb@256bit.org>
parents: 9599
diff changeset
201 augroup vimBarTest | au! | augroup END
01c9630e80e0 commit https://github.com/vim/vim/commit/e99e84497b89e5f91df519790802770920ecf4fe
Christian Brabandt <cb@256bit.org>
parents: 9599
diff changeset
202 call assert_equal(1, len(split(execute('au vimBarTest'), "\n")))
01c9630e80e0 commit https://github.com/vim/vim/commit/e99e84497b89e5f91df519790802770920ecf4fe
Christian Brabandt <cb@256bit.org>
parents: 9599
diff changeset
203
01c9630e80e0 commit https://github.com/vim/vim/commit/e99e84497b89e5f91df519790802770920ecf4fe
Christian Brabandt <cb@256bit.org>
parents: 9599
diff changeset
204 call s:AddAnAutocmd()
01c9630e80e0 commit https://github.com/vim/vim/commit/e99e84497b89e5f91df519790802770920ecf4fe
Christian Brabandt <cb@256bit.org>
parents: 9599
diff changeset
205 augroup vimBarTest| au!| augroup END
01c9630e80e0 commit https://github.com/vim/vim/commit/e99e84497b89e5f91df519790802770920ecf4fe
Christian Brabandt <cb@256bit.org>
parents: 9599
diff changeset
206 call assert_equal(1, len(split(execute('au vimBarTest'), "\n")))
01c9630e80e0 commit https://github.com/vim/vim/commit/e99e84497b89e5f91df519790802770920ecf4fe
Christian Brabandt <cb@256bit.org>
parents: 9599
diff changeset
207
01c9630e80e0 commit https://github.com/vim/vim/commit/e99e84497b89e5f91df519790802770920ecf4fe
Christian Brabandt <cb@256bit.org>
parents: 9599
diff changeset
208 " test that a bar is recognized after the {event}
01c9630e80e0 commit https://github.com/vim/vim/commit/e99e84497b89e5f91df519790802770920ecf4fe
Christian Brabandt <cb@256bit.org>
parents: 9599
diff changeset
209 call s:AddAnAutocmd()
01c9630e80e0 commit https://github.com/vim/vim/commit/e99e84497b89e5f91df519790802770920ecf4fe
Christian Brabandt <cb@256bit.org>
parents: 9599
diff changeset
210 augroup vimBarTest| au!BufReadCmd| augroup END
01c9630e80e0 commit https://github.com/vim/vim/commit/e99e84497b89e5f91df519790802770920ecf4fe
Christian Brabandt <cb@256bit.org>
parents: 9599
diff changeset
211 call assert_equal(1, len(split(execute('au vimBarTest'), "\n")))
01c9630e80e0 commit https://github.com/vim/vim/commit/e99e84497b89e5f91df519790802770920ecf4fe
Christian Brabandt <cb@256bit.org>
parents: 9599
diff changeset
212
01c9630e80e0 commit https://github.com/vim/vim/commit/e99e84497b89e5f91df519790802770920ecf4fe
Christian Brabandt <cb@256bit.org>
parents: 9599
diff changeset
213 " test that a bar is recognized after the {group}
01c9630e80e0 commit https://github.com/vim/vim/commit/e99e84497b89e5f91df519790802770920ecf4fe
Christian Brabandt <cb@256bit.org>
parents: 9599
diff changeset
214 call s:AddAnAutocmd()
01c9630e80e0 commit https://github.com/vim/vim/commit/e99e84497b89e5f91df519790802770920ecf4fe
Christian Brabandt <cb@256bit.org>
parents: 9599
diff changeset
215 au! vimBarTest|echo 'hello'
01c9630e80e0 commit https://github.com/vim/vim/commit/e99e84497b89e5f91df519790802770920ecf4fe
Christian Brabandt <cb@256bit.org>
parents: 9599
diff changeset
216 call assert_equal(1, len(split(execute('au vimBarTest'), "\n")))
01c9630e80e0 commit https://github.com/vim/vim/commit/e99e84497b89e5f91df519790802770920ecf4fe
Christian Brabandt <cb@256bit.org>
parents: 9599
diff changeset
217 endfunc
9682
a98607bb756c commit https://github.com/vim/vim/commit/f2c4c391192cab6e923b1a418d4af09106fba25f
Christian Brabandt <cb@256bit.org>
parents: 9653
diff changeset
218
10058
65e43481d7de commit https://github.com/vim/vim/commit/5c80908ced601be6db7554a147cdb0f98ac8daa1
Christian Brabandt <cb@256bit.org>
parents: 9682
diff changeset
219 func RemoveGroup()
65e43481d7de commit https://github.com/vim/vim/commit/5c80908ced601be6db7554a147cdb0f98ac8daa1
Christian Brabandt <cb@256bit.org>
parents: 9682
diff changeset
220 autocmd! StartOK
65e43481d7de commit https://github.com/vim/vim/commit/5c80908ced601be6db7554a147cdb0f98ac8daa1
Christian Brabandt <cb@256bit.org>
parents: 9682
diff changeset
221 augroup! StartOK
65e43481d7de commit https://github.com/vim/vim/commit/5c80908ced601be6db7554a147cdb0f98ac8daa1
Christian Brabandt <cb@256bit.org>
parents: 9682
diff changeset
222 endfunc
65e43481d7de commit https://github.com/vim/vim/commit/5c80908ced601be6db7554a147cdb0f98ac8daa1
Christian Brabandt <cb@256bit.org>
parents: 9682
diff changeset
223
9682
a98607bb756c commit https://github.com/vim/vim/commit/f2c4c391192cab6e923b1a418d4af09106fba25f
Christian Brabandt <cb@256bit.org>
parents: 9653
diff changeset
224 func Test_augroup_warning()
a98607bb756c commit https://github.com/vim/vim/commit/f2c4c391192cab6e923b1a418d4af09106fba25f
Christian Brabandt <cb@256bit.org>
parents: 9653
diff changeset
225 augroup TheWarning
a98607bb756c commit https://github.com/vim/vim/commit/f2c4c391192cab6e923b1a418d4af09106fba25f
Christian Brabandt <cb@256bit.org>
parents: 9653
diff changeset
226 au VimEnter * echo 'entering'
a98607bb756c commit https://github.com/vim/vim/commit/f2c4c391192cab6e923b1a418d4af09106fba25f
Christian Brabandt <cb@256bit.org>
parents: 9653
diff changeset
227 augroup END
a98607bb756c commit https://github.com/vim/vim/commit/f2c4c391192cab6e923b1a418d4af09106fba25f
Christian Brabandt <cb@256bit.org>
parents: 9653
diff changeset
228 call assert_true(match(execute('au VimEnter'), "TheWarning.*VimEnter") >= 0)
a98607bb756c commit https://github.com/vim/vim/commit/f2c4c391192cab6e923b1a418d4af09106fba25f
Christian Brabandt <cb@256bit.org>
parents: 9653
diff changeset
229 redir => res
a98607bb756c commit https://github.com/vim/vim/commit/f2c4c391192cab6e923b1a418d4af09106fba25f
Christian Brabandt <cb@256bit.org>
parents: 9653
diff changeset
230 augroup! TheWarning
a98607bb756c commit https://github.com/vim/vim/commit/f2c4c391192cab6e923b1a418d4af09106fba25f
Christian Brabandt <cb@256bit.org>
parents: 9653
diff changeset
231 redir END
a98607bb756c commit https://github.com/vim/vim/commit/f2c4c391192cab6e923b1a418d4af09106fba25f
Christian Brabandt <cb@256bit.org>
parents: 9653
diff changeset
232 call assert_true(match(res, "W19:") >= 0)
a98607bb756c commit https://github.com/vim/vim/commit/f2c4c391192cab6e923b1a418d4af09106fba25f
Christian Brabandt <cb@256bit.org>
parents: 9653
diff changeset
233 call assert_true(match(execute('au VimEnter'), "-Deleted-.*VimEnter") >= 0)
a98607bb756c commit https://github.com/vim/vim/commit/f2c4c391192cab6e923b1a418d4af09106fba25f
Christian Brabandt <cb@256bit.org>
parents: 9653
diff changeset
234
a98607bb756c commit https://github.com/vim/vim/commit/f2c4c391192cab6e923b1a418d4af09106fba25f
Christian Brabandt <cb@256bit.org>
parents: 9653
diff changeset
235 " check "Another" does not take the pace of the deleted entry
a98607bb756c commit https://github.com/vim/vim/commit/f2c4c391192cab6e923b1a418d4af09106fba25f
Christian Brabandt <cb@256bit.org>
parents: 9653
diff changeset
236 augroup Another
a98607bb756c commit https://github.com/vim/vim/commit/f2c4c391192cab6e923b1a418d4af09106fba25f
Christian Brabandt <cb@256bit.org>
parents: 9653
diff changeset
237 augroup END
a98607bb756c commit https://github.com/vim/vim/commit/f2c4c391192cab6e923b1a418d4af09106fba25f
Christian Brabandt <cb@256bit.org>
parents: 9653
diff changeset
238 call assert_true(match(execute('au VimEnter'), "-Deleted-.*VimEnter") >= 0)
10141
b67088aae933 commit https://github.com/vim/vim/commit/aeac9006d5d14910f214f09df52c026a5936e737
Christian Brabandt <cb@256bit.org>
parents: 10114
diff changeset
239 augroup! Another
10058
65e43481d7de commit https://github.com/vim/vim/commit/5c80908ced601be6db7554a147cdb0f98ac8daa1
Christian Brabandt <cb@256bit.org>
parents: 9682
diff changeset
240
65e43481d7de commit https://github.com/vim/vim/commit/5c80908ced601be6db7554a147cdb0f98ac8daa1
Christian Brabandt <cb@256bit.org>
parents: 9682
diff changeset
241 " no warning for postpone aucmd delete
65e43481d7de commit https://github.com/vim/vim/commit/5c80908ced601be6db7554a147cdb0f98ac8daa1
Christian Brabandt <cb@256bit.org>
parents: 9682
diff changeset
242 augroup StartOK
65e43481d7de commit https://github.com/vim/vim/commit/5c80908ced601be6db7554a147cdb0f98ac8daa1
Christian Brabandt <cb@256bit.org>
parents: 9682
diff changeset
243 au VimEnter * call RemoveGroup()
65e43481d7de commit https://github.com/vim/vim/commit/5c80908ced601be6db7554a147cdb0f98ac8daa1
Christian Brabandt <cb@256bit.org>
parents: 9682
diff changeset
244 augroup END
65e43481d7de commit https://github.com/vim/vim/commit/5c80908ced601be6db7554a147cdb0f98ac8daa1
Christian Brabandt <cb@256bit.org>
parents: 9682
diff changeset
245 call assert_true(match(execute('au VimEnter'), "StartOK.*VimEnter") >= 0)
65e43481d7de commit https://github.com/vim/vim/commit/5c80908ced601be6db7554a147cdb0f98ac8daa1
Christian Brabandt <cb@256bit.org>
parents: 9682
diff changeset
246 redir => res
65e43481d7de commit https://github.com/vim/vim/commit/5c80908ced601be6db7554a147cdb0f98ac8daa1
Christian Brabandt <cb@256bit.org>
parents: 9682
diff changeset
247 doautocmd VimEnter
65e43481d7de commit https://github.com/vim/vim/commit/5c80908ced601be6db7554a147cdb0f98ac8daa1
Christian Brabandt <cb@256bit.org>
parents: 9682
diff changeset
248 redir END
65e43481d7de commit https://github.com/vim/vim/commit/5c80908ced601be6db7554a147cdb0f98ac8daa1
Christian Brabandt <cb@256bit.org>
parents: 9682
diff changeset
249 call assert_true(match(res, "W19:") < 0)
10086
1de911ef1edf commit https://github.com/vim/vim/commit/de653f08805dde14424d417502a0480a6ad292f8
Christian Brabandt <cb@256bit.org>
parents: 10084
diff changeset
250 au! VimEnter
9682
a98607bb756c commit https://github.com/vim/vim/commit/f2c4c391192cab6e923b1a418d4af09106fba25f
Christian Brabandt <cb@256bit.org>
parents: 9653
diff changeset
251 endfunc
10084
3e410e6e1986 commit https://github.com/vim/vim/commit/b62cc36a600e2e1e5a1d1d484fef89898c847c4c
Christian Brabandt <cb@256bit.org>
parents: 10058
diff changeset
252
3e410e6e1986 commit https://github.com/vim/vim/commit/b62cc36a600e2e1e5a1d1d484fef89898c847c4c
Christian Brabandt <cb@256bit.org>
parents: 10058
diff changeset
253 func Test_augroup_deleted()
10086
1de911ef1edf commit https://github.com/vim/vim/commit/de653f08805dde14424d417502a0480a6ad292f8
Christian Brabandt <cb@256bit.org>
parents: 10084
diff changeset
254 " This caused a crash before E936 was introduced
10084
3e410e6e1986 commit https://github.com/vim/vim/commit/b62cc36a600e2e1e5a1d1d484fef89898c847c4c
Christian Brabandt <cb@256bit.org>
parents: 10058
diff changeset
255 augroup x
10086
1de911ef1edf commit https://github.com/vim/vim/commit/de653f08805dde14424d417502a0480a6ad292f8
Christian Brabandt <cb@256bit.org>
parents: 10084
diff changeset
256 call assert_fails('augroup! x', 'E936:')
1de911ef1edf commit https://github.com/vim/vim/commit/de653f08805dde14424d417502a0480a6ad292f8
Christian Brabandt <cb@256bit.org>
parents: 10084
diff changeset
257 au VimEnter * echo
1de911ef1edf commit https://github.com/vim/vim/commit/de653f08805dde14424d417502a0480a6ad292f8
Christian Brabandt <cb@256bit.org>
parents: 10084
diff changeset
258 augroup end
10084
3e410e6e1986 commit https://github.com/vim/vim/commit/b62cc36a600e2e1e5a1d1d484fef89898c847c4c
Christian Brabandt <cb@256bit.org>
parents: 10058
diff changeset
259 augroup! x
10086
1de911ef1edf commit https://github.com/vim/vim/commit/de653f08805dde14424d417502a0480a6ad292f8
Christian Brabandt <cb@256bit.org>
parents: 10084
diff changeset
260 call assert_true(match(execute('au VimEnter'), "-Deleted-.*VimEnter") >= 0)
1de911ef1edf commit https://github.com/vim/vim/commit/de653f08805dde14424d417502a0480a6ad292f8
Christian Brabandt <cb@256bit.org>
parents: 10084
diff changeset
261 au! VimEnter
10084
3e410e6e1986 commit https://github.com/vim/vim/commit/b62cc36a600e2e1e5a1d1d484fef89898c847c4c
Christian Brabandt <cb@256bit.org>
parents: 10058
diff changeset
262 endfunc
3e410e6e1986 commit https://github.com/vim/vim/commit/b62cc36a600e2e1e5a1d1d484fef89898c847c4c
Christian Brabandt <cb@256bit.org>
parents: 10058
diff changeset
263
10106
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
264 " Tests for autocommands on :close command.
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
265 " This used to be in test13.
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
266 func Test_three_windows()
10242
a369d97995ff commit https://github.com/vim/vim/commit/b3435b0a3a0967115658d0a8c0224a28969cfa02
Christian Brabandt <cb@256bit.org>
parents: 10151
diff changeset
267 " Clean up buffers, because in some cases this function fails.
a369d97995ff commit https://github.com/vim/vim/commit/b3435b0a3a0967115658d0a8c0224a28969cfa02
Christian Brabandt <cb@256bit.org>
parents: 10151
diff changeset
268 call s:cleanup_buffers()
a369d97995ff commit https://github.com/vim/vim/commit/b3435b0a3a0967115658d0a8c0224a28969cfa02
Christian Brabandt <cb@256bit.org>
parents: 10151
diff changeset
269
10106
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
270 " Write three files and open them, each in a window.
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
271 " Then go to next window, with autocommand that deletes the previous one.
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
272 " Do this twice, writing the file.
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
273 e! Xtestje1
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
274 call setline(1, 'testje1')
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
275 w
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
276 sp Xtestje2
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
277 call setline(1, 'testje2')
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
278 w
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
279 sp Xtestje3
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
280 call setline(1, 'testje3')
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
281 w
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
282 wincmd w
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
283 au WinLeave Xtestje2 bwipe
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
284 wincmd w
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
285 call assert_equal('Xtestje1', expand('%'))
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
286
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
287 au WinLeave Xtestje1 bwipe Xtestje3
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
288 close
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
289 call assert_equal('Xtestje1', expand('%'))
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
290
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
291 " Test deleting the buffer on a Unload event. If this goes wrong there
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
292 " will be the ATTENTION prompt.
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
293 e Xtestje1
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
294 au!
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
295 au! BufUnload Xtestje1 bwipe
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
296 call assert_fails('e Xtestje3', 'E937:')
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
297 call assert_equal('Xtestje3', expand('%'))
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
298
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
299 e Xtestje2
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
300 sp Xtestje1
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
301 call assert_fails('e', 'E937:')
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
302 call assert_equal('Xtestje2', expand('%'))
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
303
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
304 " Test changing buffers in a BufWipeout autocommand. If this goes wrong
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
305 " there are ml_line errors and/or a Crash.
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
306 au!
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
307 only
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
308 e Xanother
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
309 e Xtestje1
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
310 bwipe Xtestje2
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
311 bwipe Xtestje3
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
312 au BufWipeout Xtestje1 buf Xtestje1
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
313 bwipe
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
314 call assert_equal('Xanother', expand('%'))
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
315
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
316 only
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
317 help
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
318 wincmd w
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
319 1quit
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
320 call assert_equal('Xanother', expand('%'))
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
321
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
322 au!
11197
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 10575
diff changeset
323 enew
7f355d8cd634 patch 8.0.0485: not all windows commands are tested
Christian Brabandt <cb@256bit.org>
parents: 10575
diff changeset
324 bwipe! Xtestje1
10106
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
325 call delete('Xtestje1')
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
326 call delete('Xtestje2')
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
327 call delete('Xtestje3')
58e6dd1d8be3 commit https://github.com/vim/vim/commit/e0ab94e7123ca7855f45919114d948ef2bc1e8c3
Christian Brabandt <cb@256bit.org>
parents: 10086
diff changeset
328 endfunc
10575
01a5f64a7a20 patch 8.0.0177: BufEnter autocommand not fired for a directory
Christian Brabandt <cb@256bit.org>
parents: 10242
diff changeset
329
01a5f64a7a20 patch 8.0.0177: BufEnter autocommand not fired for a directory
Christian Brabandt <cb@256bit.org>
parents: 10242
diff changeset
330 func Test_BufEnter()
01a5f64a7a20 patch 8.0.0177: BufEnter autocommand not fired for a directory
Christian Brabandt <cb@256bit.org>
parents: 10242
diff changeset
331 au! BufEnter
01a5f64a7a20 patch 8.0.0177: BufEnter autocommand not fired for a directory
Christian Brabandt <cb@256bit.org>
parents: 10242
diff changeset
332 au Bufenter * let val = val . '+'
01a5f64a7a20 patch 8.0.0177: BufEnter autocommand not fired for a directory
Christian Brabandt <cb@256bit.org>
parents: 10242
diff changeset
333 let g:val = ''
01a5f64a7a20 patch 8.0.0177: BufEnter autocommand not fired for a directory
Christian Brabandt <cb@256bit.org>
parents: 10242
diff changeset
334 split NewFile
01a5f64a7a20 patch 8.0.0177: BufEnter autocommand not fired for a directory
Christian Brabandt <cb@256bit.org>
parents: 10242
diff changeset
335 call assert_equal('+', g:val)
01a5f64a7a20 patch 8.0.0177: BufEnter autocommand not fired for a directory
Christian Brabandt <cb@256bit.org>
parents: 10242
diff changeset
336 bwipe!
01a5f64a7a20 patch 8.0.0177: BufEnter autocommand not fired for a directory
Christian Brabandt <cb@256bit.org>
parents: 10242
diff changeset
337 call assert_equal('++', g:val)
01a5f64a7a20 patch 8.0.0177: BufEnter autocommand not fired for a directory
Christian Brabandt <cb@256bit.org>
parents: 10242
diff changeset
338
01a5f64a7a20 patch 8.0.0177: BufEnter autocommand not fired for a directory
Christian Brabandt <cb@256bit.org>
parents: 10242
diff changeset
339 " Also get BufEnter when editing a directory
01a5f64a7a20 patch 8.0.0177: BufEnter autocommand not fired for a directory
Christian Brabandt <cb@256bit.org>
parents: 10242
diff changeset
340 call mkdir('Xdir')
01a5f64a7a20 patch 8.0.0177: BufEnter autocommand not fired for a directory
Christian Brabandt <cb@256bit.org>
parents: 10242
diff changeset
341 split Xdir
01a5f64a7a20 patch 8.0.0177: BufEnter autocommand not fired for a directory
Christian Brabandt <cb@256bit.org>
parents: 10242
diff changeset
342 call assert_equal('+++', g:val)
01a5f64a7a20 patch 8.0.0177: BufEnter autocommand not fired for a directory
Christian Brabandt <cb@256bit.org>
parents: 10242
diff changeset
343 bwipe!
01a5f64a7a20 patch 8.0.0177: BufEnter autocommand not fired for a directory
Christian Brabandt <cb@256bit.org>
parents: 10242
diff changeset
344
01a5f64a7a20 patch 8.0.0177: BufEnter autocommand not fired for a directory
Christian Brabandt <cb@256bit.org>
parents: 10242
diff changeset
345 call delete('Xdir', 'd')
01a5f64a7a20 patch 8.0.0177: BufEnter autocommand not fired for a directory
Christian Brabandt <cb@256bit.org>
parents: 10242
diff changeset
346 au! BufEnter
01a5f64a7a20 patch 8.0.0177: BufEnter autocommand not fired for a directory
Christian Brabandt <cb@256bit.org>
parents: 10242
diff changeset
347 endfunc
11199
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
348
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
349 " Closing a window might cause an endless loop
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
350 " E814 for older Vims
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
351 function Test_autocmd_bufwipe_in_SessLoadPost()
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
352 tabnew
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
353 set noswapfile
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
354 let g:bufnr=bufnr('%')
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
355 mksession!
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
356
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
357 let content=['set nocp noswapfile',
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
358 \ 'let v:swapchoice="e"',
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
359 \ 'augroup test_autocmd_sessionload',
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
360 \ 'autocmd!',
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
361 \ 'autocmd SessionLoadPost * 4bw!',
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
362 \ 'augroup END'
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
363 \ ]
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
364 call writefile(content, 'Xvimrc')
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
365 let a=system(v:progpath. ' -u Xvimrc --noplugins -S Session.vim')
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
366 call assert_match('E814', a)
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
367
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
368 unlet! g:bufnr
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
369 set swapfile
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
370 for file in ['Session.vim', 'Xvimrc']
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
371 call delete(file)
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
372 endfor
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
373 endfunc
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
374
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
375 " SEGV occurs in older versions.
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
376 function Test_autocmd_bufwipe_in_SessLoadPost2()
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
377 tabnew
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
378 set noswapfile
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
379 let g:bufnr=bufnr('%')
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
380 mksession!
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
381
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
382 let content = ['set nocp noswapfile',
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
383 \ 'function! DeleteInactiveBufs()',
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
384 \ ' tabfirst',
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
385 \ ' let tabblist = []',
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
386 \ ' for i in range(1, tabpagenr(''$''))',
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
387 \ ' call extend(tabblist, tabpagebuflist(i))',
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
388 \ ' endfor',
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
389 \ ' for b in range(1, bufnr(''$''))',
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
390 \ ' if bufexists(b) && buflisted(b) && (index(tabblist, b) == -1 || bufname(b) =~# ''^$'')',
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
391 \ ' exec ''bwipeout '' . b',
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
392 \ ' endif',
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
393 \ ' endfor',
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
394 \ 'call append("1", "SessionLoadPost DONE")',
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
395 \ 'endfunction',
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
396 \ 'au SessionLoadPost * call DeleteInactiveBufs()']
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
397 call writefile(content, 'Xvimrc')
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
398 let a=system(v:progpath. ' -u Xvimrc --noplugins -S Session.vim')
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
399 " this probably only matches on unix
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
400 if has("unix")
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
401 call assert_notmatch('Caught deadly signal SEGV', a)
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
402 endif
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
403 call assert_match('SessionLoadPost DONE', a)
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
404
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
405 unlet! g:bufnr
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
406 set swapfile
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
407 for file in ['Session.vim', 'Xvimrc']
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
408 call delete(file)
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
409 endfor
e08ead1d269f patch 8.0.0486: crash and endless loop when closing windows in autocmd
Christian Brabandt <cb@256bit.org>
parents: 11197
diff changeset
410 endfunc