patch 9.1.1370: CI Tests favor GTK2 over GTK3

Problem:  CI Tests favor GTK2 over GTK3
Solution: Install GTK3 dependencies and debug packages for CI workflows,
          update ASAN suppression list, update required dependency
          checks for the tests (Drew Vogel)

closes: #17253

Signed-off-by: Drew Vogel <dvogel@github>
Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
Drew Vogel
2025-05-07 22:05:17 +02:00
committed by Christian Brabandt
parent 9670f61d46
commit ea67ba718d
46 changed files with 318 additions and 33 deletions

View File

@ -111,22 +111,50 @@ jobs:
run: | run: |
sudo bash ci/remove_snap.sh sudo bash ci/remove_snap.sh
- name: Enable debug packages
run: |
# Some of the ASAN suppressions are in libraries linked with dlopen
# and symbolization of them requires these debug packages.
sudo apt install ubuntu-dbgsym-keyring
sudo cp ci/ddebs.list /etc/apt/sources.list.d/ddebs.list
sudo cp ci/pinned-pkgs /etc/apt/preferences.d/pinned-pkgs
- name: Install packages - name: Install packages
run: | run: |
# This is added by default, and it is often broken, but we don't need anything from it # This is added by default, and it is often broken, but we don't need anything from it
sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list
PKGS=( \ PKGS=( \
gettext \ gettext \
libgtk2.0-dev:${{ matrix.architecture }} \ libgtk-3-dev:${{ matrix.architecture }} \
libgtk-3-bin:${{ matrix.architecture }} \
desktop-file-utils \ desktop-file-utils \
libc6-dbgsym:${{ matrix.architecture }} \
libtool-bin \ libtool-bin \
libncurses-dev:${{ matrix.architecture }} \ libncurses-dev:${{ matrix.architecture }} \
libxt-dev:${{ matrix.architecture }} \ libxt-dev:${{ matrix.architecture }} \
libegl-mesa0:${{ matrix.architecture }} \
libegl1:${{ matrix.architecture }} \
libegl1-mesa-dev:${{ matrix.architecture }} \
libepoxy-dev:${{ matrix.architecture }} \
libwayland-egl1:${{ matrix.architecture }} \
libwayland-client0:${{ matrix.architecture }} \
libwayland-cursor0:${{ matrix.architecture }} \
locales-all \ locales-all \
software-properties-common \ software-properties-common \
sway \ sway \
) )
if ${{ contains(matrix.extra, 'asan') }} && ${{ contains(matrix.architecture, 'native') }}; then
PKGS+=( \
libepoxy0-dbgsym:${{ matrix.architecture }} \
libxdamage1-dbgsym:${{ matrix.architecture }} \
libxcb1-dbgsym:${{ matrix.architecture }} \
libgtk-3-bin-dbgsym:${{ matrix.architecture }} \
libgtk-3-0t64-dbgsym:${{ matrix.architecture }} \
libglib2.0-0t64-dbgsym:${{ matrix.architecture }} \
libglib2.0-bin-dbgsym:${{ matrix.architecture }} \
libglib2.0-dev-bin-dbgsym:${{ matrix.architecture }} \
)
fi
if ${{ matrix.features == 'huge' }}; then if ${{ matrix.features == 'huge' }}; then
LUA_VER=${{ matrix.lua_ver || '5.4' }} LUA_VER=${{ matrix.lua_ver || '5.4' }}
PKGS+=( \ PKGS+=( \
@ -146,8 +174,7 @@ jobs:
libattr1-dev libattr1-dev
) )
fi fi
sudo apt-get update && sudo apt-get upgrade -y --allow-downgrades && sudo apt-get install -y --allow-downgrades "${PKGS[@]}"
sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get install -y "${PKGS[@]}"
- name: Install gcc-${{ env.GCC_VER }} - name: Install gcc-${{ env.GCC_VER }}
if: matrix.compiler == 'gcc' if: matrix.compiler == 'gcc'
@ -225,6 +252,8 @@ jobs:
echo "TEST=-C runtime/doc vimtags VIMEXE=../../${SRCDIR}/vim" echo "TEST=-C runtime/doc vimtags VIMEXE=../../${SRCDIR}/vim"
fi fi
echo "CFLAGS=${CFLAGS}" echo "CFLAGS=${CFLAGS}"
# Disables GTK attempt to integrate with the accessibility service that does run in CI.
echo "NO_AT_BRIDGE=1"
) >> $GITHUB_ENV ) >> $GITHUB_ENV
- name: Set up system - name: Set up system
@ -281,15 +310,6 @@ jobs:
fi fi
- name: Test - name: Test
if: matrix.architecture != 'arm64'
timeout-minutes: 25
run: |
make ${SHADOWOPT} ${TEST}
# `sg audio` does not work on arm64 runner due to permission ('Incorrect password' error).
- name: Test on arm64
if: matrix.architecture == 'arm64'
timeout-minutes: 25 timeout-minutes: 25
run: | run: |
make ${SHADOWOPT} ${TEST} make ${SHADOWOPT} ${TEST}

View File

@ -27,6 +27,8 @@ SRC_ALL = \
ci/setup-xvfb.sh \ ci/setup-xvfb.sh \
ci/setup-sway.sh \ ci/setup-sway.sh \
ci/remove_snap.sh \ ci/remove_snap.sh \
ci/ddebs.list \
ci/pinned-pkgs \
src/Make_all.mak \ src/Make_all.mak \
src/README.md \ src/README.md \
src/alloc.c \ src/alloc.c \

3
ci/ddebs.list Normal file
View File

@ -0,0 +1,3 @@
deb http://ddebs.ubuntu.com noble main restricted universe multiverse
deb http://ddebs.ubuntu.com noble-updates main restricted universe multiverse
deb http://ddebs.ubuntu.com noble-proposed main restricted universe multiverse

69
ci/pinned-pkgs Normal file
View File

