# HG changeset patch # User Bram Moolenaar # Date 1655308803 -7200 # Node ID a3564c0c9e0613d9e391133ae482596c97a50b16 # Parent b4839a29996e21eb9d7b48b35c55f19798607102 patch 8.2.5098: spelldump test sometimes hangs Commit: https://github.com/vim/vim/commit/fc9f0fd6d18c03d6420f84ebb374a373c830fbad Author: Bram Moolenaar 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. diff --git a/src/testdir/test_spell.vim b/src/testdir/test_spell.vim --- 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 diff --git a/src/version.c b/src/version.c --- 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,