Mercurial > vim
view src/testdir/test_close_count.vim @ 33301:1bc6f0899715 v9.0.1916
patch 9.0.1916: Crash when allocating large terminal screen
Commit: https://github.com/vim/vim/commit/aa64ba1587d36de558f47519fa47c27e86c6e49a
Author: Christian Brabandt <cb@256bit.org>
Date: Tue Sep 19 21:05:20 2023 +0200
patch 9.0.1916: Crash when allocating large terminal screen
Problem: Crash when allocating large terminal screen
Solution: Don't allow values > 1000 for terminal
screen columns and rows
closes: #13126
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Tue, 19 Sep 2023 21:30:03 +0200 |
parents | 08940efa6b4e |
children |
line wrap: on
line source
" Tests for :[count]close! command func Test_close_count() enew! | only let wids = [win_getid()] for i in range(5) new call add(wids, win_getid()) endfor 4wincmd w close! let ids = [] windo call add(ids, win_getid()) call assert_equal([wids[5], wids[4], wids[3], wids[1], wids[0]], ids) 1close! let ids = [] windo call add(ids, win_getid()) call assert_equal([wids[4], wids[3], wids[1], wids[0]], ids) $close! let ids = [] windo call add(ids, win_getid()) call assert_equal([wids[4], wids[3], wids[1]], ids) 1wincmd w 2close! let ids = [] windo call add(ids, win_getid()) call assert_equal([wids[4], wids[1]], ids) 1wincmd w new call add(wids, win_getid()) new call add(wids, win_getid()) 2wincmd w -1close! let ids = [] windo call add(ids, win_getid()) call assert_equal([wids[6], wids[4], wids[1]], ids) 2wincmd w +1close! let ids = [] windo call add(ids, win_getid()) call assert_equal([wids[6], wids[4]], ids) only! endfunc " Tests for :[count]hide command func Test_hide_count() enew! | only let wids = [win_getid()] for i in range(5) new call add(wids, win_getid()) endfor 4wincmd w .hide let ids = [] windo call add(ids, win_getid()) call assert_equal([wids[5], wids[4], wids[3], wids[1], wids[0]], ids) 1hide let ids = [] windo call add(ids, win_getid()) call assert_equal([wids[4], wids[3], wids[1], wids[0]], ids) $hide let ids = [] windo call add(ids, win_getid()) call assert_equal([wids[4], wids[3], wids[1]], ids) 1wincmd w 2hide let ids = [] windo call add(ids, win_getid()) call assert_equal([wids[4], wids[1]], ids) 1wincmd w new call add(wids, win_getid()) new call add(wids, win_getid()) 3wincmd w -hide let ids = [] windo call add(ids, win_getid()) call assert_equal([wids[7], wids[4], wids[1]], ids) 2wincmd w +hide let ids = [] windo call add(ids, win_getid()) call assert_equal([wids[7], wids[4]], ids) only! endfunc " Tests for :[count]close! command with 'hidden' func Test_hidden_close_count() enew! | only let wids = [win_getid()] for i in range(5) new call add(wids, win_getid()) endfor set hidden $ hide let ids = [] windo call add(ids, win_getid()) call assert_equal([wids[5], wids[4], wids[3], wids[2], wids[1]], ids) $-1 close! let ids = [] windo call add(ids, win_getid()) call assert_equal([wids[5], wids[4], wids[3], wids[1]], ids) 1wincmd w .+close! let ids = [] windo call add(ids, win_getid()) call assert_equal([wids[5], wids[3], wids[1]], ids) set nohidden only! endfunc " Tests for 'CTRL-W c' command to close windows. func Test_winclose_command() enew! | only let wids = [win_getid()] for i in range(5) new call add(wids, win_getid()) endfor set hidden 4wincmd w exe "normal \<C-W>c" let ids = [] windo call add(ids, win_getid()) call assert_equal([wids[5], wids[4], wids[3], wids[1], wids[0]], ids) exe "normal 1\<C-W>c" let ids = [] windo call add(ids, win_getid()) call assert_equal([wids[4], wids[3], wids[1], wids[0]], ids) exe "normal 9\<C-W>c" let ids = [] windo call add(ids, win_getid()) call assert_equal([wids[4], wids[3], wids[1]], ids) 1wincmd w exe "normal 2\<C-W>c" let ids = [] windo call add(ids, win_getid()) call assert_equal([wids[4], wids[1]], ids) set nohidden only! endfunc " vim: shiftwidth=2 sts=2 expandtab