changeset 29157:a3564c0c9e06 v8.2.5098

patch 8.2.5098: spelldump test sometimes hangs Commit: https://github.com/vim/vim/commit/fc9f0fd6d18c03d6420f84ebb374a373c830fbad Author: Bram Moolenaar <Bram@vim.org> Date: Wed Jun 15 16:57:44 2022 +0100 patch 8.2.5098: spelldump test sometimes hangs Problem: Spelldump test sometimes hangs. Solution: Catch the problem of the spell file not being found to avoid hanging in the download dialog.
author Bram Moolenaar <Bram@vim.org>
date Wed, 15 Jun 2022 18:00:03 +0200
parents b4839a29996e
children e424e1991bde
files src/testdir/test_spell.vim src/version.c
diffstat 2 files changed, 57 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- a/src/testdir/test_spell.vim
+++ b/src/testdir/test_spell.vim
@@ -137,6 +137,10 @@ func Test_spell_file_missing()
   augroup END
   call assert_fails('set spell spelllang=ab_cd', 'E797:')
 
+  " clean up
+  augroup TestSpellFileMissing
+    autocmd! SpellFileMissing
+  augroup END
   augroup! TestSpellFileMissing
   unlet s:spell_file_missing
   set spell& spelllang&
@@ -144,19 +148,34 @@ func Test_spell_file_missing()
 endfunc
 
 func Test_spelldump()
+  " In case the spell file is not found avoid getting the download dialog, we
+  " would get stuck at the prompt.
+  let g:en_not_found = 0
+  augroup TestSpellFileMissing
+    au! SpellFileMissing * let g:en_not_found = 1
+  augroup END
   set spell spelllang=en
   spellrare! emacs
+  if g:en_not_found
+    call assert_report("Could not find English spell file")
+  else
+    spelldump
 
-  spelldump
+    " Check assumption about region: 1: us, 2: au, 3: ca, 4: gb, 5: nz.
+    call assert_equal('/regions=usaucagbnz', getline(1))
+    call assert_notequal(0, search('^theater/1$'))    " US English only.
+    call assert_notequal(0, search('^theatre/2345$')) " AU, CA, GB or NZ English.
 
-  " Check assumption about region: 1: us, 2: au, 3: ca, 4: gb, 5: nz.
-  call assert_equal('/regions=usaucagbnz', getline(1))
-  call assert_notequal(0, search('^theater/1$'))    " US English only.
-  call assert_notequal(0, search('^theatre/2345$')) " AU, CA, GB or NZ English.
+    call assert_notequal(0, search('^emacs/?$'))      " ? for a rare word.
+    call assert_notequal(0, search('^the the/!$'))    " ! for a wrong word.
+  endif
 
-  call assert_notequal(0, search('^emacs/?$'))      " ? for a rare word.
-  call assert_notequal(0, search('^the the/!$'))    " ! for a wrong word.
-
+  " clean up
+  unlet g:en_not_found
+  augroup TestSpellFileMissing
+    autocmd! SpellFileMissing
+  augroup END
+  augroup! TestSpellFileMissing
   bwipe
   set spell&
 endfunc
@@ -165,18 +184,37 @@ func Test_spelldump_bang()
   new
   call setline(1, 'This is a sample sentence.')
   redraw
+
+  " In case the spell file is not found avoid getting the download dialog, we
+  " would get stuck at the prompt.
+  let g:en_not_found = 0
+  augroup TestSpellFileMissing
+    au! SpellFileMissing * let g:en_not_found = 1
+  augroup END
+
   set spell
-  redraw
-  spelldump!
+
+  if g:en_not_found
+    call assert_report("Could not find English spell file")
+  else
+    redraw
+    spelldump!
 
-  " :spelldump! includes the number of times a word was found while updating
-  " the screen.
-  " Common word count starts at 10, regular word count starts at 0.
-  call assert_notequal(0, search("^is\t11$"))    " common word found once.
-  call assert_notequal(0, search("^the\t10$"))   " common word never found.
-  call assert_notequal(0, search("^sample\t1$")) " regular word found once.
-  call assert_equal(0, search("^screen\t"))      " regular word never found.
+    " :spelldump! includes the number of times a word was found while updating
+    " the screen.
+    " Common word count starts at 10, regular word count starts at 0.
+    call assert_notequal(0, search("^is\t11$"))    " common word found once.
+    call assert_notequal(0, search("^the\t10$"))   " common word never found.
+    call assert_notequal(0, search("^sample\t1$")) " regular word found once.
+    call assert_equal(0, search("^screen\t"))      " regular word never found.
+  endif
 
+  " clean up
+  unlet g:en_not_found
+  augroup TestSpellFileMissing
+    autocmd! SpellFileMissing
+  augroup END
+  augroup! TestSpellFileMissing
   %bwipe!
   set spell&
 endfunc
--- a/src/version.c
+++ b/src/version.c
@@ -735,6 +735,8 @@ static char *(features[]) =
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    5098,
+/**/
     5097,
 /**/
     5096,