comparison src/testdir/test_window_cmd.vim @ 30285:9edb1a8161ac v9.0.0478

patch 9.0.0478: test for 'splitscroll' takes too much time Commit: https://github.com/vim/vim/commit/594f9e09cd68e6277b8aa08094405bc642c5792a Author: Luuk van Baal <luukvbaal@gmail.com> Date: Fri Sep 16 12:52:58 2022 +0100 patch 9.0.0478: test for 'splitscroll' takes too much time Problem: Test for 'splitscroll' takes too much time. Solution: Only test some of the combinations. (Luuk van Baal, closes https://github.com/vim/vim/issues/11139)
author Bram Moolenaar <Bram@vim.org>
date Fri, 16 Sep 2022 14:00:05 +0200
parents d8f04df5b917
children b9d07900b0b8
comparison
equal deleted inserted replaced
30284:5ba1ec8cf49f 30285:9edb1a8161ac
1635 " winbar, tabline, for each possible value of 'laststatus', 'scrolloff', 1635 " winbar, tabline, for each possible value of 'laststatus', 'scrolloff',
1636 " 'equalalways', and regardless of the cursor position. 1636 " 'equalalways', and regardless of the cursor position.
1637 func Test_splitscroll_with_splits() 1637 func Test_splitscroll_with_splits()
1638 set nowrap 1638 set nowrap
1639 set nosplitscroll 1639 set nosplitscroll
1640
1641 " disallow window resizing
1642 let save_WS = &t_WS
1643 set t_WS=
1644
1640 let gui = has("gui_running") 1645 let gui = has("gui_running")
1641 inoremap c <cmd>:copen<CR> 1646 inoremap <expr> c "<cmd>copen<bar>wincmd k<CR>"
1642 for winbar in [0, 1] 1647 for run in range(0, 10)
1643 for sb in [0, 1] 1648 tabnew | tabonly! | redraw
1644 for ea in [0, 1] 1649 let tabline = (gui ? 0 : ((run % 5) ? 1 : 0))
1645 for tab in [0, 1] 1650 let winbar_sb = (run % 2) && (run % 3)
1646 for so in [0, 5] 1651 execute 'set scrolloff=' . !(run % 3) ? 0 : run
1647 for ls in range(0, 2) 1652 execute 'set laststatus=' . (run % 3)
1648 for pos in ["H", "M", "L"] 1653 execute 'set ' . ((run % 2) ? 'equalalways' : 'noequalalways')
1649 tabnew | tabonly! | redraw 1654 execute 'set ' . ((run % 3) ? 'splitbelow' : 'nosplitbelow')
1650 let tabline = (gui ? 0 : (tab ? 1 : 0)) 1655 execute (run % 5) ? 'tabnew' : ''
1651 let winbar_sb = (sb ? winbar : 0) 1656 execute (run % 2) ? 'nnoremenu 1.10 WinBar.Test :echo' : ''
1652 execute 'set scrolloff=' . so 1657 let pos = !(run % 3) ? 'H' : ((run % 2) ? 'M' : 'L')
1653 execute 'set laststatus=' . ls 1658 call setline(1, range(1, 256))
1654 execute 'set ' . (ea ? 'equalalways' : 'noequalalways') 1659 " No scroll for restore_snapshot
1655 execute 'set ' . (sb ? 'splitbelow' : 'nosplitbelow') 1660 norm G
1656 execute tab ? 'tabnew' : '' 1661 try
1657 execute winbar ? 'nnoremenu 1.10 WinBar.Test :echo' : '' 1662 copen | close | colder
1658 call setline(1, range(1, 256)) 1663 catch /E380/
1659 " No scroll for restore_snapshot 1664 endtry
1660 norm G 1665 call assert_equal(257 - winheight(0), line("w0"))
1661 try 1666
1662 copen | close | colder 1667 " No scroll for firstwin horizontal split
1663 catch /E380/ 1668 execute 'norm gg' . pos
1664 endtry 1669 split | redraw | wincmd k
1665 call assert_equal(257 - winheight(0), line("w0")) 1670 call assert_equal(1, line("w0"))
1666 1671 call assert_equal(&scroll, winheight(0) / 2)
1667 " No scroll for firstwin horizontal split 1672 wincmd j
1668 execute 'norm gg' . pos 1673 call assert_equal(win_screenpos(0)[0] - tabline - winbar_sb, line("w0"))
1669 split | redraw | wincmd k 1674
1670 call assert_equal(1, line("w0")) 1675 " No scroll when resizing windows
1671 call assert_equal(&scroll, winheight(0) / 2) 1676 wincmd k | resize +2
1672 wincmd j 1677 call assert_equal(1, line("w0"))
1673 call assert_equal(win_screenpos(0)[0] - tabline - winbar_sb, line("w0")) 1678 wincmd j
1674 1679 call assert_equal(win_screenpos(0)[0] - tabline - winbar_sb, line("w0"))
1675 " No scroll when resizing windows 1680
1676 wincmd k | resize +2 1681 " No scroll when dragging statusline
1677 call assert_equal(1, line("w0")) 1682 call win_move_statusline(1, -3)
1678 wincmd j 1683 call assert_equal(win_screenpos(0)[0] - tabline - winbar_sb, line("w0"))
1679 call assert_equal(win_screenpos(0)[0] - tabline - winbar_sb, line("w0")) 1684 wincmd k
1680 1685 call assert_equal(1, line("w0"))
1681 " No scroll when dragging statusline 1686
1682 call win_move_statusline(1, -3) 1687 " No scroll when changing shellsize
1683 call assert_equal(win_screenpos(0)[0] - tabline - winbar_sb, line("w0")) 1688 set lines+=2
1684 wincmd k 1689 call assert_equal(1, line("w0"))
1685 call assert_equal(1, line("w0")) 1690 wincmd j
1686 1691 call assert_equal(win_screenpos(0)[0] - tabline - winbar_sb, line("w0"))
1687 " No scroll when changing shellsize 1692 set lines-=2
1688 set lines+=2 1693 call assert_equal(win_screenpos(0)[0] - tabline - winbar_sb, line("w0"))
1689 call assert_equal(1, line("w0")) 1694 wincmd k
1690 wincmd j 1695 call assert_equal(1, line("w0"))
1691 call assert_equal(win_screenpos(0)[0] - tabline - winbar_sb, line("w0")) 1696
1692 set lines-=2 1697 " No scroll when equalizing windows
1693 call assert_equal(win_screenpos(0)[0] - tabline - winbar_sb, line("w0")) 1698 wincmd =
1694 wincmd k 1699 call assert_equal(1, line("w0"))
1695 call assert_equal(1, line("w0")) 1700 wincmd j
1696 1701 call assert_equal(win_screenpos(0)[0] - tabline - winbar_sb, line("w0"))
1697 " No scroll when equalizing windows 1702 wincmd k
1698 wincmd = 1703 call assert_equal(1, line("w0"))
1699 call assert_equal(1, line("w0")) 1704
1700 wincmd j 1705 " No scroll in windows split multiple times
1701 call assert_equal(win_screenpos(0)[0] - tabline - winbar_sb, line("w0")) 1706 vsplit | split | 4wincmd w
1702 wincmd k 1707 call assert_equal(win_screenpos(0)[0] - tabline - winbar_sb, line("w0"))
1703 call assert_equal(1, line("w0")) 1708 1wincmd w | quit | wincmd l | split
1704 1709 call assert_equal(win_screenpos(0)[0] - tabline - winbar_sb, line("w0"))
1705 " No scroll in windows split multiple times 1710 wincmd j
1706 vsplit | split | 4wincmd w 1711 call assert_equal(win_screenpos(0)[0] - tabline - winbar_sb, line("w0"))
1707 call assert_equal(win_screenpos(0)[0] - tabline - winbar_sb, line("w0")) 1712
1708 1wincmd w | quit | wincmd l | split 1713 " No scroll in small window
1709 call assert_equal(win_screenpos(0)[0] - tabline - winbar_sb, line("w0")) 1714 2wincmd w | only | 5split | wincmd k
1710 wincmd j 1715 call assert_equal(1, line("w0"))
1711 call assert_equal(win_screenpos(0)[0] - tabline - winbar_sb, line("w0")) 1716 wincmd j
1712 1717 call assert_equal(win_screenpos(0)[0] - tabline - winbar_sb, line("w0"))
1713 " No scroll in small window 1718
1714 2wincmd w | only | 5split | wincmd k 1719 " No scroll for vertical split
1715 call assert_equal(1, line("w0")) 1720 quit | vsplit | wincmd l
1716 wincmd j 1721 call assert_equal(1, line("w0"))
1717 call assert_equal(win_screenpos(0)[0] - tabline - winbar_sb, line("w0")) 1722 wincmd h
1718 1723 call assert_equal(1, line("w0"))
1719 " No scroll for vertical split 1724
1720 quit | vsplit | wincmd l 1725 " No scroll in windows split and quit multiple times
1721 call assert_equal(1, line("w0")) 1726 quit | redraw | split | redraw | split | redraw | quit | redraw
1722 wincmd h 1727 call assert_equal(win_screenpos(0)[0] - tabline - winbar_sb, line("w0"))
1723 call assert_equal(1, line("w0")) 1728
1724 1729 " No scroll for new buffer
1725 " No scroll in windows split and quit multiple times 1730 1wincmd w | only | copen | wincmd k
1726 quit | redraw | split | redraw | split | redraw | quit | redraw 1731 call assert_equal(1, line("w0"))
1727 call assert_equal(win_screenpos(0)[0] - tabline - winbar_sb, line("w0")) 1732 only
1728 1733 call assert_equal(1, line("w0"))
1729 " No scroll for new buffer 1734 above copen | wincmd j
1730 1wincmd w | only | copen | wincmd k 1735 call assert_equal(win_screenpos(0)[0] - tabline, line("w0"))
1731 call assert_equal(1, line("w0")) 1736
1732 only 1737 " No scroll when opening cmdwin, and no cursor move when closing cmdwin.
1733 call assert_equal(1, line("w0")) 1738 only | norm ggL
1734 above copen | wincmd j 1739 let curpos = getcurpos()
1735 call assert_equal(win_screenpos(0)[0] - tabline, line("w0")) 1740 norm q:
1736 1741 call assert_equal(1, line("w0"))
1737 " No scroll when opening cmdwin, and no cursor move when closing 1742 call assert_equal(curpos, getcurpos())
1738 " cmdwin. 1743
1739 only | norm ggL 1744 " Scroll when cursor becomes invalid in insert mode
1740 let curpos = getcurpos() 1745 norm Lic
1741 norm q: 1746 call assert_equal(curpos, getcurpos())
1742 call assert_equal(1, line("w0")) 1747
1743 call assert_equal(curpos, getcurpos()) 1748 " No scroll when topline not equal to 1
1744 1749 only | execute "norm gg5\<C-e>" | split | wincmd k
1745 " Scroll when cursor becomes invalid in insert mode 1750 call assert_equal(6, line("w0"))
1746 norm Lic 1751 wincmd j
1747 wincmd k | only 1752 call assert_equal(5 + win_screenpos(0)[0] - tabline - winbar_sb, line("w0"))
1748 call assert_notequal(1, line("w0"))
1749
1750 " No scroll when topline not equal to 1
1751 execute "norm gg5\<C-e>" | split | wincmd k
1752 call assert_equal(6, line("w0"))
1753 wincmd j
1754 call assert_equal(5 + win_screenpos(0)[0] - tabline - winbar_sb, line("w0"))
1755 endfor
1756 endfor
1757 endfor
1758 endfor
1759 endfor
1760 endfor
1761 endfor 1753 endfor
1762 1754
1763 tabnew | tabonly! | %bwipeout! 1755 tabnew | tabonly! | %bwipeout!
1764 iunmap c 1756 iunmap c
1765 set wrap& 1757 set wrap&
1766 set scrolloff& 1758 set scrolloff&
1767 set splitbelow& 1759 set splitbelow&
1768 set laststatus& 1760 set laststatus&
1769 set equalalways& 1761 set equalalways&
1770 set splitscroll& 1762 set splitscroll&
1763 let &t_WS = save_WS
1771 endfunc 1764 endfunc
1772 1765
1773 function Test_nosplitscroll_cmdwin_cursor_position() 1766 function Test_nosplitscroll_cmdwin_cursor_position()
1774 set nosplitscroll 1767 set nosplitscroll
1775 call setline(1, range(&lines)) 1768 call setline(1, range(&lines))