Mercurial > vim
annotate src/testdir/test_bufwintabinfo.vim @ 9902:5a667a3a3743 v7.4.2225
commit https://github.com/vim/vim/commit/bfd096d02087a10e8e2f4bdfb74e0435506fa8bb
Author: Bram Moolenaar <Bram@vim.org>
Date: Wed Aug 17 22:29:09 2016 +0200
patch 7.4.2225
Problem: Crash when placing a sign in a deleted buffer.
Solution: Check for missing buffer name. (Dominique Pelle). Add a test.
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Wed, 17 Aug 2016 22:30:06 +0200 |
parents | 633a03b87eda |
children | 24900147aa44 |
rev | line source |
---|---|
9858
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
1 " Tests for the getbufinfo(), getwininfo() and gettabinfo() functions |
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
2 |
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
3 function Test_getbufwintabinfo() |
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
4 1,$bwipeout |
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
5 edit Xtestfile1 |
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
6 edit Xtestfile2 |
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
7 let buflist = getbufinfo() |
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
8 call assert_equal(2, len(buflist)) |
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
9 call assert_match('Xtestfile1', buflist[0].name) |
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
10 call assert_match('Xtestfile2', getbufinfo('Xtestfile2')[0].name) |
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
11 call assert_equal([], getbufinfo(2016)) |
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
12 edit Xtestfile1 |
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
13 hide edit Xtestfile2 |
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
14 hide enew |
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
15 call assert_equal(3, len(getbufinfo({'bufloaded':1}))) |
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
16 |
9881
4b53f6be10c0
commit https://github.com/vim/vim/commit/386600f0cbcb8add099c723cf84634f46df2f788
Christian Brabandt <cb@256bit.org>
parents:
9858
diff
changeset
|
17 set tabstop&vim |
4b53f6be10c0
commit https://github.com/vim/vim/commit/386600f0cbcb8add099c723cf84634f46df2f788
Christian Brabandt <cb@256bit.org>
parents:
9858
diff
changeset
|
18 let b:editor = 'vim' |
4b53f6be10c0
commit https://github.com/vim/vim/commit/386600f0cbcb8add099c723cf84634f46df2f788
Christian Brabandt <cb@256bit.org>
parents:
9858
diff
changeset
|
19 let l = getbufinfo('%') |
4b53f6be10c0
commit https://github.com/vim/vim/commit/386600f0cbcb8add099c723cf84634f46df2f788
Christian Brabandt <cb@256bit.org>
parents:
9858
diff
changeset
|
20 call assert_equal(bufnr('%'), l[0].nr) |
4b53f6be10c0
commit https://github.com/vim/vim/commit/386600f0cbcb8add099c723cf84634f46df2f788
Christian Brabandt <cb@256bit.org>
parents:
9858
diff
changeset
|
21 call assert_equal(8, l[0].options.tabstop) |
4b53f6be10c0
commit https://github.com/vim/vim/commit/386600f0cbcb8add099c723cf84634f46df2f788
Christian Brabandt <cb@256bit.org>
parents:
9858
diff
changeset
|
22 call assert_equal('vim', l[0].variables.editor) |
4b53f6be10c0
commit https://github.com/vim/vim/commit/386600f0cbcb8add099c723cf84634f46df2f788
Christian Brabandt <cb@256bit.org>
parents:
9858
diff
changeset
|
23 call assert_notequal(-1, index(l[0].windows, bufwinid('%'))) |
4b53f6be10c0
commit https://github.com/vim/vim/commit/386600f0cbcb8add099c723cf84634f46df2f788
Christian Brabandt <cb@256bit.org>
parents:
9858
diff
changeset
|
24 |
4b53f6be10c0
commit https://github.com/vim/vim/commit/386600f0cbcb8add099c723cf84634f46df2f788
Christian Brabandt <cb@256bit.org>
parents:
9858
diff
changeset
|
25 if has('signs') |
4b53f6be10c0
commit https://github.com/vim/vim/commit/386600f0cbcb8add099c723cf84634f46df2f788
Christian Brabandt <cb@256bit.org>
parents:
9858
diff
changeset
|
26 call append(0, ['Linux', 'Windows', 'Mac']) |
4b53f6be10c0
commit https://github.com/vim/vim/commit/386600f0cbcb8add099c723cf84634f46df2f788
Christian Brabandt <cb@256bit.org>
parents:
9858
diff
changeset
|
27 sign define Mark text=>> texthl=Search |
4b53f6be10c0
commit https://github.com/vim/vim/commit/386600f0cbcb8add099c723cf84634f46df2f788
Christian Brabandt <cb@256bit.org>
parents:
9858
diff
changeset
|
28 exe "sign place 2 line=3 name=Mark buffer=" . bufnr('%') |
4b53f6be10c0
commit https://github.com/vim/vim/commit/386600f0cbcb8add099c723cf84634f46df2f788
Christian Brabandt <cb@256bit.org>
parents:
9858
diff
changeset
|
29 let l = getbufinfo('%') |
4b53f6be10c0
commit https://github.com/vim/vim/commit/386600f0cbcb8add099c723cf84634f46df2f788
Christian Brabandt <cb@256bit.org>
parents:
9858
diff
changeset
|
30 call assert_equal(2, l[0].signs[0].id) |
4b53f6be10c0
commit https://github.com/vim/vim/commit/386600f0cbcb8add099c723cf84634f46df2f788
Christian Brabandt <cb@256bit.org>
parents:
9858
diff
changeset
|
31 call assert_equal(3, l[0].signs[0].lnum) |
4b53f6be10c0
commit https://github.com/vim/vim/commit/386600f0cbcb8add099c723cf84634f46df2f788
Christian Brabandt <cb@256bit.org>
parents:
9858
diff
changeset
|
32 call assert_equal('Mark', l[0].signs[0].name) |
4b53f6be10c0
commit https://github.com/vim/vim/commit/386600f0cbcb8add099c723cf84634f46df2f788
Christian Brabandt <cb@256bit.org>
parents:
9858
diff
changeset
|
33 sign unplace * |
4b53f6be10c0
commit https://github.com/vim/vim/commit/386600f0cbcb8add099c723cf84634f46df2f788
Christian Brabandt <cb@256bit.org>
parents:
9858
diff
changeset
|
34 sign undefine Mark |
4b53f6be10c0
commit https://github.com/vim/vim/commit/386600f0cbcb8add099c723cf84634f46df2f788
Christian Brabandt <cb@256bit.org>
parents:
9858
diff
changeset
|
35 enew! |
4b53f6be10c0
commit https://github.com/vim/vim/commit/386600f0cbcb8add099c723cf84634f46df2f788
Christian Brabandt <cb@256bit.org>
parents:
9858
diff
changeset
|
36 endif |
4b53f6be10c0
commit https://github.com/vim/vim/commit/386600f0cbcb8add099c723cf84634f46df2f788
Christian Brabandt <cb@256bit.org>
parents:
9858
diff
changeset
|
37 |
9858
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
38 only |
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
39 let w1_id = win_getid() |
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
40 new |
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
41 let w2_id = win_getid() |
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
42 tabnew | let w3_id = win_getid() |
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
43 new | let w4_id = win_getid() |
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
44 new | let w5_id = win_getid() |
9881
4b53f6be10c0
commit https://github.com/vim/vim/commit/386600f0cbcb8add099c723cf84634f46df2f788
Christian Brabandt <cb@256bit.org>
parents:
9858
diff
changeset
|
45 call setwinvar(0, 'signal', 'green') |
9858
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
46 tabfirst |
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
47 let winlist = getwininfo() |
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
48 call assert_equal(5, len(winlist)) |
9881
4b53f6be10c0
commit https://github.com/vim/vim/commit/386600f0cbcb8add099c723cf84634f46df2f788
Christian Brabandt <cb@256bit.org>
parents:
9858
diff
changeset
|
49 call assert_equal(winbufnr(2), winlist[1].bufnum) |
4b53f6be10c0
commit https://github.com/vim/vim/commit/386600f0cbcb8add099c723cf84634f46df2f788
Christian Brabandt <cb@256bit.org>
parents:
9858
diff
changeset
|
50 call assert_equal(winheight(2), winlist[1].height) |
4b53f6be10c0
commit https://github.com/vim/vim/commit/386600f0cbcb8add099c723cf84634f46df2f788
Christian Brabandt <cb@256bit.org>
parents:
9858
diff
changeset
|
51 call assert_equal(1, winlist[2].nr) |
9883
633a03b87eda
commit https://github.com/vim/vim/commit/22177f0c0826e3b2411a5e9d050b50200877ecd3
Christian Brabandt <cb@256bit.org>
parents:
9881
diff
changeset
|
52 if has('signs') |
633a03b87eda
commit https://github.com/vim/vim/commit/22177f0c0826e3b2411a5e9d050b50200877ecd3
Christian Brabandt <cb@256bit.org>
parents:
9881
diff
changeset
|
53 call assert_equal('auto', winlist[0].options.signcolumn) |
633a03b87eda
commit https://github.com/vim/vim/commit/22177f0c0826e3b2411a5e9d050b50200877ecd3
Christian Brabandt <cb@256bit.org>
parents:
9881
diff
changeset
|
54 endif |
9858
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
55 call assert_equal(2, winlist[3].tpnr) |
9881
4b53f6be10c0
commit https://github.com/vim/vim/commit/386600f0cbcb8add099c723cf84634f46df2f788
Christian Brabandt <cb@256bit.org>
parents:
9858
diff
changeset
|
56 call assert_equal('green', winlist[2].variables.signal) |
4b53f6be10c0
commit https://github.com/vim/vim/commit/386600f0cbcb8add099c723cf84634f46df2f788
Christian Brabandt <cb@256bit.org>
parents:
9858
diff
changeset
|
57 call assert_equal(winwidth(1), winlist[0].width) |
4b53f6be10c0
commit https://github.com/vim/vim/commit/386600f0cbcb8add099c723cf84634f46df2f788
Christian Brabandt <cb@256bit.org>
parents:
9858
diff
changeset
|
58 call assert_equal(w4_id, winlist[3].winid) |
9858
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
59 let winfo = getwininfo(w5_id)[0] |
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
60 call assert_equal(2, winfo.tpnr) |
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
61 call assert_equal([], getwininfo(3)) |
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
62 |
9881
4b53f6be10c0
commit https://github.com/vim/vim/commit/386600f0cbcb8add099c723cf84634f46df2f788
Christian Brabandt <cb@256bit.org>
parents:
9858
diff
changeset
|
63 call settabvar(1, 'space', 'build') |
9858
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
64 let tablist = gettabinfo() |
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
65 call assert_equal(2, len(tablist)) |
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
66 call assert_equal(3, len(tablist[1].windows)) |
9881
4b53f6be10c0
commit https://github.com/vim/vim/commit/386600f0cbcb8add099c723cf84634f46df2f788
Christian Brabandt <cb@256bit.org>
parents:
9858
diff
changeset
|
67 call assert_equal(2, tablist[1].nr) |
4b53f6be10c0
commit https://github.com/vim/vim/commit/386600f0cbcb8add099c723cf84634f46df2f788
Christian Brabandt <cb@256bit.org>
parents:
9858
diff
changeset
|
68 call assert_equal('build', tablist[0].variables.space) |
4b53f6be10c0
commit https://github.com/vim/vim/commit/386600f0cbcb8add099c723cf84634f46df2f788
Christian Brabandt <cb@256bit.org>
parents:
9858
diff
changeset
|
69 call assert_equal(w2_id, tablist[0].windows[0]) |
9858
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
70 call assert_equal([], gettabinfo(3)) |
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
71 |
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
72 tabonly | only |
9881
4b53f6be10c0
commit https://github.com/vim/vim/commit/386600f0cbcb8add099c723cf84634f46df2f788
Christian Brabandt <cb@256bit.org>
parents:
9858
diff
changeset
|
73 |
4b53f6be10c0
commit https://github.com/vim/vim/commit/386600f0cbcb8add099c723cf84634f46df2f788
Christian Brabandt <cb@256bit.org>
parents:
9858
diff
changeset
|
74 lexpr '' |
4b53f6be10c0
commit https://github.com/vim/vim/commit/386600f0cbcb8add099c723cf84634f46df2f788
Christian Brabandt <cb@256bit.org>
parents:
9858
diff
changeset
|
75 lopen |
4b53f6be10c0
commit https://github.com/vim/vim/commit/386600f0cbcb8add099c723cf84634f46df2f788
Christian Brabandt <cb@256bit.org>
parents:
9858
diff
changeset
|
76 copen |
4b53f6be10c0
commit https://github.com/vim/vim/commit/386600f0cbcb8add099c723cf84634f46df2f788
Christian Brabandt <cb@256bit.org>
parents:
9858
diff
changeset
|
77 let winlist = getwininfo() |
4b53f6be10c0
commit https://github.com/vim/vim/commit/386600f0cbcb8add099c723cf84634f46df2f788
Christian Brabandt <cb@256bit.org>
parents:
9858
diff
changeset
|
78 call assert_false(winlist[0].quickfix) |
4b53f6be10c0
commit https://github.com/vim/vim/commit/386600f0cbcb8add099c723cf84634f46df2f788
Christian Brabandt <cb@256bit.org>
parents:
9858
diff
changeset
|
79 call assert_false(winlist[0].loclist) |
4b53f6be10c0
commit https://github.com/vim/vim/commit/386600f0cbcb8add099c723cf84634f46df2f788
Christian Brabandt <cb@256bit.org>
parents:
9858
diff
changeset
|
80 call assert_true(winlist[1].quickfix) |
4b53f6be10c0
commit https://github.com/vim/vim/commit/386600f0cbcb8add099c723cf84634f46df2f788
Christian Brabandt <cb@256bit.org>
parents:
9858
diff
changeset
|
81 call assert_true(winlist[1].loclist) |
4b53f6be10c0
commit https://github.com/vim/vim/commit/386600f0cbcb8add099c723cf84634f46df2f788
Christian Brabandt <cb@256bit.org>
parents:
9858
diff
changeset
|
82 call assert_true(winlist[2].quickfix) |
4b53f6be10c0
commit https://github.com/vim/vim/commit/386600f0cbcb8add099c723cf84634f46df2f788
Christian Brabandt <cb@256bit.org>
parents:
9858
diff
changeset
|
83 call assert_false(winlist[2].loclist) |
4b53f6be10c0
commit https://github.com/vim/vim/commit/386600f0cbcb8add099c723cf84634f46df2f788
Christian Brabandt <cb@256bit.org>
parents:
9858
diff
changeset
|
84 wincmd t | only |
9858
3e96d9ed2ca1
commit https://github.com/vim/vim/commit/b5ae48e9ffd3b8eb6ca4057de11f1bddcde8ce6f
Christian Brabandt <cb@256bit.org>
parents:
diff
changeset
|
85 endfunction |