@ -0,0 +1,69 @@
# Unfortunately ubtunu does not keep the debug packages strictly up-to-date
# with the main packages. So this file needs to pin the main packages back to
# the version for which debug packages are available.
Package: libwayland-client0
Pin: version 1.20.0-1
Pin-Priority: 1000
Package: libwayland-client0
Pin: version 1.20.0-1ubuntu0.1
Pin-Priority: 100
Package: libwayland-cursor0
Pin: version 1.20.0-1
Pin-Priority: 1000
Package: libwayland-cursor0
Pin: version 1.20.0-1ubuntu0.1
Pin-Priority: 100
Package: libwayland-egl1
Pin: version 1.20.0-1
Pin-Priority: 1000
Package: libwayland-egl1
Pin: version 1.20.0-1ubuntu0.1
Pin-Priority: 100
Package: libwayland-dev
Pin: version 1.20.0-1
Pin-Priority: 1000
Package: libwayland-dev
Pin: version 1.20.0-1ubuntu0.1
Pin-Priority: 100
Package: libwayland-server0
Pin: version 1.20.0-1
Pin-Priority: 1000
Package: libwayland-server0
Pin: version 1.20.0-1ubuntu0.1
Pin-Priority: 100
Package: libwayland-bin
Pin: version 1.20.0-1
Pin-Priority: 1000
Package: libwayland-bin
Pin: version 1.20.0-1ubuntu0.1
Pin-Priority: 100
# As of 2025-04-27 the base library package libgtk-3-0t64 is still at 3.24.41-4ubuntu1.2
Package: libgtk-3-0t64-dbgsym
Pin: version 3.24.41-4ubuntu1.2
Pin-Priority: 1000
Package: libgtk-3-0t64-dbgsym
Pin: version 3.24.41-4ubuntu1.3
Pin-Priority: 100
# As of 2025-04-27 the base binary package libgtk-3-bin is still at 3.24.41-4ubuntu1.2
Package: libgtk-3-bin-dbgsym
Pin: version 3.24.41-4ubuntu1.2
Pin-Priority: 1000
Package: libgtk-3-bin-dbgsym
Pin: version 3.24.41-4ubuntu1.3
Pin-Priority: 100

View File

@ -4531,11 +4531,14 @@ gui_mch_open(void)
pixel_width = (guint)(gui_get_base_width() + Columns * gui.char_width); pixel_width = (guint)(gui_get_base_width() + Columns * gui.char_width);
pixel_height = (guint)(gui_get_base_height() + Rows * gui.char_height); pixel_height = (guint)(gui_get_base_height() + Rows * gui.char_height);
# if !GTK_CHECK_VERSION(3,0,0)
// For GTK2 changing the size of the form widget doesn't cause window // For GTK2 changing the size of the form widget doesn't cause window
// resizing. // resizing.
if (gtk_socket_id == 0) if (gtk_socket_id == 0)
gtk_window_resize(GTK_WINDOW(gui.mainwin), pixel_width, pixel_height); gtk_window_resize(GTK_WINDOW(gui.mainwin), pixel_width, pixel_height);
update_window_manager_hints(0, 0); update_window_manager_hints(0, 0);
# endif
if (foreground_argument != NULL) if (foreground_argument != NULL)
fg_pixel = gui_get_color((char_u *)foreground_argument); fg_pixel = gui_get_color((char_u *)foreground_argument);

View File

@ -127,13 +127,39 @@ func CheckNotMacM1()
endif endif
endfunc endfunc
func SetupWindowSizeToForVisualDumps()
" The dumps used as reference in these tests were created with a terminal
" width of 75 columns. The vim window that uses the remainder of the GUI
" window width must be at least 3 columns. In theory this means we need the
" GUI shell to provide 78+ columns. However the GTK3 resize logic is flaky,
" sometimes resulting in X11 Configure events that are narrower than
" expected by a number of pixels equal to 2 column widths. Therefore
" setting 80 columns ensures that the GUI shell can still provide 78+
" columns. This is very likely papering over a GTK3 resize bug but one that
" has existed for a very long time. Establishing this workaround is meant to
" get the GTK3 code working under CI so that we can focus on removing this
" over the long term.
if &columns != 80
set columns=80
endif
" Without resetting lines, some GTK3 resize events can carry over between
" tests, which invalidate assumptions in the scrollbar offset calculations.
if &lines != 25
set lines=25
endif
endfunc
" Command to check that making screendumps is supported. " Command to check that making screendumps is supported.
" Caller must source screendump.vim " Caller must source screendump.vim
command CheckScreendump call CheckScreendump() command CheckScreendump call CheckScreendump()
func CheckScreendump() func CheckScreendump()
let g:check_screendump_called = v:true
if !CanRunVimInTerminal() if !CanRunVimInTerminal()
throw 'Skipped: cannot make screendumps' throw 'Skipped: cannot make screendumps'
endif endif
if has('gui_running')
call SetupWindowSizeToForVisualDumps()
endif
endfunc endfunc
" Command to check that we can Run Vim in a terminal window " Command to check that we can Run Vim in a terminal window

View File

@ -11,3 +11,6 @@ leak:libperl.so.*
leak:libpython*.so.* leak:libpython*.so.*
leak:libruby*.so.* leak:libruby*.so.*
leak:libxcb*.so.* leak:libxcb*.so.*
# The renderer leaks 128 bytes of metadata when run under CI. Seems to only
# happen with software rendering.
leak:gdk_x11_screen_init_gl

View File

@ -606,6 +606,8 @@ for g:testfunc in sort(s:tests)
" A test can set g:test_is_flaky to retry running the test. " A test can set g:test_is_flaky to retry running the test.
let g:test_is_flaky = 0 let g:test_is_flaky = 0
let g:check_screendump_called = v:false
" A test can set g:max_run_nr to change the max retry count. " A test can set g:max_run_nr to change the max retry count.
let g:max_run_nr = 5 let g:max_run_nr = 5
if has('mac') if has('mac')

View File

@ -48,6 +48,10 @@ enddef
" message. Use this when using the same dump file with different options. " message. Use this when using the same dump file with different options.
" Returns non-zero when verification fails. " Returns non-zero when verification fails.
func VerifyScreenDump(buf, filename, options, ...) func VerifyScreenDump(buf, filename, options, ...)
if has('gui_running') && exists("g:check_screendump_called") && g:check_screendump_called == v:false
echoerr "VerifyScreenDump() called from a test that lacks a CheckScreendump guard."
return 1
endif
let reference = 'dumps/' . a:filename . '.dump' let reference = 'dumps/' . a:filename . '.dump'
let filter = 'dumps/' . a:filename . '.vim' let filter = 'dumps/' . a:filename . '.vim'
let testfile = 'failed/' . a:filename . '.dump' let testfile = 'failed/' . a:filename . '.dump'

View File

@ -580,6 +580,7 @@ func Test_WinScrolled_close_curwin()
endfunc endfunc
func Test_WinScrolled_once_only() func Test_WinScrolled_once_only()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -609,6 +610,7 @@ endfunc
" Check that WinScrolled is not triggered immediately when defined and there " Check that WinScrolled is not triggered immediately when defined and there
" are split windows. " are split windows.
func Test_WinScrolled_not_when_defined() func Test_WinScrolled_not_when_defined()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -3024,6 +3026,7 @@ endfunc
func Test_autocmd_nested_switch_window() func Test_autocmd_nested_switch_window()
" run this in a separate Vim so that SafeState works " run this in a separate Vim so that SafeState works
CheckRunVimInTerminal CheckRunVimInTerminal
CheckScreendump
let lines =<< trim END let lines =<< trim END
vim9script vim9script

View File

