Patch 8.2.1470
Problem: Errors in spell file not tested.
Solution: Add test for spell file errors. (Yegappan Lakshmanan,
closes #6721)
Files: src/testdir/test_spellfile.vim
*** ../vim-8.2.1469/src/testdir/test_spellfile.vim 2020-08-12
18:50:31.887655765 +0200
--- src/testdir/test_spellfile.vim 2020-08-16 21:50:15.526973888 +0200
***************
*** 167,174 ****
call assert_equal([], glob('Xspellfile.add',0,1))
call assert_equal([], glob('Xspellfile2.add',0,1))
! set spellfile=
bw!
endfunc
" vim: shiftwidth=2 sts=2 expandtab
--- 167,339 ----
call assert_equal([], glob('Xspellfile.add',0,1))
call assert_equal([], glob('Xspellfile2.add',0,1))
! set spellfile= spell& spelllang&
bw!
endfunc
+ " Test for spell file format errors
+ func Test_spellfile_format_error()
+ let save_rtp = &rtp
+ call mkdir('Xtest/spell', 'p')
+
+ " empty spell file
+ call writefile([], './Xtest/spell/Xtest.utf-8.spl')
+ set runtimepath=./Xtest
+ set spelllang=Xtest
+ call assert_fails('set spell', 'E757:')
+ set nospell spelllang&
+
+ " invalid file ID
+ call writefile(['vim'], './Xtest/spell/Xtest.utf-8.spl')
+ set runtimepath=./Xtest
+ set spelllang=Xtest
+ call assert_fails('set spell', 'E757:')
+ set nospell spelllang&
+
+ " missing version number
+ call writefile(['VIMspell'], './Xtest/spell/Xtest.utf-8.spl')
+ set runtimepath=./Xtest
+ set spelllang=Xtest
+ call assert_fails('set spell', 'E771:')
+ set nospell spelllang&
+
+ " invalid version number
+ call writefile(['VIMspellz'], './Xtest/spell/Xtest.utf-8.spl')
+ set runtimepath=./Xtest
+ set spelllang=Xtest
+ call assert_fails('set spell', 'E772:')
+ set nospell spelllang&
+
+ " no sections
+ call writefile(0z56494D7370656C6C32, './Xtest/spell/Xtest.utf-8.spl', 'b')
+ set runtimepath=./Xtest
+ set spelllang=Xtest
+ call assert_fails('set spell', 'E758:')
+ set nospell spelllang&
+
+ " missing section length
+ call writefile(['VIMspell200'], './Xtest/spell/Xtest.utf-8.spl')
+ set runtimepath=./Xtest
+ set spelllang=Xtest
+ call assert_fails('set spell', 'E758:')
+ set nospell spelllang&
+
+ " unsupported required section
+ call writefile(['VIMspell2z' .. nr2char(1) .. ' ' .. nr2char(4)],
+ \ './Xtest/spell/Xtest.utf-8.spl')
+ set runtimepath=./Xtest
+ set spelllang=Xtest
+ call assert_fails('set spell', 'E770:')
+ set nospell spelllang&
+
+ " unsupported not-required section
+ call writefile(['VIMspell2z' .. nr2char(0) .. ' ' .. nr2char(4)],
+ \ './Xtest/spell/Xtest.utf-8.spl')
+ set runtimepath=./Xtest
+ set spelllang=Xtest
+ call assert_fails('set spell', 'E758:')
+ set nospell spelllang&
+
+ " SN_REGION: invalid number of region names
+ call writefile(0z56494D7370656C6C320000000000FF,
+ \ './Xtest/spell/Xtest.utf-8.spl', 'b')
+ set runtimepath=./Xtest
+ set spelllang=Xtest
+ call assert_fails('set spell', 'E759:')
+ set nospell spelllang&
+
+ " SN_CHARFLAGS: missing <charflagslen> length
+ call writefile(0z56494D7370656C6C32010000000004,
+ \ './Xtest/spell/Xtest.utf-8.spl', 'b')
+ set runtimepath=./Xtest
+ set spelllang=Xtest
+ call assert_fails('set spell', 'E758:')
+ set nospell spelllang&
+
+ " SN_CHARFLAGS: invalid <charflagslen> length
+ call writefile(0z56494D7370656C6C320100000000010201,
+ \ './Xtest/spell/Xtest.utf-8.spl', 'b')
+ set runtimepath=./Xtest
+ set spelllang=Xtest
+ set spell
+ " FIXME: There are no error messages. How to check for the test result?
+ set nospell spelllang&
+
+ " SN_CHARFLAGS: charflagslen == 0 and folcharslen != 0
+ call writefile(0z56494D7370656C6C3201000000000400000101,
+ \ './Xtest/spell/Xtest.utf-8.spl', 'b')
+ set runtimepath=./Xtest
+ set spelllang=Xtest
+ call assert_fails('set spell', 'E759:')
+ set nospell spelllang&
+
+ " SN_CHARFLAGS: missing <folcharslen> length
+ call writefile(0z56494D7370656C6C3201000000000100,
+ \ './Xtest/spell/Xtest.utf-8.spl', 'b')
+ set runtimepath=./Xtest
+ set spelllang=Xtest
+ call assert_fails('set spell', 'E758:')
+ set nospell spelllang&
+
+ " SN_PREFCOND: invalid prefcondcnt
+ call writefile(0z56494D7370656C6C3203000000000100,
+ \ './Xtest/spell/Xtest.utf-8.spl', 'b')
+ set runtimepath=./Xtest
+ set spelllang=Xtest
+ call assert_fails('set spell', 'E759:')
+ set nospell spelllang&
+
+ " SN_PREFCOND: invalid condlen
+ call writefile(0z56494D7370656C6C320300000000020001,
+ \ './Xtest/spell/Xtest.utf-8.spl', 'b')
+ set runtimepath=./Xtest
+ set spelllang=Xtest
+ call assert_fails('set spell', 'E759:')
+ set nospell spelllang&
+
+ " SN_REP: invalid repcount
+ call writefile(0z56494D7370656C6C3204000000000100,
+ \ './Xtest/spell/Xtest.utf-8.spl', 'b')
+ set runtimepath=./Xtest
+ set spelllang=Xtest
+ call assert_fails('set spell', 'E758:')
+ set nospell spelllang&
+
+ " SN_REP: missing rep
+ call writefile(0z56494D7370656C6C320400000000020004,
+ \ './Xtest/spell/Xtest.utf-8.spl', 'b')
+ set runtimepath=./Xtest
+ set spelllang=Xtest
+ call assert_fails('set spell', 'E758:')
+ set nospell spelllang&
+
+ " SN_REP: zero repfromlen
+ call writefile(0z56494D7370656C6C32040000000003000100,
+ \ './Xtest/spell/Xtest.utf-8.spl', 'b')
+ set runtimepath=./Xtest
+ set spelllang=Xtest
+ call assert_fails('set spell', 'E759:')
+ set nospell spelllang&
+
+ " SN_REP: invalid reptolen
+ call writefile(0z56494D7370656C6C320400000000050001014101,
+ \ './Xtest/spell/Xtest.utf-8.spl', 'b')
+ set runtimepath=./Xtest
+ set spelllang=Xtest
+ " FIXME: There are no error messages. How to check for the test result?
+ set spell
+ set nospell spelllang&
+
+ " SN_REP: zero reptolen
+ call writefile(0z56494D7370656C6C320400000000050001014100,
+ \ './Xtest/spell/Xtest.utf-8.spl', 'b')
+ set runtimepath=./Xtest
+ set spelllang=Xtest
+ call assert_fails('set spell', 'E759:')
+ set nospell spelllang&
+
+ let &rtp = save_rtp
+ call delete('Xtest', 'rf')
+ endfunc
+
" vim: shiftwidth=2 sts=2 expandtab
*** ../vim-8.2.1469/src/version.c 2020-08-16 21:29:01.982630120 +0200
--- src/version.c 2020-08-16 21:51:11.166610238 +0200
***************
*** 756,757 ****
--- 756,759 ----
{ /* Add new patch number below this line */
+ /**/
+ 1470,
/**/
--
hundred-and-one symptoms of being an internet addict:
219. Your spouse has his or her lawyer deliver the divorce papers...
via e-mail.
/// Bram Moolenaar -- [email protected] -- http://www.Moolenaar.net \\\
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\ an exciting new programming language -- http://www.Zimbu.org ///
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
--
--
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php
---
You received this message because you are subscribed to the Google Groups
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/vim_dev/202008161952.07GJqJl8662742%40masaka.moolenaar.net.