]> granicus.if.org Git - vim/commitdiff
patch 8.2.0998: not all tag code is tested v8.2.0998
authorBram Moolenaar <Bram@vim.org>
Wed, 17 Jun 2020 20:58:35 +0000 (22:58 +0200)
committerBram Moolenaar <Bram@vim.org>
Wed, 17 Jun 2020 20:58:35 +0000 (22:58 +0200)
Problem:    Not all tag code is tested.
Solution:   Add a few more test cases. (Yegappan Lakshmanan, closes #6284)

src/testdir/test_tagjump.vim
src/version.c

index 0a69a8d3a9e998d8f5b835eadd0ff599c73f5aae..e7b83e77235a30607ccb3654dcb1f4f423ac5141 100644 (file)
@@ -263,8 +263,52 @@ func Test_tagjump_etags()
   ta foo
   call assert_equal('void foo() {}', getline('.'))
 
+  " Test for including another tags file
+  call writefile([
+        \ "\x0c",
+        \ "Xmain.c,64",
+        \ "void foo() {}\x7ffoo\x011,0",
+        \ "\x0c",
+        \ "Xnonexisting,include",
+        \ "\x0c",
+        \ "Xtags2,include"
+        \ ], 'Xtags')
+  call writefile([
+        \ "\x0c",
+        \ "Xmain.c,64",
+        \ "int main(int argc, char **argv)\x7fmain\x012,14",
+        \ ], 'Xtags2')
+  tag main
+  call assert_equal(2, line('.'))
+
+  " corrupted tag line
+  call writefile([
+        \ "\x0c",
+        \ "Xmain.c,8",
+        \ "int main"
+        \ ], 'Xtags', 'b')
+  call assert_fails('tag foo', 'E426:')
+
+  " invalid line number
+  call writefile([
+       \ "\x0c",
+        \ "Xmain.c,64",
+        \ "void foo() {}\x7ffoo\x0abc,0",
+       \ ], 'Xtags')
+  call assert_fails('tag foo', 'E426:')
+
+  " invalid tag name
+  call writefile([
+       \ "\x0c",
+        \ "Xmain.c,64",
+        \ ";;;;\x7f1,0",
+       \ ], 'Xtags')
+  call assert_fails('tag foo', 'E426:')
+
   call delete('Xtags')
+  call delete('Xtags2')
   call delete('Xmain.c')
+  set tags&
   bwipe!
 endfunc
 
@@ -1268,4 +1312,29 @@ func Test_comment_search()
   close!
 endfunc
 
+" Test for the 'taglength' option
+func Test_tag_length()
+  set tags=Xtags
+  call writefile(["!_TAG_FILE_ENCODING\tutf-8\t//",
+        \ "tame\tXfile1\t1;",
+        \ "tape\tXfile2\t1;"], 'Xtags')
+  call writefile(['tame'], 'Xfile1')
+  call writefile(['tape'], 'Xfile2')
+
+  " Jumping to the tag 'tape', should instead jump to 'tame'
+  new
+  set taglength=2
+  tag tape
+  call assert_equal('Xfile1', @%)
+  " Tag search should jump to the right tag
+  enew
+  tag /^tape$
+  call assert_equal('Xfile2', @%)
+
+  call delete('Xtags')
+  call delete('Xfile1')
+  call delete('Xfile2')
+  set tags& taglength&
+endfunc
+
 " vim: shiftwidth=2 sts=2 expandtab
index 25ada8ca77fdf60437c4550e87d8460cbef898cc..6ea3ce043c7bdfaf7b7d296544d00d46f25c95dc 100644 (file)
@@ -754,6 +754,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    998,
 /**/
     997,
 /**/