Mercurial > vim
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)) |