summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2021-10-16 21:58:27 +0100
committerBram Moolenaar <Bram@vim.org>2021-10-16 21:58:27 +0100
commit40bd5a15405206b130d487af0ca61b5d9b5859f8 (patch)
treea1209713945fafa4c3ee07d7f3074b4462f5c948
parentd4c4bfa0078a959ff90ef30288fd31d9d38f23d7 (diff)
downloadvim-git-40bd5a15405206b130d487af0ca61b5d9b5859f8.tar.gz
patch 8.2.3526: tests have clumsy check for X11 based GUIv8.2.3526
Problem: Tests have clumsy check for X11 based GUI. Solution: Add CheckX11BasedGui.
-rw-r--r--src/testdir/check.vim8
-rw-r--r--src/testdir/setup_gui.vim1
-rw-r--r--src/testdir/test_gui.vim202
-rw-r--r--src/testdir/test_gui_init.vim36
-rw-r--r--src/version.c2
5 files changed, 99 insertions, 150 deletions
diff --git a/src/testdir/check.vim b/src/testdir/check.vim
index 6d2d564fa..55a64bd7a 100644
--- a/src/testdir/check.vim
+++ b/src/testdir/check.vim
@@ -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>)
diff --git a/src/testdir/setup_gui.vim b/src/testdir/setup_gui.vim
index 90ef1f1de..05e49997b 100644
--- a/src/testdir/setup_gui.vim
+++ b/src/testdir/setup_gui.vim
@@ -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.
diff --git a/src/testdir/test_gui.vim b/src/testdir/test_gui.vim
index 240fda355..84836e669 100644
--- a/src/testdir/test_gui.vim
+++ b/src/testdir/test_gui.vim
@@ -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,48 +108,41 @@ func Test_getwinpos()
endfunc
func Test_quoteplus()
- let g:test_is_flaky = 1
- let skipped = ''
+ CheckX11BasedGui
- if !g:x11_based_gui
- let skipped = g:not_supported . 'quoteplus'
- else
- let quoteplus_saved = @+
-
- let test_call = 'Can you hear me?'
- let test_response = 'Yes, I can.'
- let vim_exe = GetVimCommand()
- let testee = 'VIMRUNTIME=' . $VIMRUNTIME . '; export VIMRUNTIME;'
- \ . vim_exe . ' --noplugin --not-a-term -c ''%s'''
- " Ignore the "failed to create input context" error.
- let cmd = 'call test_ignore_error("E285") | '
- \ . 'gui -f | '
- \ . 'call feedkeys("'
- \ . '\"+p'
- \ . ':s/' . test_call . '/' . test_response . '/\<CR>'
- \ . '\"+yis'
- \ . ':q!\<CR>", "tx")'
- let run_vimtest = printf(testee, cmd)
-
- " Set the quoteplus register to test_call, and another gvim will launched.
- " Then, it first tries to paste the content of its own quotedplus register
- " onto it. Second, it tries to substitute test_response for the pasted
- " sentence. If the sentence is identical to test_call, the substitution
- " should succeed. Third, it tries to yank the result of the substitution
- " to its own quoteplus register, and last it quits. When system()
- " returns, the content of the quoteplus register should be identical to
- " test_response if those quoteplus registers are synchronized properly
- " with/through the X11 clipboard.
- let @+ = test_call
- call system(run_vimtest)
- call assert_equal(test_response, @+)
-
- let @+ = quoteplus_saved
- endif
+ let g:test_is_flaky = 1
- if !empty(skipped)
- throw skipped
- endif
+ let quoteplus_saved = @+
+
+ let test_call = 'Can you hear me?'
+ let test_response = 'Yes, I can.'
+ let vim_exe = GetVimCommand()
+ let testee = 'VIMRUNTIME=' . $VIMRUNTIME . '; export VIMRUNTIME;'
+ \ . vim_exe . ' --noplugin --not-a-term -c ''%s'''
+ " Ignore the "failed to create input context" error.
+ let cmd = 'call test_ignore_error("E285") | '
+ \ . 'gui -f | '
+ \ . 'call feedkeys("'
+ \ . '\"+p'
+ \ . ':s/' . test_call . '/' . test_response . '/\<CR>'
+ \ . '\"+yis'
+ \ . ':q!\<CR>", "tx")'
+ let run_vimtest = printf(testee, cmd)
+
+ " Set the quoteplus register to test_call, and another gvim will launched.
+ " Then, it first tries to paste the content of its own quotedplus register
+ " onto it. Second, it tries to substitute test_response for the pasted
+ " sentence. If the sentence is identical to test_call, the substitution
+ " should succeed. Third, it tries to yank the result of the substitution
+ " to its own quoteplus register, and last it quits. When system()
+ " returns, the content of the quoteplus register should be identical to
+ " test_response if those quoteplus registers are synchronized properly
+ " with/through the X11 clipboard.
+ let @+ = test_call
+ call system(run_vimtest)
+ call assert_equal(test_response, @+)
+
+ let @+ = quoteplus_saved
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()
+ CheckX11BasedGui
+
call assert_fails('set guifontwide=*', 'E533:')
- let skipped = ''
- if !g:x11_based_gui
- let skipped = g:not_implemented
- elseif has('gui_gtk')
+ if has('gui_gtk')
let guifont_saved = &guifont
let guifontwide_saved = &guifontwide
@@ -561,51 +537,31 @@ func Test_set_guifontwide()
let &encoding = encoding_saved
endif
endif
-
- if !empty(skipped)
- throw skipped
- endif
endfunc
func Test_set_guiligatures()
- let skipped = ''
-
- 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
- call assert_equal("<>=ab", &guiligatures)
- " Try to throw error
- try
- set guiligatures=<>=šab
- call assert_report("'set guiligatures=<>=šab should have failed")
- catch
- call assert_exception('E1243:')
- endtry
- endif
- endif
+ CheckX11BasedGui
- if !empty(skipped)
- throw skipped
+ if has('gui_gtk') || has('gui_gtk2') || has('gui_gnome') || has('gui_gtk3')
+ " Try correct value
+ set guiligatures=<>=ab
+ call assert_equal("<>=ab", &guiligatures)
+ " Try to throw error
+ try
+ set guiligatures=<>=šab
+ call assert_report("'set guiligatures=<>=šab should have failed")
+ catch
+ call assert_exception('E1243:')
+ endtry
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
+ " Since this script is to be read together with '-U NONE', the default
+ " value must be preserved.
+ call assert_equal(50, &guiheadroom)
endfunc
func Test_set_guioptions()
diff --git a/src/testdir/test_gui_init.vim b/src/testdir/test_gui_init.vim
index 70f0414c6..6f2201350 100644
--- a/src/testdir/test_gui_init.vim
+++ b/src/testdir/test_gui_init.vim
@@ -22,19 +22,11 @@ call test_ignore_error('E285:')
gui -f
func Test_set_guiheadroom()
- let skipped = ''
-
- 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
+ CheckX11BasedGui
+
+ " The 'expected' value must be consistent with the value specified with
+ " gui_init.vim.
+ call assert_equal(0, &guiheadroom)
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 = ''
-
- 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
+ CheckX11BasedGui
+
+ sleep 200ms
+ " Check if the 'p' option is included.
+ call assert_match('.*p.*', &guioptions)
endfunc
" vim: shiftwidth=2 sts=2 expandtab
diff --git a/src/version.c b/src/version.c
index ba4a99028..3b78cc808 100644
--- a/src/version.c
+++ b/src/version.c
@@ -758,6 +758,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 3526,
+/**/
3525,
/**/
3524,