mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
vim-patch:8.2.0426: some errors were not tested for
Problem: Some errors were not tested for.
Solution: Add tests. (Dominique Pelle, closes vim/vim#5824)
9b9be007e7
Cherry-pick get_highest_fnum() from patch 8.1.1908 to make tests pass.
This commit is contained in:
parent
7b5b7b3cc6
commit
a649af4dba
@ -94,11 +94,19 @@ static char *e_buflocked = N_("E937: Attempt to delete a buffer that is in use")
|
||||
// Number of times free_buffer() was called.
|
||||
static int buf_free_count = 0;
|
||||
|
||||
static int top_file_num = 1; ///< highest file number
|
||||
|
||||
typedef enum {
|
||||
kBffClearWinInfo = 1,
|
||||
kBffInitChangedtick = 2,
|
||||
} BufFreeFlags;
|
||||
|
||||
/// @return the highest possible buffer number
|
||||
int get_highest_fnum(void)
|
||||
{
|
||||
return top_file_num - 1;
|
||||
}
|
||||
|
||||
/// Read data from buffer for retrying.
|
||||
///
|
||||
/// @param read_stdin read file from stdin, otherwise fifo
|
||||
@ -1644,8 +1652,6 @@ void no_write_message_nobang(const buf_T *const buf)
|
||||
// functions for dealing with the buffer list
|
||||
//
|
||||
|
||||
static int top_file_num = 1; ///< highest file number
|
||||
|
||||
/// Initialize b:changedtick and changedtick_val attribute
|
||||
///
|
||||
/// @param[out] buf Buffer to initialize for.
|
||||
|
@ -4616,8 +4616,9 @@ char *invalid_range(exarg_T *eap)
|
||||
}
|
||||
break;
|
||||
case ADDR_BUFFERS:
|
||||
if (eap->line1 < firstbuf->b_fnum
|
||||
|| eap->line2 > lastbuf->b_fnum) {
|
||||
// Only a boundary check, not whether the buffers actually
|
||||
// exist.
|
||||
if (eap->line1 < 1 || eap->line2 > get_highest_fnum()) {
|
||||
return _(e_invrange);
|
||||
}
|
||||
break;
|
||||
|
@ -146,6 +146,7 @@ endfunc
|
||||
func Test_bdelete_cmd()
|
||||
%bwipe!
|
||||
call assert_fails('bdelete 5', 'E516:')
|
||||
call assert_fails('1,1bdelete 1 2', 'E488:')
|
||||
|
||||
" Deleting a unlisted and unloaded buffer
|
||||
edit Xfile1
|
||||
|
@ -290,9 +290,10 @@ func Test_set_errors()
|
||||
call assert_fails('set regexpengine=3', 'E474:')
|
||||
call assert_fails('set history=10001', 'E474:')
|
||||
call assert_fails('set numberwidth=21', 'E474:')
|
||||
call assert_fails('set colorcolumn=-a')
|
||||
call assert_fails('set colorcolumn=a')
|
||||
call assert_fails('set colorcolumn=1,')
|
||||
call assert_fails('set colorcolumn=-a', 'E474:')
|
||||
call assert_fails('set colorcolumn=a', 'E474:')
|
||||
call assert_fails('set colorcolumn=1,', 'E474:')
|
||||
call assert_fails('set colorcolumn=1;', 'E474:')
|
||||
call assert_fails('set cmdheight=-1', 'E487:')
|
||||
call assert_fails('set cmdwinheight=-1', 'E487:')
|
||||
if has('conceal')
|
||||
@ -343,9 +344,13 @@ func Test_set_errors()
|
||||
call assert_fails('set guicursor=i-ci,r-cr:h', 'E545:')
|
||||
call assert_fails('set guicursor=i-ci', 'E545:')
|
||||
call assert_fails('set guicursor=x', 'E545:')
|
||||
call assert_fails('set guicursor=x:', 'E546:')
|
||||
call assert_fails('set guicursor=r-cr:horx', 'E548:')
|
||||
call assert_fails('set guicursor=r-cr:hor0', 'E549:')
|
||||
endif
|
||||
if has('mouseshape')
|
||||
call assert_fails('se mouseshape=i-r:x', 'E547:')
|
||||
endif
|
||||
call assert_fails('set backupext=~ patchmode=~', 'E589:')
|
||||
call assert_fails('set winminheight=10 winheight=9', 'E591:')
|
||||
call assert_fails('set winminwidth=10 winwidth=9', 'E592:')
|
||||
|
@ -172,6 +172,35 @@ func Test_window_split_edit_bufnr()
|
||||
%bw!
|
||||
endfunc
|
||||
|
||||
func Test_window_split_no_room()
|
||||
" N horizontal windows need >= 2*N + 1 lines:
|
||||
" - 1 line + 1 status line in each window
|
||||
" - 1 Ex command line
|
||||
"
|
||||
" 2*N + 1 <= &lines
|
||||
" N <= (lines - 1)/2
|
||||
"
|
||||
" Beyond that number of windows, E36: Not enough room is expected.
|
||||
let hor_win_count = (&lines - 1)/2
|
||||
let hor_split_count = hor_win_count - 1
|
||||
for s in range(1, hor_split_count) | split | endfor
|
||||
call assert_fails('split', 'E36:')
|
||||
|
||||
" N vertical windows need >= 2*(N - 1) + 1 columns:
|
||||
" - 1 column + 1 separator for each window (except last window)
|
||||
" - 1 column for the last window which does not have separator
|
||||
"
|
||||
" 2*(N - 1) + 1 <= &columns
|
||||
" 2*N - 1 <= &columns
|
||||
" N <= (&columns + 1)/2
|
||||
let ver_win_count = (&columns + 1)/2
|
||||
let ver_split_count = ver_win_count - 1
|
||||
for s in range(1, ver_split_count) | vsplit | endfor
|
||||
call assert_fails('vsplit', 'E36:')
|
||||
|
||||
%bw!
|
||||
endfunc
|
||||
|
||||
func Test_window_exchange()
|
||||
e Xa
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user