mirror of
https://github.com/neovim/neovim.git
synced 2025-01-01 17:23:36 -07:00
vim-patch:8.2.0958: not sufficient testing for buffer writing
Problem: Not sufficient testing for buffer writing.
Solution: Add a few tests. (Yegappan Lakshmanan, closes vim/vim#6238)
1de5f7c81d
This commit is contained in:
parent
40ca9b9528
commit
b002499c19
@ -1,5 +1,7 @@
|
||||
" Tests for the backup function
|
||||
|
||||
source check.vim
|
||||
|
||||
func Test_backup()
|
||||
set backup backupdir=. backupskip=
|
||||
new
|
||||
@ -56,3 +58,19 @@ func Test_backup2_backupcopy()
|
||||
call delete(f)
|
||||
set backup&vim backupdir&vim backupcopy&vim backupskip&vim
|
||||
endfunc
|
||||
|
||||
" Test for using a non-existing directory as a backup directory
|
||||
func Test_non_existing_backupdir()
|
||||
throw 'Skipped: Nvim auto-creates backup directory'
|
||||
CheckNotBSD
|
||||
let save_backup = &backupdir
|
||||
set backupdir=./non_existing_dir
|
||||
call writefile(['line1'], 'Xfile')
|
||||
new Xfile
|
||||
" TODO: write doesn't fail in Cirrus FreeBSD CI test
|
||||
call assert_fails('write', 'E510:')
|
||||
let &backupdir = save_backup
|
||||
call delete('Xfile')
|
||||
endfunc
|
||||
|
||||
" vim: shiftwidth=2 sts=2 expandtab
|
||||
|
@ -398,9 +398,57 @@ func Test_write_readonly()
|
||||
set cpo+=W
|
||||
call assert_fails('write!', 'E504:')
|
||||
let &cpo = save_cpo
|
||||
call setline(1, ['line1'])
|
||||
write!
|
||||
call assert_equal(['line1'], readfile('Xfile'))
|
||||
call delete('Xfile')
|
||||
endfunc
|
||||
|
||||
" Test for 'patchmode'
|
||||
func Test_patchmode()
|
||||
CheckNotBSD
|
||||
call writefile(['one'], 'Xfile')
|
||||
set patchmode=.orig nobackup writebackup
|
||||
new Xfile
|
||||
call setline(1, 'two')
|
||||
" first write should create the .orig file
|
||||
write
|
||||
" TODO: Xfile.orig is not created in Cirrus FreeBSD CI test
|
||||
call assert_equal(['one'], readfile('Xfile.orig'))
|
||||
call setline(1, 'three')
|
||||
" subsequent writes should not create/modify the .orig file
|
||||
write
|
||||
call assert_equal(['one'], readfile('Xfile.orig'))
|
||||
set patchmode& backup& writebackup&
|
||||
call delete('Xfile')
|
||||
call delete('Xfile.orig')
|
||||
endfunc
|
||||
|
||||
" Test for writing to a file in a readonly directory
|
||||
func Test_write_readonly_dir()
|
||||
if !has('unix') || has('bsd')
|
||||
" On MS-Windows, modifying files in a read-only directory is allowed.
|
||||
" In Cirrus-CI for Freebsd, tests are run under a root account where
|
||||
" modifying files in a read-only directory are allowed.
|
||||
return
|
||||
endif
|
||||
call mkdir('Xdir')
|
||||
call writefile(['one'], 'Xdir/Xfile1')
|
||||
call setfperm('Xdir', 'r-xr--r--')
|
||||
" try to create a new file in the directory
|
||||
new Xdir/Xfile2
|
||||
call setline(1, 'two')
|
||||
call assert_fails('write', 'E212:')
|
||||
" try to create a backup file in the directory
|
||||
edit! Xdir/Xfile1
|
||||
set backupdir=./Xdir
|
||||
set patchmode=.orig
|
||||
call assert_fails('write', 'E509:')
|
||||
call setfperm('Xdir', 'rwxr--r--')
|
||||
call delete('Xdir', 'rf')
|
||||
set backupdir& patchmode&
|
||||
endfunc
|
||||
|
||||
" Test for writing a file using invalid file encoding
|
||||
func Test_write_invalid_encoding()
|
||||
new
|
||||
|
Loading…
Reference in New Issue
Block a user