mirror of
https://github.com/zoriya/vim.git
synced 2025-12-21 06:35:17 +00:00
patch 8.2.3526: tests have clumsy check for X11 based GUI
Problem: Tests have clumsy check for X11 based GUI. Solution: Add CheckX11BasedGui.
This commit is contained in:
@@ -217,6 +217,14 @@ func CheckNotAsan()
|
||||
endif
|
||||
endfunc
|
||||
|
||||
" Command to check for X11 based GUI
|
||||
command CheckX11BasedGui call CheckX11BasedGui()
|
||||
func CheckX11BasedGui()
|
||||
if !g:x11_based_gui
|
||||
throw 'Skipped: requires X11 based GUI'
|
||||
endif
|
||||
endfunc
|
||||
|
||||
" Command to check for satisfying any of the conditions.
|
||||
" e.g. CheckAnyOf Feature:bsd Feature:sun Linux
|
||||
command -nargs=+ CheckAnyOf call CheckAnyOf(<f-args>)
|
||||
|
||||
@@ -5,7 +5,6 @@ let g:x11_based_gui = has('gui_athena') || has('gui_motif')
|
||||
|
||||
" Reasons for 'skipped'.
|
||||
let g:not_supported = "Skipped: Feature/Option not supported by this GUI: "
|
||||
let g:not_implemented = "Skipped: Test not implemented yet for this GUI"
|
||||
let g:not_hosted = "Skipped: Test not hosted by the system/environment"
|
||||
|
||||
" For KDE set a font, empty 'guifont' may cause a hang.
|
||||
|
||||
@@ -61,11 +61,9 @@ func Test_colorscheme()
|
||||
endfunc
|
||||
|
||||
func Test_getfontname_with_arg()
|
||||
let skipped = ''
|
||||
CheckX11BasedGui
|
||||
|
||||
if !g:x11_based_gui
|
||||
let skipped = g:not_implemented
|
||||
elseif has('gui_athena') || has('gui_motif')
|
||||
if has('gui_athena') || has('gui_motif')
|
||||
" Invalid font name. The result should be an empty string.
|
||||
call assert_equal('', getfontname('notexist'))
|
||||
|
||||
@@ -82,20 +80,14 @@ func Test_getfontname_with_arg()
|
||||
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 = ''
|
||||
CheckX11BasedGui
|
||||
|
||||
let fname = getfontname()
|
||||
|
||||
if !g:x11_based_gui
|
||||
let skipped = g:not_implemented
|
||||
elseif has('gui_kde')
|
||||
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', fname)
|
||||
elseif has('gui_athena') || has('gui_motif')
|
||||
@@ -106,10 +98,6 @@ func Test_getfontname_without_arg()
|
||||
" '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_getwinpos()
|
||||
@@ -120,12 +108,10 @@ func Test_getwinpos()
|
||||
endfunc
|
||||
|
||||
func Test_quoteplus()
|
||||
let g:test_is_flaky = 1
|
||||
let skipped = ''
|
||||
CheckX11BasedGui
|
||||
|
||||
let g:test_is_flaky = 1
|
||||
|
||||
if !g:x11_based_gui
|
||||
let skipped = g:not_supported . 'quoteplus'
|
||||
else
|
||||
let quoteplus_saved = @+
|
||||
|
||||
let test_call = 'Can you hear me?'
|
||||
@@ -157,11 +143,6 @@ func Test_quoteplus()
|
||||
call assert_equal(test_response, @+)
|
||||
|
||||
let @+ = quoteplus_saved
|
||||
endif
|
||||
|
||||
if !empty(skipped)
|
||||
throw skipped
|
||||
endif
|
||||
endfunc
|
||||
|
||||
func Test_set_background()
|
||||
@@ -333,8 +314,29 @@ func Test_set_guicursor()
|
||||
let &guicursor = guicursor_saved
|
||||
endfunc
|
||||
|
||||
func Test_set_guifont_errors()
|
||||
if has('win32')
|
||||
" Invalid font names are accepted in GTK GUI
|
||||
call assert_fails('set guifont=xa1bc23d7f', 'E596:')
|
||||
endif
|
||||
|
||||
" This only works if 'renderoptions' exists and does not work for Windows XP
|
||||
" and older.
|
||||
if exists('+renderoptions') && windowsversion() !~ '^[345]\.'
|
||||
" doing this four times used to cause a crash
|
||||
set renderoptions=type:directx
|
||||
for i in range(5)
|
||||
set guifont=
|
||||
endfor
|
||||
set renderoptions=
|
||||
for i in range(5)
|
||||
set guifont=
|
||||
endfor
|
||||
endif
|
||||
endfunc
|
||||
|
||||
func Test_set_guifont()
|
||||
let skipped = ''
|
||||
CheckX11BasedGui
|
||||
|
||||
let guifont_saved = &guifont
|
||||
if has('xfontset')
|
||||
@@ -343,9 +345,7 @@ func Test_set_guifont()
|
||||
set guifontset=
|
||||
endif
|
||||
|
||||
if !g:x11_based_gui
|
||||
let skipped = g:not_implemented
|
||||
elseif has('gui_athena') || has('gui_motif')
|
||||
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
|
||||
@@ -384,33 +384,10 @@ func Test_set_guifont()
|
||||
call assert_equal('Monospace 10', getfontname())
|
||||
endif
|
||||
|
||||
if has('win32')
|
||||
" Invalid font names are accepted in GTK GUI
|
||||
call assert_fails('set guifont=xa1bc23d7f', 'E596:')
|
||||
endif
|
||||
|
||||
" This only works if 'renderoptions' exists and does not work for Windows XP
|
||||
" and older.
|
||||
if exists('+renderoptions') && windowsversion() !~ '^[345]\.'
|
||||
" doing this four times used to cause a crash
|
||||
set renderoptions=type:directx
|
||||
for i in range(5)
|
||||
set guifont=
|
||||
endfor
|
||||
set renderoptions=
|
||||
for i in range(5)
|
||||
set guifont=
|
||||
endfor
|
||||
endif
|
||||
|
||||
if has('xfontset')
|
||||
let &guifontset = guifontset_saved
|
||||
endif
|
||||
let &guifont = guifont_saved
|
||||
|
||||
if !empty(skipped)
|
||||
throw skipped
|
||||
endif
|
||||
endfunc
|
||||
|
||||
func Test_set_guifontset()
|
||||
@@ -485,12 +462,11 @@ func Test_set_guifontset()
|
||||
endfunc
|
||||
|
||||
func Test_set_guifontwide()
|
||||
call assert_fails('set guifontwide=*', 'E533:')
|
||||
let skipped = ''
|
||||
CheckX11BasedGui
|
||||
|
||||
if !g:x11_based_gui
|
||||
let skipped = g:not_implemented
|
||||
elseif has('gui_gtk')
|
||||
call assert_fails('set guifontwide=*', 'E533:')
|
||||
|
||||
if has('gui_gtk')
|
||||
let guifont_saved = &guifont
|
||||
let guifontwide_saved = &guifontwide
|
||||
|
||||
@@ -561,18 +537,11 @@ func Test_set_guifontwide()
|
||||
let &encoding = encoding_saved
|
||||
endif
|
||||
endif
|
||||
|
||||
if !empty(skipped)
|
||||
throw skipped
|
||||
endif
|
||||
endfunc
|
||||
|
||||
func Test_set_guiligatures()
|
||||
let skipped = ''
|
||||
CheckX11BasedGui
|
||||
|
||||
if !g:x11_based_gui
|
||||
let skipped = g:not_supported . 'guiligatures'
|
||||
else
|
||||
if has('gui_gtk') || has('gui_gtk2') || has('gui_gnome') || has('gui_gtk3')
|
||||
" Try correct value
|
||||
set guiligatures=<>=ab
|
||||
@@ -585,27 +554,14 @@ func Test_set_guiligatures()
|
||||
call assert_exception('E1243:')
|
||||
endtry
|
||||
endif
|
||||
endif
|
||||
|
||||
if !empty(skipped)
|
||||
throw skipped
|
||||
endif
|
||||
endfunc
|
||||
|
||||
func Test_set_guiheadroom()
|
||||
let skipped = ''
|
||||
CheckX11BasedGui
|
||||
|
||||
if !g:x11_based_gui
|
||||
let skipped = g:not_supported . 'guiheadroom'
|
||||
else
|
||||
" Since this script is to be read together with '-U NONE', the default
|
||||
" value must be preserved.
|
||||
call assert_equal(50, &guiheadroom)
|
||||
endif
|
||||
|
||||
if !empty(skipped)
|
||||
throw skipped
|
||||
endif
|
||||
endfunc
|
||||
|
||||
func Test_set_guioptions()
|
||||
|
||||
@@ -22,19 +22,11 @@ call test_ignore_error('E285:')
|
||||
gui -f
|
||||
|
||||
func Test_set_guiheadroom()
|
||||
let skipped = ''
|
||||
CheckX11BasedGui
|
||||
|
||||
if !g:x11_based_gui
|
||||
let skipped = g:not_supported . 'guiheadroom'
|
||||
else
|
||||
" The 'expected' value must be consistent with the value specified with
|
||||
" gui_init.vim.
|
||||
call assert_equal(0, &guiheadroom)
|
||||
endif
|
||||
|
||||
if !empty(skipped)
|
||||
throw skipped
|
||||
endif
|
||||
endfunc
|
||||
|
||||
func Test_set_guioptions_for_M()
|
||||
@@ -44,19 +36,11 @@ func Test_set_guioptions_for_M()
|
||||
endfunc
|
||||
|
||||
func Test_set_guioptions_for_p()
|
||||
let skipped = ''
|
||||
CheckX11BasedGui
|
||||
|
||||
if !g:x11_based_gui
|
||||
let skipped = g:not_supported . '''p'' of guioptions'
|
||||
else
|
||||
sleep 200ms
|
||||
" Check if the 'p' option is included.
|
||||
call assert_match('.*p.*', &guioptions)
|
||||
endif
|
||||
|
||||
if !empty(skipped)
|
||||
throw skipped
|
||||
endif
|
||||
endfunc
|
||||
|
||||
" vim: shiftwidth=2 sts=2 expandtab
|
||||
|
||||
@@ -757,6 +757,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
3526,
|
||||
/**/
|
||||
3525,
|
||||
/**/
|
||||
|
||||
Reference in New Issue
Block a user