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.

Raspunde prin e-mail lui