]> granicus.if.org Git - vim/commitdiff
patch 8.2.1659: spellfile code not completely tested v8.2.1659
authorBram Moolenaar <Bram@vim.org>
Fri, 11 Sep 2020 16:11:50 +0000 (18:11 +0200)
committerBram Moolenaar <Bram@vim.org>
Fri, 11 Sep 2020 16:11:50 +0000 (18:11 +0200)
Problem:    Spellfile code not completely tested.
Solution:   Add a few more test cases. (Yegappan Lakshmanan, closes #6929)

src/testdir/test_spell.vim
src/testdir/test_spellfile.vim
src/version.c

index c2de5ed0fb842c041c6bc0464028e27ec0082fa1..4beff9a1a14d4e24fcf11d6aece432bee784e791 100644 (file)
@@ -112,6 +112,7 @@ foobar/?
 
   set spelllang=
   call assert_fails("call spellbadword('maxch')", 'E756:')
+  call assert_fails("spelldump", 'E756:')
 
   call delete('Xwords.spl')
   call delete('Xwords')
index 16a07b1caad011f3f83c07af08582d9ee27116a8..49e02326a77fba782d88a475f721758472851594 100644 (file)
@@ -307,6 +307,9 @@ func Test_spellfile_format_error()
   " SN_SOFO: empty sofofrom and sofoto
   call Spellfile_Test(0z06000000000400000000FF000000000000000000000000, '')
 
+  " SN_SOFO: multi-byte characters in sofofrom and sofoto
+  call Spellfile_Test(0z0600000000080002CF810002CF82FF000000000000000000000000, '')
+
   " SN_COMPOUND: compmax is less than 2
   call Spellfile_Test(0z08000000000101, 'E759:')
 
@@ -550,8 +553,14 @@ endfunc
 " Test for the :mkspell command
 func Test_mkspell()
   call assert_fails('mkspell Xtest_us.spl', 'E751:')
+  call assert_fails('mkspell Xtest.spl abc', 'E484:')
   call assert_fails('mkspell a b c d e f g h i j k', 'E754:')
 
+  " create a .aff file but not the .dic file
+  call writefile([], 'Xtest.aff')
+  call assert_fails('mkspell Xtest.spl Xtest', 'E484:')
+  call delete('Xtest.aff')
+
   call writefile([], 'Xtest.spl')
   call writefile([], 'Xtest.dic')
   call assert_fails('mkspell Xtest.spl Xtest.dic', 'E13:')
@@ -772,6 +781,14 @@ func Test_aff_file_format_error()
   call assert_fails('mkspell! Xtest.spl Xtest', 'E761:')
   let &encoding = save_encoding
 
+  " missing UPP entry
+  call writefile(["FOL abc", "LOW abc"], 'Xtest.aff')
+  let save_encoding = &encoding
+  set encoding=cp949
+  let output = execute('mkspell! Xtest.spl Xtest')
+  call assert_match('Missing FOL/LOW/UPP line in Xtest.aff', output)
+  let &encoding = save_encoding
+
   " duplicate word in the .dic file
   call writefile(['2', 'good', 'good', 'good'], 'Xtest.dic')
   call writefile(['NAME vim'], 'Xtest.aff')
@@ -779,6 +796,20 @@ func Test_aff_file_format_error()
   call assert_match('First duplicate word in Xtest.dic line 3: good', output)
   call assert_match('2 duplicate word(s) in Xtest.dic', output)
 
+  " use multiple .aff files with different values for COMPOUNDWORDMAX and
+  " MIDWORD (number and string)
+  call writefile(['1', 'world'], 'Xtest_US.dic')
+  call writefile(['1', 'world'], 'Xtest_CA.dic')
+  call writefile(["COMPOUNDWORDMAX 3", "MIDWORD '-"], 'Xtest_US.aff')
+  call writefile(["COMPOUNDWORDMAX 4", "MIDWORD '="], 'Xtest_CA.aff')
+  let output = execute('mkspell! Xtest.spl Xtest_US Xtest_CA')
+  call assert_match('COMPOUNDWORDMAX value differs from what is used in another .aff file', output)
+  call assert_match('MIDWORD value differs from what is used in another .aff file', output)
+  call delete('Xtest_US.dic')
+  call delete('Xtest_CA.dic')
+  call delete('Xtest_US.aff')
+  call delete('Xtest_CA.aff')
+
   call delete('Xtest.dic')
   call delete('Xtest.aff')
   call delete('Xtest.spl')
index 81c51e196447fc9e761fee20cab13820043f8e65..e815f6647be0564e253346611bd5dbfd4a46ae39 100644 (file)
@@ -750,6 +750,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    1659,
 /**/
     1658,
 /**/