@ -6,7 +6,6 @@ CheckNotGui
CheckFeature balloon_eval_term CheckFeature balloon_eval_term
source screendump.vim source screendump.vim
CheckScreendump
let s:common_script =<< trim [CODE] let s:common_script =<< trim [CODE]
call setline(1, ["one one one", "two tXo two", "three three three"]) call setline(1, ["one one one", "two tXo two", "three three three"])
@ -19,6 +18,7 @@ let s:common_script =<< trim [CODE]
[CODE] [CODE]
func Test_balloon_eval_term() func Test_balloon_eval_term()
CheckScreendump
" Use <Ignore> after <MouseMove> to return from vgetc() without removing " Use <Ignore> after <MouseMove> to return from vgetc() without removing
" the balloon. " the balloon.
let xtra_lines =<< trim [CODE] let xtra_lines =<< trim [CODE]
@ -49,6 +49,7 @@ func Test_balloon_eval_term()
endfunc endfunc
func Test_balloon_eval_term_visual() func Test_balloon_eval_term_visual()
CheckScreendump
" Use <Ignore> after <MouseMove> to return from vgetc() without removing " Use <Ignore> after <MouseMove> to return from vgetc() without removing
" the balloon. " the balloon.
call writefile(s:common_script + [ call writefile(s:common_script + [
@ -66,6 +67,7 @@ func Test_balloon_eval_term_visual()
endfunc endfunc
func Test_balloon_eval_term_rightleft() func Test_balloon_eval_term_rightleft()
CheckScreendump
CheckFeature rightleft CheckFeature rightleft
" Use <Ignore> after <MouseMove> to return from vgetc() without removing " Use <Ignore> after <MouseMove> to return from vgetc() without removing

View File

@ -2637,6 +2637,7 @@ endfunc
" Test for using a popup menu for the command line completion matches " Test for using a popup menu for the command line completion matches
" (wildoptions=pum) " (wildoptions=pum)
func Test_wildmenu_pum() func Test_wildmenu_pum()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let commands =<< trim [CODE] let commands =<< trim [CODE]
@ -2929,6 +2930,7 @@ func Test_wildmenumode_with_pum()
endfunc endfunc
func Test_wildmenu_with_pum_foldexpr() func Test_wildmenu_with_pum_foldexpr()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -2954,6 +2956,7 @@ endfunc
" The popup menu should be positioned correctly over the status line of the " The popup menu should be positioned correctly over the status line of the
" bottom-most window. " bottom-most window.
func Test_wildmenu_pum_from_terminal() func Test_wildmenu_pum_from_terminal()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let python = PythonProg() let python = PythonProg()
call CheckPython(python) call CheckPython(python)
@ -2974,6 +2977,7 @@ func Test_wildmenu_pum_from_terminal()
endfunc endfunc
func Test_wildmenu_pum_odd_wildchar() func Test_wildmenu_pum_odd_wildchar()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
" Test odd wildchar interactions with pum. Make sure they behave properly " Test odd wildchar interactions with pum. Make sure they behave properly

View File

@ -559,6 +559,8 @@ endfunc
" Test that cursor is drawn at the correct column when it is after end of the " Test that cursor is drawn at the correct column when it is after end of the
" line with 'virtualedit' and concealing. " line with 'virtualedit' and concealing.
func Run_test_conceal_virtualedit_after_eol(wrap) func Run_test_conceal_virtualedit_after_eol(wrap)
CheckScreendump
let code =<< trim eval [CODE] let code =<< trim eval [CODE]
let &wrap = {a:wrap} let &wrap = {a:wrap}
call setline(1, 'abcdefgh|hidden|ijklmnpop') call setline(1, 'abcdefgh|hidden|ijklmnpop')
@ -591,6 +593,8 @@ endfunc
" Same as Run_test_conceal_virtualedit_after_eol(), but with 'rightleft'. " Same as Run_test_conceal_virtualedit_after_eol(), but with 'rightleft'.
func Run_test_conceal_virtualedit_after_eol_rightleft(wrap) func Run_test_conceal_virtualedit_after_eol_rightleft(wrap)
CheckScreendump
let code =<< trim eval [CODE] let code =<< trim eval [CODE]
let &wrap = {a:wrap} let &wrap = {a:wrap}
call setline(1, 'abcdefgh|hidden|ijklmnpop') call setline(1, 'abcdefgh|hidden|ijklmnpop')
@ -624,6 +628,8 @@ endfunc
" Test that cursor position is correct when double-width chars are concealed. " Test that cursor position is correct when double-width chars are concealed.
func Run_test_conceal_double_width(wrap) func Run_test_conceal_double_width(wrap)
CheckScreendump
let code =<< trim eval [CODE] let code =<< trim eval [CODE]
let &wrap = {a:wrap} let &wrap = {a:wrap}
call setline(1, ['aaaaa口=口bbbbb口=口ccccc', 'foobar']) call setline(1, ['aaaaa口=口bbbbb口=口ccccc', 'foobar'])

View File

@ -218,6 +218,7 @@ func Test_crash1_3()
endfunc endfunc
func Test_crash2() func Test_crash2()
CheckScreendump
" The following used to crash Vim " The following used to crash Vim
let opts = #{wait_for_ruler: 0, rows: 20} let opts = #{wait_for_ruler: 0, rows: 20}
let args = ' -u NONE -i NONE -n -e -s -S ' let args = ' -u NONE -i NONE -n -e -s -S '

View File

@ -92,6 +92,10 @@ func Test_curswant_with_cursorline()
endfunc endfunc
func Test_screenpos() func Test_screenpos()
if has('gui_running')
set lines=25
set columns=78
endif
rightbelow new rightbelow new
rightbelow 20vsplit rightbelow 20vsplit
call setline(1, ["\tsome text", "long wrapping line here", "next line"]) call setline(1, ["\tsome text", "long wrapping line here", "next line"])

View File

@ -111,6 +111,7 @@ endfunc
" This should no longer trigger ml_get errors " This should no longer trigger ml_get errors
func Test_delete_ml_get_errors() func Test_delete_ml_get_errors()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
set noshowcmd noruler scrolloff=0 set noshowcmd noruler scrolloff=0

View File

@ -879,6 +879,8 @@ endfunc
" Verify a screendump with both the internal and external diff. " Verify a screendump with both the internal and external diff.
func VerifyBoth(buf, dumpfile, extra) func VerifyBoth(buf, dumpfile, extra)
CheckScreendump
" trailing : for leaving the cursor on the command line " trailing : for leaving the cursor on the command line
for cmd in [":set diffopt=filler" . a:extra . "\<CR>:", ":set diffopt+=internal\<CR>:"] for cmd in [":set diffopt=filler" . a:extra . "\<CR>:", ":set diffopt+=internal\<CR>:"]
call term_sendkeys(a:buf, cmd) call term_sendkeys(a:buf, cmd)
@ -897,6 +899,8 @@ endfunc
" Verify a screendump with the internal diff only. " Verify a screendump with the internal diff only.
func VerifyInternal(buf, dumpfile, extra) func VerifyInternal(buf, dumpfile, extra)
CheckScreendump
call term_sendkeys(a:buf, ":diffupdate!\<CR>") call term_sendkeys(a:buf, ":diffupdate!\<CR>")
" trailing : for leaving the cursor on the command line " trailing : for leaving the cursor on the command line
call term_sendkeys(a:buf, ":set diffopt=internal,filler" . a:extra . "\<CR>:") call term_sendkeys(a:buf, ":set diffopt=internal,filler" . a:extra . "\<CR>:")

View File

@ -377,6 +377,8 @@ func Test_display_linebreak_breakat()
endfunc endfunc
func Run_Test_display_lastline(euro) func Run_Test_display_lastline(euro)
CheckScreendump
let lines =<< trim END let lines =<< trim END
call setline(1, ['aaa', 'b'->repeat(200)]) call setline(1, ['aaa', 'b'->repeat(200)])
set display=truncate set display=truncate

View File

@ -2021,6 +2021,7 @@ endfunc
" Test for positioning cursor after CTRL-R expression failed " Test for positioning cursor after CTRL-R expression failed
func Test_edit_ctrl_r_failed() func Test_edit_ctrl_r_failed()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let buf = RunVimInTerminal('', #{rows: 6, cols: 60}) let buf = RunVimInTerminal('', #{rows: 6, cols: 60})

View File

@ -951,18 +951,6 @@ func Test_mode()
execute "normal! gR\<C-o>g@l\<Esc>" execute "normal! gR\<C-o>g@l\<Esc>"
call assert_equal('n-niV', g:current_modes) call assert_equal('n-niV', g:current_modes)
" Test statusline updates for overstrike mode
if CanRunVimInTerminal()
let buf = RunVimInTerminal('', {'rows': 12})
call term_sendkeys(buf, ":set laststatus=2 statusline=%!mode(1)\<CR>")
call term_sendkeys(buf, ":")
call TermWait(buf)
call VerifyScreenDump(buf, 'Test_mode_1', {})
call term_sendkeys(buf, "\<Insert>")
call TermWait(buf)
call VerifyScreenDump(buf, 'Test_mode_2', {})
call StopVimInTerminal(buf)
endif
if has('terminal') if has('terminal')
term term
@ -990,6 +978,22 @@ func Test_mode()
delfunction OperatorFunc delfunction OperatorFunc
endfunc endfunc
" Test for the mode() function using Screendump feature
func Test_mode_screendump()
CheckScreendump
" Test statusline updates for overstrike mode
let buf = RunVimInTerminal('', {'rows': 12})
call term_sendkeys(buf, ":set laststatus=2 statusline=%!mode(1)\<CR>")
call term_sendkeys(buf, ":")
call TermWait(buf)
call VerifyScreenDump(buf, 'Test_mode_1', {})
call term_sendkeys(buf, "\<Insert>")
call TermWait(buf)
call VerifyScreenDump(buf, 'Test_mode_2', {})
call StopVimInTerminal(buf)
endfunc
" Test for append() " Test for append()
func Test_append() func Test_append()
enew! enew!
@ -1028,7 +1032,7 @@ func Test_setline()
call setline(3, test_null_list()) call setline(3, test_null_list())
call setline(2, ["baz"]) call setline(2, ["baz"])
call assert_equal(['bar', 'baz'], getline(1, '$')) call assert_equal(['bar', 'baz'], getline(1, '$'))
close! bw!
endfunc endfunc
func Test_getbufvar() func Test_getbufvar()

View File

@ -770,13 +770,10 @@ func Test_set_guioptions()
endfunc endfunc
func Test_scrollbars() func Test_scrollbars()
" this test sometimes fails on CI
let g:test_is_flaky = 1
" buffer with 200 lines " buffer with 200 lines
new
call setline(1, repeat(['one', 'two'], 100)) call setline(1, repeat(['one', 'two'], 100))
set guioptions+=rlb set scrolloff=0
set guioptions=rlbk
" scroll to move line 11 at top, moves the cursor there " scroll to move line 11 at top, moves the cursor there
let args = #{which: 'left', value: 10, dragging: 0} let args = #{which: 'left', value: 10, dragging: 0}
@ -826,6 +823,7 @@ func Test_scrollbars()
call assert_fails("call test_gui_event('scrollbar', #{which: 'a', value: 1, dragging: 0})", 'E475:') call assert_fails("call test_gui_event('scrollbar', #{which: 'a', value: 1, dragging: 0})", 'E475:')
set guioptions& set guioptions&
set scrolloff&
set wrap& set wrap&
bwipe! bwipe!
endfunc endfunc

View File

@ -74,6 +74,7 @@ func Test_hlsearch_eol_highlight()
endfunc endfunc
func Test_hlsearch_Ctrl_R() func Test_hlsearch_Ctrl_R()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -92,6 +93,7 @@ func Test_hlsearch_Ctrl_R()
endfunc endfunc
func Test_hlsearch_clipboard() func Test_hlsearch_clipboard()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
CheckFeature clipboard_working CheckFeature clipboard_working

View File

@ -345,6 +345,7 @@ func Test_matchdelete_error()
endfunc endfunc
func Test_matchclear_other_window() func Test_matchclear_other_window()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let buf = OtherWindowCommon() let buf = OtherWindowCommon()
call term_sendkeys(buf, ":call clearmatches(winid)\<CR>") call term_sendkeys(buf, ":call clearmatches(winid)\<CR>")
@ -355,6 +356,7 @@ func Test_matchclear_other_window()
endfunc endfunc
func Test_matchadd_other_window() func Test_matchadd_other_window()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let buf = OtherWindowCommon() let buf = OtherWindowCommon()
call term_sendkeys(buf, ":call matchadd('Search', 'Hello', 1, -1, #{window: winid})\<CR>") call term_sendkeys(buf, ":call matchadd('Search', 'Hello', 1, -1, #{window: winid})\<CR>")
@ -366,6 +368,7 @@ func Test_matchadd_other_window()
endfunc endfunc
func Test_match_in_linebreak() func Test_match_in_linebreak()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -381,6 +384,7 @@ func Test_match_in_linebreak()
endfunc endfunc
func Test_match_with_incsearch() func Test_match_with_incsearch()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -420,6 +424,7 @@ func Test_matchdelete_redraw()
endfunc endfunc
func Test_match_tab_with_linebreak() func Test_match_tab_with_linebreak()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END

View File

@ -631,6 +631,7 @@ endfunc
" Test for opening a menu drawn in the cmdline area " Test for opening a menu drawn in the cmdline area
func Test_popupmenu_cmdline() func Test_popupmenu_cmdline()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END

View File

@ -324,6 +324,7 @@ endfunc
" Test more-prompt scrollback " Test more-prompt scrollback
func Test_message_more_scrollback() func Test_message_more_scrollback()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -348,6 +349,7 @@ func Test_message_more_scrollback()
endfunc endfunc
func Test_message_not_cleared_after_mode() func Test_message_not_cleared_after_mode()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -383,6 +385,7 @@ func Test_message_not_cleared_after_mode()
endfunc endfunc
func Test_mode_cleared_after_silent_message() func Test_mode_cleared_after_silent_message()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -407,6 +410,7 @@ endfunc
" Test verbose message before echo command " Test verbose message before echo command
func Test_echo_verbose_system() func Test_echo_verbose_system()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
CheckUnix " needs the "seq" command CheckUnix " needs the "seq" command
CheckNotMac " the macos TMPDIR is too long for snapshot testing CheckNotMac " the macos TMPDIR is too long for snapshot testing

View File

@ -47,6 +47,7 @@ func Test_move()
endfunc endfunc
func Test_move_undo() func Test_move_undo()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END

View File

@ -5,9 +5,9 @@ CheckFeature popupwin
CheckFeature textprop CheckFeature textprop
source screendump.vim source screendump.vim
CheckScreendump
func Test_textprop_popup() func Test_textprop_popup()
CheckScreendump
let lines =<< trim END let lines =<< trim END
call setline(1, range(1, 100)) call setline(1, range(1, 100))
call setline(50, 'some text to work with') call setline(50, 'some text to work with')
@ -55,6 +55,7 @@ func Test_textprop_popup()
endfunc endfunc
func Test_textprop_popup_corners() func Test_textprop_popup_corners()
CheckScreendump
let lines =<< trim END let lines =<< trim END
call setline(1, range(1, 100)) call setline(1, range(1, 100))
call setline(50, 'now working with some longer text here') call setline(50, 'now working with some longer text here')
@ -115,6 +116,7 @@ func Test_textprop_popup_corners()
endfunc endfunc
func Test_textprop_popup_offsets() func Test_textprop_popup_offsets()
CheckScreendump
let lines =<< trim END let lines =<< trim END
call setline(1, range(1, 100)) call setline(1, range(1, 100))
call setline(50, 'now working with some longer text here') call setline(50, 'now working with some longer text here')

View File

@ -248,6 +248,7 @@ func Test_put_visual_block_mode()
bwipe! bwipe!
set ve= set ve=
endfunc endfunc
func Test_put_other_window() func Test_put_other_window()
CheckScreendump CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
@ -267,6 +268,7 @@ func Test_put_other_window()
call StopVimInTerminal(buf) call StopVimInTerminal(buf)
endfunc endfunc
func Test_put_in_last_displayed_line() func Test_put_in_last_displayed_line()
CheckScreendump CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal

View File

@ -945,6 +945,7 @@ func Test_incsearch_cmdline_modifier()
endfunc endfunc
func Test_incsearch_scrolling() func Test_incsearch_scrolling()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
call assert_equal(0, &scrolloff) call assert_equal(0, &scrolloff)
call writefile([ call writefile([

View File

@ -1813,6 +1813,7 @@ endfunc
" Test for correct cursor position after the sign column appears or disappears. " Test for correct cursor position after the sign column appears or disappears.
func Test_sign_cursor_position() func Test_sign_cursor_position()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END

View File

@ -900,6 +900,7 @@ func Test_issue_3969()
endfunc endfunc
func Test_start_with_tabs() func Test_start_with_tabs()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let buf = RunVimInTerminal('-p a b c', {}) let buf = RunVimInTerminal('-p a b c', {})

View File

@ -16,6 +16,10 @@ func TearDown()
endfunc endfunc
func s:get_statusline() func s:get_statusline()
if has('gui_running')
redraw!
sleep 1m
endif
return ScreenLines(&lines - 1, &columns)[0] return ScreenLines(&lines - 1, &columns)[0]
endfunc endfunc

View File

@ -728,6 +728,7 @@ func Test_sub_cmd_9()
endfunc endfunc
func Test_sub_highlight_zero_match() func Test_sub_highlight_zero_match()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END

View File

@ -631,6 +631,7 @@ endfunc
" Check highlighting for a small piece of C code with a screen dump. " Check highlighting for a small piece of C code with a screen dump.
func Test_syntax_c() func Test_syntax_c()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
call writefile([ call writefile([
\ '/* comment line at the top */', \ '/* comment line at the top */',

View File

@ -688,6 +688,7 @@ func Test_tabs()
endfunc endfunc
func Test_tabpage_cmdheight() func Test_tabpage_cmdheight()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
call writefile([ call writefile([
\ 'set laststatus=2', \ 'set laststatus=2',

View File

@ -15,6 +15,7 @@ endif
" running with 'encoding' "euc-jp". We need to make sure the text is in the " running with 'encoding' "euc-jp". We need to make sure the text is in the
" right encoding, this is a bit tricky. " right encoding, this is a bit tricky.
func Test_termencoding_euc_jp() func Test_termencoding_euc_jp()
CheckScreendump
new new
call setline(1, 'E89: バッファ %ld の変更は保存されていません (! で変更を破棄)') call setline(1, 'E89: バッファ %ld の変更は保存されていません (! で変更を破棄)')
write ++enc=euc-jp Xeuc_jp.txt write ++enc=euc-jp Xeuc_jp.txt

View File

@ -522,6 +522,7 @@ func Test_terminal_scrollback()
endfunc endfunc
func Test_terminal_postponed_scrollback() func Test_terminal_postponed_scrollback()
CheckScreendump
" tail -f only works on Unix " tail -f only works on Unix
CheckUnix CheckUnix
@ -1298,6 +1299,7 @@ endfunc
" Run this first, it fails when run after other tests. " Run this first, it fails when run after other tests.
func Test_aa_terminal_focus_events() func Test_aa_terminal_focus_events()
CheckScreendump
CheckNotGui CheckNotGui
CheckUnix CheckUnix
CheckRunVimInTerminal CheckRunVimInTerminal
@ -1475,6 +1477,7 @@ func Test_terminal_open_autocmd()
endfunc endfunc
func Test_open_term_from_cmd() func Test_open_term_from_cmd()
CheckScreendump
CheckUnix CheckUnix
CheckRunVimInTerminal CheckRunVimInTerminal
@ -1497,6 +1500,7 @@ func Test_open_term_from_cmd()
endfunc endfunc
func Test_combining_double_width() func Test_combining_double_width()
CheckScreendump
CheckUnix CheckUnix
CheckRunVimInTerminal CheckRunVimInTerminal
@ -1666,6 +1670,7 @@ func Test_terminal_dumpload()
endfunc endfunc
func Test_terminal_dumpload_dump() func Test_terminal_dumpload_dump()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -2168,6 +2173,7 @@ func Test_terminal_ansicolors_default()
endfunc endfunc
func Test_terminal_ansicolors_default_reset_tgc() func Test_terminal_ansicolors_default_reset_tgc()
CheckScreendump
CheckFeature termguicolors CheckFeature termguicolors
CheckRunVimInTerminal CheckRunVimInTerminal
@ -2261,6 +2267,7 @@ func Test_terminal_ansicolors_func()
endfunc endfunc
func Test_terminal_all_ansi_colors() func Test_terminal_all_ansi_colors()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
" Use all the ANSI colors. " Use all the ANSI colors.

View File

@ -499,6 +499,7 @@ func Test_terminal_switch_mode()
endfunc endfunc
func Test_terminal_normal_mode() func Test_terminal_normal_mode()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
" Run Vim in a terminal and open a terminal window to run Vim in. " Run Vim in a terminal and open a terminal window to run Vim in.

View File

@ -70,6 +70,7 @@ endfunc
" Check a terminal with different colors " Check a terminal with different colors
func Terminal_color(group_name, highlight_cmds, highlight_opt, open_cmds) func Terminal_color(group_name, highlight_cmds, highlight_opt, open_cmds)
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
CheckUnix CheckUnix
@ -139,6 +140,7 @@ func Test_terminal_color_wincolor_over_group()
endfunc endfunc
func Test_terminal_color_wincolor_split() func Test_terminal_color_wincolor_split()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
CheckUnix CheckUnix
@ -246,6 +248,7 @@ func Test_terminal_color_gui_transp_wincolor()
endfunc endfunc
func Test_terminal_in_popup() func Test_terminal_in_popup()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let text =<< trim END let text =<< trim END
@ -324,6 +327,7 @@ endfunc
" Check a terminal in popup window uses the default minimum size. " Check a terminal in popup window uses the default minimum size.
func Test_terminal_in_popup_min_size() func Test_terminal_in_popup_min_size()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let text =<< trim END let text =<< trim END
@ -356,6 +360,7 @@ endfunc
" Check a terminal in popup window with different colors " Check a terminal in popup window with different colors
func Terminal_in_popup_color(group_name, highlight_cmds, highlight_opt, popup_cmds, popup_opt) func Terminal_in_popup_color(group_name, highlight_cmds, highlight_opt, popup_cmds, popup_opt)
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
CheckUnix CheckUnix

View File

@ -1256,6 +1256,7 @@ endfunc
func Test_textprop_hl_override() func Test_textprop_hl_override()
CheckScreendump CheckScreendump
CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
call setline(1, ['One one one one one', 'Two two two two two', 'Three three three three']) call setline(1, ['One one one one one', 'Two two two two two', 'Three three three three'])
@ -1286,6 +1287,7 @@ func Test_textprop_hl_override()
endfunc endfunc
func RunTestVisualBlock(width, dump) func RunTestVisualBlock(width, dump)
CheckScreendump
call writefile([ call writefile([
\ "call setline(1, [" \ "call setline(1, ["
\ .. "'xxxxxxxxx 123 x'," \ .. "'xxxxxxxxx 123 x',"
@ -1992,6 +1994,7 @@ def Test_delete_line_within_multiline_prop()
enddef enddef
func Test_prop_in_linebreak() func Test_prop_in_linebreak()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -2017,6 +2020,7 @@ func Test_prop_in_linebreak()
endfunc endfunc
func Test_prop_with_linebreak() func Test_prop_with_linebreak()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -2036,6 +2040,7 @@ func Test_prop_with_linebreak()
endfunc endfunc
func Test_prop_with_wrap() func Test_prop_with_wrap()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -2054,6 +2059,7 @@ func Test_prop_with_wrap()
endfunc endfunc
func Test_prop_after_tab() func Test_prop_after_tab()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -2070,6 +2076,7 @@ func Test_prop_after_tab()
endfunc endfunc
func Test_prop_before_tab() func Test_prop_before_tab()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -2109,6 +2116,7 @@ func Test_prop_before_tab()
endfunc endfunc
func Test_prop_after_linebreak() func Test_prop_after_linebreak()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -2558,6 +2566,7 @@ func Test_props_do_not_affect_byte_offsets_editline()
endfunc endfunc
func Test_prop_inserts_text() func Test_prop_inserts_text()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
" Just a basic check for now " Just a basic check for now
@ -2609,6 +2618,7 @@ func Test_prop_inserts_text()
endfunc endfunc
func Test_prop_inserts_text_highlight() func Test_prop_inserts_text_highlight()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
" Just a basic check for now " Just a basic check for now
@ -2644,6 +2654,7 @@ func Test_prop_inserts_text_highlight()
endfunc endfunc
func Test_prop_inserts_text_normal_gM() func Test_prop_inserts_text_normal_gM()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -2661,6 +2672,7 @@ func Test_prop_inserts_text_normal_gM()
endfunc endfunc
func Run_test_prop_inserts_text_normal_gj_gk(cmd) func Run_test_prop_inserts_text_normal_gj_gk(cmd)
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -2695,6 +2707,7 @@ func Test_prop_inserts_text_normal_gj_gk()
endfunc endfunc
func Test_prop_normal_gj_gk_gM_with_outer_virtual_text() func Test_prop_normal_gj_gk_gM_with_outer_virtual_text()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -2737,6 +2750,7 @@ func Test_prop_normal_gj_gk_gM_with_outer_virtual_text()
endfunc endfunc
func Test_prop_inserts_text_visual_block() func Test_prop_inserts_text_visual_block()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -2765,6 +2779,7 @@ func Test_prop_inserts_text_visual_block()
endfunc endfunc
func Run_test_prop_inserts_text_showbreak(cmd) func Run_test_prop_inserts_text_showbreak(cmd)
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -2838,6 +2853,7 @@ func Test_prop_inserts_text_showbreak()
endfunc endfunc
func Test_prop_before_tab_skipcol() func Test_prop_before_tab_skipcol()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -2875,6 +2891,7 @@ func Test_prop_before_tab_skipcol()
endfunc endfunc
func Test_prop_inserts_text_before_linebreak() func Test_prop_inserts_text_before_linebreak()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -2894,6 +2911,7 @@ func Test_prop_inserts_text_before_linebreak()
endfunc endfunc
func Test_prop_inserts_text_before_double_width_wrap() func Test_prop_inserts_text_before_double_width_wrap()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -2914,6 +2932,7 @@ func Test_prop_inserts_text_before_double_width_wrap()
endfunc endfunc
func Test_prop_inserts_text_lcs_extends() func Test_prop_inserts_text_lcs_extends()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -2948,6 +2967,7 @@ func Test_prop_add_with_text_fails()
endfunc endfunc
func Test_props_with_text_right_align_twice() func Test_props_with_text_right_align_twice()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -2973,6 +2993,7 @@ func Test_props_with_text_right_align_twice()
endfunc endfunc
func Test_props_with_text_after() func Test_props_with_text_after()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -3004,6 +3025,7 @@ func Test_props_with_text_after()
endfunc endfunc
func Test_props_with_text_after_and_list() func Test_props_with_text_after_and_list()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -3041,6 +3063,7 @@ func Test_props_with_text_after_and_list()
endfunc endfunc
func Test_props_with_text_after_below_trunc() func Test_props_with_text_after_below_trunc()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -3077,6 +3100,7 @@ func Test_props_with_text_after_below_trunc()
endfunc endfunc
func Test_props_with_text_truncated_just_before_after() func Test_props_with_text_truncated_just_before_after()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -3114,6 +3138,7 @@ func Test_props_with_text_truncated_just_before_after()
endfunc endfunc
func Test_prop_with_text_below_after_empty() func Test_prop_with_text_below_after_empty()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -3153,6 +3178,7 @@ func Test_prop_with_text_below_after_empty()
endfunc endfunc
func Test_prop_with_text_above_below_empty() func Test_prop_with_text_above_below_empty()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -3204,6 +3230,7 @@ func Test_prop_with_text_above_below_empty()
endfunc endfunc
func Test_prop_multiple_lines_above() func Test_prop_multiple_lines_above()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -3226,6 +3253,7 @@ func Test_prop_multiple_lines_above()
endfunc endfunc
func Test_prop_with_multibyte_above() func Test_prop_with_multibyte_above()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -3247,6 +3275,7 @@ func Test_prop_with_multibyte_above()
endfunc endfunc
func Test_prop_with_multibyte_below() func Test_prop_with_multibyte_below()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -3268,6 +3297,7 @@ func Test_prop_with_multibyte_below()
endfunc endfunc
func Test_prop_with_text_below_rightleft() func Test_prop_with_text_below_rightleft()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
CheckFeature rightleft CheckFeature rightleft
@ -3285,6 +3315,7 @@ func Test_prop_with_text_below_rightleft()
endfunc endfunc
func Test_prop_with_text_above_empty() func Test_prop_with_text_above_empty()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
" check the cursor is in the correct line " check the cursor is in the correct line
@ -3310,6 +3341,7 @@ func Test_prop_with_text_above_empty()
endfunc endfunc
func Test_prop_with_text_below_after_match() func Test_prop_with_text_below_after_match()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -3333,6 +3365,7 @@ func Test_prop_with_text_below_after_match()
endfunc endfunc
func Test_props_with_text_after_joined() func Test_props_with_text_after_joined()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -3358,6 +3391,7 @@ func Test_props_with_text_after_joined()
endfunc endfunc
func Test_props_with_text_after_truncated() func Test_props_with_text_after_truncated()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -3396,6 +3430,7 @@ func Test_props_with_text_after_truncated()
endfunc endfunc
func Test_props_with_text_after_truncated_and_ambiwidth_is_double() func Test_props_with_text_after_truncated_and_ambiwidth_is_double()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -3422,6 +3457,7 @@ endfunc
func Test_props_with_text_after_truncated_not_utf8() func Test_props_with_text_after_truncated_not_utf8()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -3447,6 +3483,7 @@ func Test_props_with_text_after_truncated_not_utf8()
endfunc endfunc
func Test_props_with_text_empty_line() func Test_props_with_text_empty_line()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -3480,6 +3517,7 @@ func Test_props_with_text_empty_line()
endfunc endfunc
func Test_props_with_text_after_wraps() func Test_props_with_text_after_wraps()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -3504,6 +3542,7 @@ func Test_props_with_text_after_wraps()
endfunc endfunc
func Test_props_with_text_after_nowrap() func Test_props_with_text_after_nowrap()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -3537,6 +3576,7 @@ func Test_props_with_text_after_nowrap()
endfunc endfunc
func Test_prop_with_text_below_cul() func Test_prop_with_text_below_cul()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -3560,6 +3600,7 @@ func Test_prop_with_text_below_cul()
endfunc endfunc
func Test_props_with_text_below_nowrap() func Test_props_with_text_below_nowrap()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -3592,6 +3633,7 @@ func Test_props_with_text_below_nowrap()
endfunc endfunc
func Test_props_with_text_above() func Test_props_with_text_above()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -3654,6 +3696,7 @@ func Test_props_with_text_above()
endfunc endfunc
func Test_prop_with_text_above_padding() func Test_prop_with_text_above_padding()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -3690,6 +3733,7 @@ func Test_prop_above_with_indent()
endfunc endfunc
func Test_prop_above_with_number() func Test_prop_above_with_number()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -3725,6 +3769,7 @@ func Test_prop_above_with_number()
endfunc endfunc
func Test_prop_above_with_linebreak() func Test_prop_above_with_linebreak()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -3744,6 +3789,7 @@ func Test_prop_above_with_linebreak()
endfunc endfunc
func Test_prop_above_and_before() func Test_prop_above_and_before()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -3770,6 +3816,7 @@ func Test_prop_above_and_before()
endfunc endfunc
func Test_prop_below_split_line() func Test_prop_below_split_line()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -3798,6 +3845,7 @@ func Test_prop_below_split_line()
endfunc endfunc
func Test_prop_above_below_smoothscroll() func Test_prop_above_below_smoothscroll()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -3826,6 +3874,7 @@ func Test_prop_above_below_smoothscroll()
endfunc endfunc
func Test_props_with_text_override() func Test_props_with_text_override()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -3849,6 +3898,7 @@ func Test_props_with_text_override()
endfunc endfunc
func Test_props_with_text_CursorMoved() func Test_props_with_text_CursorMoved()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -3887,6 +3937,7 @@ func Test_props_with_text_CursorMoved()
endfunc endfunc
func Test_props_with_text_after_split_join() func Test_props_with_text_after_split_join()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -3956,6 +4007,7 @@ def Test_insert_text_before_virtual_text()
enddef enddef
func Test_insert_text_start_incl() func Test_insert_text_start_incl()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -3997,6 +4049,7 @@ func Test_insert_text_start_incl()
endfunc endfunc
func Test_insert_text_list_mode() func Test_insert_text_list_mode()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -4026,6 +4079,7 @@ func Test_insert_text_list_mode()
endfunc endfunc
func Test_insert_text_with_padding() func Test_insert_text_with_padding()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -4078,6 +4132,7 @@ func Test_insert_text_with_padding()
endfunc endfunc
func Test_long_text_below_with_padding() func Test_long_text_below_with_padding()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -4109,6 +4164,7 @@ func Test_long_text_below_with_padding()
endfunc endfunc
func Test_text_after_nowrap() func Test_text_after_nowrap()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -4173,6 +4229,7 @@ func Test_text_after_nowrap()
endfunc endfunc
func Test_text_after_nowrap_list() func Test_text_after_nowrap_list()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -4209,6 +4266,7 @@ func Test_text_after_nowrap_list()
endfunc endfunc
func Test_text_below_nowrap() func Test_text_below_nowrap()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -4238,6 +4296,7 @@ func Test_text_below_nowrap()
endfunc endfunc
func Test_virtual_text_overlap_with_highlight() func Test_virtual_text_overlap_with_highlight()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -4278,6 +4337,7 @@ func Test_virtual_text_overlap_with_highlight()
endfunc endfunc
func Test_virtual_text_in_popup_highlight() func Test_virtual_text_in_popup_highlight()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -4322,6 +4382,7 @@ func Test_virtual_text_in_popup_highlight()
endfunc endfunc
func Test_insert_text_change_arg() func Test_insert_text_change_arg()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -4383,6 +4444,7 @@ def Test_textprop_in_quickfix_window()
enddef enddef
func Test_text_prop_delete_updates() func Test_text_prop_delete_updates()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -4421,6 +4483,7 @@ func Test_text_prop_delete_updates()
endfunc endfunc
func Test_text_prop_diff_mode() func Test_text_prop_diff_mode()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -4459,6 +4522,7 @@ func Test_error_when_using_negative_id()
endfunc endfunc
func Test_error_after_using_negative_id() func Test_error_after_using_negative_id()
CheckScreendump
" This needs to run a separate Vim instance because the " This needs to run a separate Vim instance because the
" "did_use_negative_pop_id" will be set. " "did_use_negative_pop_id" will be set.
CheckRunVimInTerminal CheckRunVimInTerminal
@ -4495,6 +4559,7 @@ func Test_error_after_using_negative_id()
endfunc endfunc
func Test_modify_text_before_prop() func Test_modify_text_before_prop()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -4517,6 +4582,7 @@ func Test_modify_text_before_prop()
endfunc endfunc
func Test_overlong_textprop_above_crash() func Test_overlong_textprop_above_crash()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -4538,6 +4604,7 @@ func Test_overlong_textprop_above_crash()
endfunc endfunc
func Test_text_prop_list_hl_and_sign_highlight() func Test_text_prop_list_hl_and_sign_highlight()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -4632,6 +4699,7 @@ func Test_textprop_backspace_fo_aw()
endfunc endfunc
func Test_textprop_with_wincolor() func Test_textprop_with_wincolor()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END

View File

@ -849,6 +849,7 @@ func Test_undo_mark()
endfunc endfunc
func Test_undo_after_write() func Test_undo_after_write()
CheckScreendump
" use a terminal to make undo work like when text is typed " use a terminal to make undo work like when text is typed
CheckRunVimInTerminal CheckRunVimInTerminal

View File

@ -294,6 +294,7 @@ func Test_getcellwidths()
endfunc endfunc
func Test_setcellwidths_dump() func Test_setcellwidths_dump()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -311,6 +312,7 @@ endfunc
" Test setcellwidths() on characters that are not targets of 'ambiwidth'. " Test setcellwidths() on characters that are not targets of 'ambiwidth'.
func Test_setcellwidths_with_non_ambiwidth_character_dump() func Test_setcellwidths_with_non_ambiwidth_character_dump()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END
@ -333,6 +335,7 @@ endfunc
" For some reason this test causes Test_customlist_completion() to fail on CI, " For some reason this test causes Test_customlist_completion() to fail on CI,
" so run it as the last test. " so run it as the last test.
func Test_zz_ambiwidth_hl_dump() func Test_zz_ambiwidth_hl_dump()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
let lines =<< trim END let lines =<< trim END

View File

@ -3204,6 +3204,7 @@ def Test_nested_closure_fails()
enddef enddef
def Run_Test_closure_in_for_loop_fails() def Run_Test_closure_in_for_loop_fails()
CheckScreendump
var lines =<< trim END var lines =<< trim END
vim9script vim9script
redraw redraw
@ -3600,6 +3601,7 @@ func Test_silent_echo()
endfunc endfunc
def Run_Test_silent_echo() def Run_Test_silent_echo()
CheckScreendump
var lines =<< trim END var lines =<< trim END
vim9script vim9script
def EchoNothing() def EchoNothing()
@ -4645,6 +4647,7 @@ def Test_invalid_redir()
enddef enddef
func Test_keytyped_in_nested_function() func Test_keytyped_in_nested_function()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
call Run_Test_keytyped_in_nested_function() call Run_Test_keytyped_in_nested_function()

View File

@ -4174,6 +4174,7 @@ func Test_no_redraw_when_restoring_cpo()
endfunc endfunc
def Run_test_no_redraw_when_restoring_cpo() def Run_test_no_redraw_when_restoring_cpo()
CheckScreendump
var lines =<< trim END var lines =<< trim END
vim9script vim9script
export def Func() export def Func()
@ -4205,6 +4206,7 @@ func Test_reject_declaration()
endfunc endfunc
def Run_test_reject_declaration() def Run_test_reject_declaration()
CheckScreendump
var buf = g:RunVimInTerminal('', {'rows': 6}) var buf = g:RunVimInTerminal('', {'rows': 6})
term_sendkeys(buf, ":vim9cmd var x: number\<CR>") term_sendkeys(buf, ":vim9cmd var x: number\<CR>")
g:VerifyScreenDump(buf, 'Test_vim9_reject_declaration_1', {}) g:VerifyScreenDump(buf, 'Test_vim9_reject_declaration_1', {})
@ -4831,11 +4833,13 @@ def Test_profile_with_lambda()
enddef enddef
func Test_misplaced_type() func Test_misplaced_type()
CheckScreendump
CheckRunVimInTerminal CheckRunVimInTerminal
call Run_Test_misplaced_type() call Run_Test_misplaced_type()
endfunc endfunc
def Run_Test_misplaced_type() def Run_Test_misplaced_type()
CheckScreendump
writefile(['let g:somevar = "asdf"'], 'XTest_misplaced_type', 'D') writefile(['let g:somevar = "asdf"'], 'XTest_misplaced_type', 'D')
var buf = g:RunVimInTerminal('-S XTest_misplaced_type', {'rows': 6}) var buf = g:RunVimInTerminal('-S XTest_misplaced_type', {'rows': 6})
term_sendkeys(buf, ":vim9cmd echo islocked('somevar: string')\<CR>") term_sendkeys(buf, ":vim9cmd echo islocked('somevar: string')\<CR>")

View File

@ -667,6 +667,7 @@ func Test_xxd_color2()
let buf = RunVimInTerminal('', #{rows: 20, cmd: 'sh'}) let buf = RunVimInTerminal('', #{rows: 20, cmd: 'sh'})
call term_sendkeys(buf, s:xxd_cmd .. " -R never < XXDfile_colors\<cr>") call term_sendkeys(buf, s:xxd_cmd .. " -R never < XXDfile_colors\<cr>")
call TermWait(buf) call TermWait(buf)
redraw
call VerifyScreenDump(buf, 'Test_xxd_color_0', {}) call VerifyScreenDump(buf, 'Test_xxd_color_0', {})
call TermWait(buf) call TermWait(buf)

View File

@ -704,6 +704,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
1370,
/**/ /**/
1369, 1369,
/**/ /**/