Patch 8.0.0332
Problem: GUI test fails on some systems.
Solution: Try different language settings. (Kazunobu Kuriyama)
Files: src/testdir/test_gui.vim
*** ../vim-8.0.0331/src/testdir/test_gui.vim 2017-02-12 19:59:02.937841640
+0100
--- src/testdir/test_gui.vim 2017-02-17 13:35:24.103505472 +0100
***************
*** 7,12 ****
--- 7,17 ----
let s:x11_based_gui = has('gui_athena') || has('gui_motif')
\ || has('gui_gtk2') || has('gui_gnome') || has('gui_gtk3')
+ " Reasons for 'skipped'.
+ let s:not_supported = "Skipped: Feature/Option not supported by this GUI: "
+ let s:not_implemented = "Skipped: Test not implemented yet for this GUI"
+ let s:not_hosted = "Skipped: Test not hosted by the system/environment"
+
" For KDE set a font, empty 'guifont' may cause a hang.
func SetUp()
if has("gui_kde")
***************
*** 36,96 ****
endfunc
func Test_getfontname_with_arg()
! if has('gui_athena') || has('gui_motif')
" Invalid font name. The result should be an empty string.
call assert_equal('', getfontname('notexist'))
" Valid font name. This is usually the real name of 7x13 by default.
! let l:fname = '-misc-fixed-medium-r-normal--13-120-75-75-c-70-iso8859-1'
! call assert_equal(l:fname, getfontname(l:fname))
elseif has('gui_gtk2') || has('gui_gnome') || has('gui_gtk3')
" Invalid font name. The result should be the name plus the default size.
call assert_equal('notexist 10', getfontname('notexist'))
" Valid font name. This is usually the real name of Monospace by default.
! let l:fname = 'Bitstream Vera Sans Mono 12'
! call assert_equal(l:fname, getfontname(l:fname))
! else
! throw "Skipped: Matched font name unpredictable to test on this GUI"
endif
endfunc
func Test_getfontname_without_arg()
! let l:fname = getfontname()
! if has('gui_kde')
" 'expected' is the value specified by SetUp() above.
! call assert_equal('Courier 10 Pitch/8/-1/5/50/0/0/0/0/0', l:fname)
elseif has('gui_athena') || has('gui_motif')
" 'expected' is DFLT_FONT of gui_x11.c.
! call assert_equal('7x13', l:fname)
elseif has('gui_gtk2') || has('gui_gnome') || has('gui_gtk3')
" 'expected' is DEFAULT_FONT of gui_gtk_x11.c.
! call assert_equal('Monospace 10', l:fname)
! else
! throw "Skipped: Default font name unpredictable to test on this GUI"
endif
endfunc
func Test_set_guifont()
! let l:guifont_saved = &guifont
if has('xfontset')
" Prevent 'guifontset' from canceling 'guifont'.
! let l:guifontset_saved = &guifontset
set guifontset=
endif
! let skipped = 0
! if has('gui_athena') || has('gui_motif')
" Non-empty font list with invalid font names.
"
" This test is twofold: (1) It checks if the command fails as expected
" when there are no loadable fonts found in the list. (2) It checks if
" 'guifont' remains the same after the command loads none of the fonts
" listed.
! let l:flist = &guifont
call assert_fails('set guifont=-notexist1-*,-notexist2-*')
! call assert_equal(l:flist, &guifont)
" Non-empty font list with a valid font name. Should pick up the first
" valid font.
--- 41,117 ----
endfunc
func Test_getfontname_with_arg()
! let skipped = ''
!
! if !s:x11_based_gui
! let skipped = s:not_implemented
! elseif has('gui_athena') || has('gui_motif')
" Invalid font name. The result should be an empty string.
call assert_equal('', getfontname('notexist'))
" Valid font name. This is usually the real name of 7x13 by default.
! let fname = '-misc-fixed-medium-r-normal--13-120-75-75-c-70-iso8859-1'
! call assert_equal(fname, getfontname(fname))
elseif has('gui_gtk2') || has('gui_gnome') || has('gui_gtk3')
" Invalid font name. The result should be the name plus the default size.
call assert_equal('notexist 10', getfontname('notexist'))
" Valid font name. This is usually the real name of Monospace by default.
! let fname = 'Bitstream Vera Sans Mono 12'
! call assert_equal(fname, getfontname(fname))
! endif
!
! if !empty(skipped)
! throw skipped
endif
endfunc
func Test_getfontname_without_arg()
! let skipped = ''
!
! let fname = getfontname()
!
! if !s:x11_based_gui
! let skipped = s:not_implemented
! elseif has('gui_kde')
" 'expected' is the value specified by SetUp() above.
! call assert_equal('Courier 10 Pitch/8/-1/5/50/0/0/0/0/0', fname)
elseif has('gui_athena') || has('gui_motif')
" 'expected' is DFLT_FONT of gui_x11.c.
! call assert_equal('7x13', fname)
elseif has('gui_gtk2') || has('gui_gnome') || has('gui_gtk3')
" 'expected' is DEFAULT_FONT of gui_gtk_x11.c.
! call assert_equal('Monospace 10', fname)
! endif
!
! if !empty(skipped)
! throw skipped
endif
endfunc
func Test_set_guifont()
! let skipped = ''
!
! let guifont_saved = &guifont
if has('xfontset')
" Prevent 'guifontset' from canceling 'guifont'.
! let guifontset_saved = &guifontset
set guifontset=
endif
! if !s:x11_based_gui
! let skipped = s:not_implemented
! elseif has('gui_athena') || has('gui_motif')
" Non-empty font list with invalid font names.
"
" This test is twofold: (1) It checks if the command fails as expected
" when there are no loadable fonts found in the list. (2) It checks if
" 'guifont' remains the same after the command loads none of the fonts
" listed.
! let flist = &guifont
call assert_fails('set guifont=-notexist1-*,-notexist2-*')
! call assert_equal(flist, &guifont)
" Non-empty font list with a valid font name. Should pick up the first
" valid font.
***************
*** 116,222 ****
" Empty list. Should fallback to the built-in default.
set guifont=
call assert_equal('Monospace 10', getfontname())
-
- else
- let skipped = 1
endif
if has('xfontset')
! let &guifontset = l:guifontset_saved
endif
! let &guifont = l:guifont_saved
! if skipped
! throw "Skipped: Test not implemented yet for this GUI"
endif
endfunc
func Test_set_guifontset()
! let skipped = 0
! if has('xfontset')
! let l:ctype_saved = v:ctype
! " For UTF-8 locales, XCreateFontSet(3) is likely to fail in constructing a
! " fontset automatically from one or two simple XLFDs because it requires
! " the host system to have a fairly comprehensive collection of fixed-width
! " fonts with various sizes and registries/encodings in order to get the
! " job done. To make the test meaningful for a wide variety of hosts, we
! " confine ourselves to the following locale for which X11 historically has
! " the fonts to use with.
! language ctype ja_JP.eucJP
!
! " Since XCreateFontSet(3) is very sensitive to locale, fonts must be
! " chosen meticulously.
! let l:font_head = '-misc-fixed-medium-r-normal--14'
!
! let l:font_aw70 = l:font_head . '-130-75-75-c-70'
! let l:font_aw140 = l:font_head . '-130-75-75-c-140'
!
! let l:font_jisx0201 = l:font_aw70 . '-jisx0201.1976-0'
! let l:font_jisx0208 = l:font_aw140 . '-jisx0208.1983-0'
!
! " Full XLFDs
! let l:fontset_name = join([ l:font_jisx0208, l:font_jisx0201 ], ',')
! exec 'set guifontset=' . l:fontset_name
! call assert_equal(l:fontset_name, &guifontset)
!
! " XLFDs w/o CharSetRegistry and CharSetEncoding
! let l:fontset_name = join([ l:font_aw140, l:font_aw70 ], ',')
! exec 'set guifontset=' . l:fontset_name
! call assert_equal(l:fontset_name, &guifontset)
!
! " Singleton
! let l:fontset_name = l:font_head . '-*'
! exec 'set guifontset=' . l:fontset_name
! call assert_equal(l:fontset_name, &guifontset)
!
! " Aliases
! let l:fontset_name = 'k14,r14'
! exec 'set guifontset=' . l:fontset_name
! call assert_equal(l:fontset_name, &guifontset)
! exec 'language ctype' l:ctype_saved
! else
! let skipped = 1
endif
! if skipped
! throw "Skipped: Not supported by this GUI"
endif
endfunc
func Test_set_guifontwide()
! let skipped = 0
! if has('gui_gtk')
! let l:guifont_saved = &guifont
! let l:guifontwide_saved = &guifontwide
!
! let l:fc_match = exepath('fc-match')
! if l:fc_match != ''
! let &guifont = system('fc-match -f "%{family[0]} %{size}"
monospace:size=10')
! let l:wide = system('fc-match -f "%{family[0]} %{size}"
monospace:size=10:lang=ja')
! exec 'set guifontwide=' . fnameescape(l:wide)
! call assert_equal(l:wide, &guifontwide)
else
! let skipped = 3
endif
! let &guifontwide = l:guifontwide_saved
! let &guifont = l:guifont_saved
elseif has('gui_athena') || has('gui_motif')
" guifontwide is premised upon the xfontset feature.
! if has('xfontset')
! let l:encoding_saved = &encoding
! let l:guifont_saved = &guifont
! let l:guifontset_saved = &guifontset
! let l:guifontwide_saved = &guifontwide
! let l:nfont =
'-misc-fixed-medium-r-normal-*-18-120-100-100-c-90-iso10646-1'
! let l:wfont =
'-misc-fixed-medium-r-normal-*-18-120-100-100-c-180-iso10646-1'
set encoding=utf-8
--- 137,260 ----
" Empty list. Should fallback to the built-in default.
set guifont=
call assert_equal('Monospace 10', getfontname())
endif
if has('xfontset')
! let &guifontset = guifontset_saved
endif
! let &guifont = guifont_saved
! if !empty(skipped)
! throw skipped
endif
endfunc
func Test_set_guifontset()
! let skipped = ''
! if !has('xfontset')
! let skipped = s:not_supported . 'xfontset'
! else
! let ctype_saved = v:ctype
! " First, since XCreateFontSet(3) is very sensitive to locale, fonts must
! " be chosen meticulously.
! let font_head = '-misc-fixed-medium-r-normal--14'
!
! let font_aw70 = font_head . '-130-75-75-c-70'
! let font_aw140 = font_head . '-130-75-75-c-140'
!
! let font_jisx0201 = font_aw70 . '-jisx0201.1976-0'
! let font_jisx0208 = font_aw140 . '-jisx0208.1983-0'
!
! let full_XLFDs = join([ font_jisx0208, font_jisx0201 ], ',')
! let short_XLFDs = join([ font_aw140, font_aw70 ], ',')
! let singleton = font_head . '-*'
! let aliases = 'k14,r14'
!
! " Second, among 'locales', look up such a locale that gets 'set
! " guifontset=' to work successfully with every fontset specified with
! " 'fontsets'.
! let locales = [ 'ja_JP.UTF-8', 'ja_JP.eucJP', 'ja_JP.SJIS' ]
! let fontsets = [ full_XLFDs, short_XLFDs, singleton, aliases ]
! let feasible = 0
! for locale in locales
! try
! exec 'language ctype' locale
! catch /^Vim\%((\a\+)\)\=:E197/
! continue
! endtry
! let done = 0
! for fontset in fontsets
! try
! exec 'set guifontset=' . fontset
! catch /^Vim\%((\a\+)\)\=:E\%(250\|252\|234\|597\|598\)/
! break
! endtry
! let done += 1
! endfor
! if done == len(fontsets)
! let feasible = 1
! break
! endif
! endfor
!
! " Third, give a set of tests if it is found feasible.
! if !feasible
! let skipped = s:not_hosted
! else
! " N.B. 'v:ctype' has already been set to an appropriate value in the
! " previous loop.
! for fontset in fontsets
! exec 'set guifontset=' . fontset
! call assert_equal(fontset, &guifontset)
! endfor
! endif
! " Finally, restore ctype.
! exec 'language ctype' ctype_saved
endif
! if !empty(skipped)
! throw skipped
endif
endfunc
func Test_set_guifontwide()
! let skipped = ''
! if !s:x11_based_gui
! let skipped = s:not_implemented
! elseif has('gui_gtk')
! let guifont_saved = &guifont
! let guifontwide_saved = &guifontwide
!
! let fc_match = exepath('fc-match')
! if empty(fc_match)
! let skipped = s:not_hosted
else
! let &guifont = system('fc-match -f "%{family[0]} %{size}"
monospace:size=10:lang=en')
! let wide = system('fc-match -f "%{family[0]} %{size}"
monospace:size=10:lang=ja')
! exec 'set guifontwide=' . fnameescape(wide)
! call assert_equal(wide, &guifontwide)
endif
! let &guifontwide = guifontwide_saved
! let &guifont = guifont_saved
elseif has('gui_athena') || has('gui_motif')
" guifontwide is premised upon the xfontset feature.
! if !has('xfontset')
! let skipped = s:not_supported . 'xfontset'
! else
! let encoding_saved = &encoding
! let guifont_saved = &guifont
! let guifontset_saved = &guifontset
! let guifontwide_saved = &guifontwide
! let nfont =
'-misc-fixed-medium-r-normal-*-18-120-100-100-c-90-iso10646-1'
! let wfont =
'-misc-fixed-medium-r-normal-*-18-120-100-100-c-180-iso10646-1'
set encoding=utf-8
***************
*** 225,242 ****
" Case 1-1: Automatic selection
set guifontwide=
! exec 'set guifont=' . l:nfont
! call assert_equal(l:wfont, &guifontwide)
" Case 1-2: Manual selection
! exec 'set guifontwide=' . l:wfont
! exec 'set guifont=' . l:nfont
! call assert_equal(l:wfont, &guifontwide)
" Case 2: guifontset is invalid
try
set guifontset=-*-notexist-*
! call assert_false(1, "'set guifontset=notexist' should have failed")
catch
call assert_exception('E598')
endtry
--- 263,280 ----
" Case 1-1: Automatic selection
set guifontwide=
! exec 'set guifont=' . nfont
! call assert_equal(wfont, &guifontwide)
" Case 1-2: Manual selection
! exec 'set guifontwide=' . wfont
! exec 'set guifont=' . nfont
! call assert_equal(wfont, &guifontwide)
" Case 2: guifontset is invalid
try
set guifontset=-*-notexist-*
! call assert_false(1, "'set guifontset=-*-notexist-*' should have
failed")
catch
call assert_exception('E598')
endtry
***************
*** 245,275 ****
" Case 2-1: Automatic selection
set guifontwide=
! exec 'set guifont=' . l:nfont
! call assert_equal(l:wfont, &guifontwide)
" Case 2-2: Manual selection
! exec 'set guifontwide=' . l:wfont
! exec 'set guifont=' . l:nfont
! call assert_equal(l:wfont, &guifontwide)
!
! let &guifontwide = l:guifontwide_saved
! let &guifontset = l:guifontset_saved
! let &guifont = l:guifont_saved
! let &encoding = l:encoding_saved
! else
! let skipped = 2
endif
- else
- let skipped = 1
endif
! if skipped == 1
! throw "Skipped: Test not implemented yet for this GUI"
! elseif skipped == 2
! throw "Skipped: Not supported by this GUI"
! elseif skipped == 3
! throw "Skipped: Test not supported by the environment"
endif
endfunc
--- 283,305 ----
" Case 2-1: Automatic selection
set guifontwide=
! exec 'set guifont=' . nfont
! call assert_equal(wfont, &guifontwide)
" Case 2-2: Manual selection
! exec 'set guifontwide=' . wfont
! exec 'set guifont=' . nfont
! call assert_equal(wfont, &guifontwide)
!
! let &guifontwide = guifontwide_saved
! let &guifontset = guifontset_saved
! let &guifont = guifont_saved
! let &encoding = encoding_saved
endif
endif
! if !empty(skipped)
! throw skipped
endif
endfunc
*** ../vim-8.0.0331/src/version.c 2017-02-17 12:04:35.843808317 +0100
--- src/version.c 2017-02-17 13:36:42.938916108 +0100
***************
*** 766,767 ****
--- 766,769 ----
{ /* Add new patch number below this line */
+ /**/
+ 332,
/**/
--
This computer is so slow, it takes forever to execute and endless loop!
/// 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].
For more options, visit https://groups.google.com/d/optout.