annotate src/testdir/test_taglist.vim @ 14232:4afe2386aae8 v8.1.0133

patch 8.1.0133: tagfiles() can have duplicate entries commit https://github.com/vim/vim/commit/46577b5e5445c4aaa1e7ae1764373d11dae71663 Author: Bram Moolenaar <Bram@vim.org> Date: Sat Jun 30 22:40:42 2018 +0200 patch 8.1.0133: tagfiles() can have duplicate entries Problem: tagfiles() can have duplicate entries. Solution: Simplify the filename to make checking for duplicates work better. Add a test. (Dominique Pelle, closes #2979)
author Christian Brabandt <cb@256bit.org>
date Sat, 30 Jun 2018 22:45:06 +0200
parents 63fdea6e9c6c
children 37d31fc37a5a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
14232
4afe2386aae8 patch 8.1.0133: tagfiles() can have duplicate entries
Christian Brabandt <cb@256bit.org>
parents: 13068
diff changeset
1 " test taglist(), tagfiles() functions and :tags command
11225
d3415ec1cdaf patch 8.0.0499: taglist() does not prioritize tags for a buffer
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
2
d3415ec1cdaf patch 8.0.0499: taglist() does not prioritize tags for a buffer
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
3 func Test_taglist()
d3415ec1cdaf patch 8.0.0499: taglist() does not prioritize tags for a buffer
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
4 call writefile([
d3415ec1cdaf patch 8.0.0499: taglist() does not prioritize tags for a buffer
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
5 \ "FFoo\tXfoo\t1",
d3415ec1cdaf patch 8.0.0499: taglist() does not prioritize tags for a buffer
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
6 \ "FBar\tXfoo\t2",
d3415ec1cdaf patch 8.0.0499: taglist() does not prioritize tags for a buffer
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
7 \ "BFoo\tXbar\t1",
d3415ec1cdaf patch 8.0.0499: taglist() does not prioritize tags for a buffer
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
8 \ "BBar\tXbar\t2"
d3415ec1cdaf patch 8.0.0499: taglist() does not prioritize tags for a buffer
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
9 \ ], 'Xtags')
d3415ec1cdaf patch 8.0.0499: taglist() does not prioritize tags for a buffer
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
10 set tags=Xtags
d3415ec1cdaf patch 8.0.0499: taglist() does not prioritize tags for a buffer
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
11 split Xtext
d3415ec1cdaf patch 8.0.0499: taglist() does not prioritize tags for a buffer
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
12
d3415ec1cdaf patch 8.0.0499: taglist() does not prioritize tags for a buffer
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
13 call assert_equal(['FFoo', 'BFoo'], map(taglist("Foo"), {i, v -> v.name}))
d3415ec1cdaf patch 8.0.0499: taglist() does not prioritize tags for a buffer
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
14 call assert_equal(['FFoo', 'BFoo'], map(taglist("Foo", "Xtext"), {i, v -> v.name}))
d3415ec1cdaf patch 8.0.0499: taglist() does not prioritize tags for a buffer
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
15 call assert_equal(['FFoo', 'BFoo'], map(taglist("Foo", "Xfoo"), {i, v -> v.name}))
d3415ec1cdaf patch 8.0.0499: taglist() does not prioritize tags for a buffer
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
16 call assert_equal(['BFoo', 'FFoo'], map(taglist("Foo", "Xbar"), {i, v -> v.name}))
d3415ec1cdaf patch 8.0.0499: taglist() does not prioritize tags for a buffer
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
17
d3415ec1cdaf patch 8.0.0499: taglist() does not prioritize tags for a buffer
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
18 call delete('Xtags')
d3415ec1cdaf patch 8.0.0499: taglist() does not prioritize tags for a buffer
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
19 bwipe
d3415ec1cdaf patch 8.0.0499: taglist() does not prioritize tags for a buffer
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
20 endfunc
d3415ec1cdaf patch 8.0.0499: taglist() does not prioritize tags for a buffer
Christian Brabandt <cb@256bit.org>
parents:
diff changeset
21
11329
c7ba89661c39 patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents: 11225
diff changeset
22 func Test_taglist_native_etags()
c7ba89661c39 patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents: 11225
diff changeset
23 if !has('emacs_tags')
c7ba89661c39 patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents: 11225
diff changeset
24 return
c7ba89661c39 patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents: 11225
diff changeset
25 endif
c7ba89661c39 patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents: 11225
diff changeset
26 call writefile([
c7ba89661c39 patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents: 11225
diff changeset
27 \ "\x0c",
c7ba89661c39 patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents: 11225
diff changeset
28 \ "src/os_unix.c,13491",
c7ba89661c39 patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents: 11225
diff changeset
29 \ "set_signals(\x7f1335,32699",
c7ba89661c39 patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents: 11225
diff changeset
30 \ "reset_signals(\x7f1407,34136",
c7ba89661c39 patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents: 11225
diff changeset
31 \ ], 'Xtags')
c7ba89661c39 patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents: 11225
diff changeset
32
c7ba89661c39 patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents: 11225
diff changeset
33 set tags=Xtags
c7ba89661c39 patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents: 11225
diff changeset
34
c7ba89661c39 patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents: 11225
diff changeset
35 call assert_equal([['set_signals', '1335,32699'], ['reset_signals', '1407,34136']],
c7ba89661c39 patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents: 11225
diff changeset
36 \ map(taglist('set_signals'), {i, v -> [v.name, v.cmd]}))
c7ba89661c39 patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents: 11225
diff changeset
37
c7ba89661c39 patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents: 11225
diff changeset
38 call delete('Xtags')
c7ba89661c39 patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents: 11225
diff changeset
39 endfunc
c7ba89661c39 patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents: 11225
diff changeset
40
c7ba89661c39 patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents: 11225
diff changeset
41 func Test_taglist_ctags_etags()
c7ba89661c39 patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents: 11225
diff changeset
42 if !has('emacs_tags')
c7ba89661c39 patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents: 11225
diff changeset
43 return
c7ba89661c39 patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents: 11225
diff changeset
44 endif
c7ba89661c39 patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents: 11225
diff changeset
45 call writefile([
c7ba89661c39 patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents: 11225
diff changeset
46 \ "\x0c",
c7ba89661c39 patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents: 11225
diff changeset
47 \ "src/os_unix.c,13491",
c7ba89661c39 patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents: 11225
diff changeset
48 \ "set_signals(void)\x7fset_signals\x011335,32699",
c7ba89661c39 patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents: 11225
diff changeset
49 \ "reset_signals(void)\x7freset_signals\x011407,34136",
c7ba89661c39 patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents: 11225
diff changeset
50 \ ], 'Xtags')
c7ba89661c39 patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents: 11225
diff changeset
51
c7ba89661c39 patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents: 11225
diff changeset
52 set tags=Xtags
c7ba89661c39 patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents: 11225
diff changeset
53
c7ba89661c39 patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents: 11225
diff changeset
54 call assert_equal([['set_signals', '1335,32699'], ['reset_signals', '1407,34136']],
c7ba89661c39 patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents: 11225
diff changeset
55 \ map(taglist('set_signals'), {i, v -> [v.name, v.cmd]}))
c7ba89661c39 patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents: 11225
diff changeset
56
c7ba89661c39 patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents: 11225
diff changeset
57 call delete('Xtags')
c7ba89661c39 patch 8.0.0550: cannot parse some etags format tags file
Christian Brabandt <cb@256bit.org>
parents: 11225
diff changeset
58 endfunc
13068
63fdea6e9c6c patch 8.0.1409: buffer overflow in :tags command
Christian Brabandt <cb@256bit.org>
parents: 11329
diff changeset
59
63fdea6e9c6c patch 8.0.1409: buffer overflow in :tags command
Christian Brabandt <cb@256bit.org>
parents: 11329
diff changeset
60 func Test_tags_too_long()
63fdea6e9c6c patch 8.0.1409: buffer overflow in :tags command
Christian Brabandt <cb@256bit.org>
parents: 11329
diff changeset
61 call assert_fails('tag ' . repeat('x', 1020), 'E426')
63fdea6e9c6c patch 8.0.1409: buffer overflow in :tags command
Christian Brabandt <cb@256bit.org>
parents: 11329
diff changeset
62 tags
63fdea6e9c6c patch 8.0.1409: buffer overflow in :tags command
Christian Brabandt <cb@256bit.org>
parents: 11329
diff changeset
63 endfunc
14232
4afe2386aae8 patch 8.1.0133: tagfiles() can have duplicate entries
Christian Brabandt <cb@256bit.org>
parents: 13068
diff changeset
64
4afe2386aae8 patch 8.1.0133: tagfiles() can have duplicate entries
Christian Brabandt <cb@256bit.org>
parents: 13068
diff changeset
65 func Test_tagfiles()
4afe2386aae8 patch 8.1.0133: tagfiles() can have duplicate entries
Christian Brabandt <cb@256bit.org>
parents: 13068
diff changeset
66 call assert_equal([], tagfiles())
4afe2386aae8 patch 8.1.0133: tagfiles() can have duplicate entries
Christian Brabandt <cb@256bit.org>
parents: 13068
diff changeset
67
4afe2386aae8 patch 8.1.0133: tagfiles() can have duplicate entries
Christian Brabandt <cb@256bit.org>
parents: 13068
diff changeset
68 call writefile(["FFoo\tXfoo\t1"], 'Xtags1')
4afe2386aae8 patch 8.1.0133: tagfiles() can have duplicate entries
Christian Brabandt <cb@256bit.org>
parents: 13068
diff changeset
69 call writefile(["FBar\tXbar\t1"], 'Xtags2')
4afe2386aae8 patch 8.1.0133: tagfiles() can have duplicate entries
Christian Brabandt <cb@256bit.org>
parents: 13068
diff changeset
70 set tags=Xtags1,Xtags2
4afe2386aae8 patch 8.1.0133: tagfiles() can have duplicate entries
Christian Brabandt <cb@256bit.org>
parents: 13068
diff changeset
71 call assert_equal(['Xtags1', 'Xtags2'], tagfiles())
4afe2386aae8 patch 8.1.0133: tagfiles() can have duplicate entries
Christian Brabandt <cb@256bit.org>
parents: 13068
diff changeset
72
4afe2386aae8 patch 8.1.0133: tagfiles() can have duplicate entries
Christian Brabandt <cb@256bit.org>
parents: 13068
diff changeset
73 help
4afe2386aae8 patch 8.1.0133: tagfiles() can have duplicate entries
Christian Brabandt <cb@256bit.org>
parents: 13068
diff changeset
74 let tf = tagfiles()
4afe2386aae8 patch 8.1.0133: tagfiles() can have duplicate entries
Christian Brabandt <cb@256bit.org>
parents: 13068
diff changeset
75 call assert_equal(1, len(tf))
4afe2386aae8 patch 8.1.0133: tagfiles() can have duplicate entries
Christian Brabandt <cb@256bit.org>
parents: 13068
diff changeset
76 call assert_equal(fnamemodify(expand('$VIMRUNTIME/doc/tags'), ':p:gs?\\?/?'),
4afe2386aae8 patch 8.1.0133: tagfiles() can have duplicate entries
Christian Brabandt <cb@256bit.org>
parents: 13068
diff changeset
77 \ fnamemodify(tf[0], ':p:gs?\\?/?'))
4afe2386aae8 patch 8.1.0133: tagfiles() can have duplicate entries
Christian Brabandt <cb@256bit.org>
parents: 13068
diff changeset
78 helpclose
4afe2386aae8 patch 8.1.0133: tagfiles() can have duplicate entries
Christian Brabandt <cb@256bit.org>
parents: 13068
diff changeset
79 call assert_equal(['Xtags1', 'Xtags2'], tagfiles())
4afe2386aae8 patch 8.1.0133: tagfiles() can have duplicate entries
Christian Brabandt <cb@256bit.org>
parents: 13068
diff changeset
80 set tags&
4afe2386aae8 patch 8.1.0133: tagfiles() can have duplicate entries
Christian Brabandt <cb@256bit.org>
parents: 13068
diff changeset
81 call assert_equal([], tagfiles())
4afe2386aae8 patch 8.1.0133: tagfiles() can have duplicate entries
Christian Brabandt <cb@256bit.org>
parents: 13068
diff changeset
82
4afe2386aae8 patch 8.1.0133: tagfiles() can have duplicate entries
Christian Brabandt <cb@256bit.org>
parents: 13068
diff changeset
83 call delete('Xtags1')
4afe2386aae8 patch 8.1.0133: tagfiles() can have duplicate entries
Christian Brabandt <cb@256bit.org>
parents: 13068
diff changeset
84 call delete('Xtags2')
4afe2386aae8 patch 8.1.0133: tagfiles() can have duplicate entries
Christian Brabandt <cb@256bit.org>
parents: 13068
diff changeset
85 bd
4afe2386aae8 patch 8.1.0133: tagfiles() can have duplicate entries
Christian Brabandt <cb@256bit.org>
parents: 13068
diff changeset
86 endfunc