1" Tests for the backup function 2 3source check.vim 4 5func Test_backup() 6 set backup backupdir=. backupskip= 7 new 8 call setline(1, ['line1', 'line2']) 9 :f Xbackup.txt 10 :w! Xbackup.txt 11 " backup file is only created after 12 " writing a second time (before overwriting) 13 :w! Xbackup.txt 14 let l = readfile('Xbackup.txt~') 15 call assert_equal(['line1', 'line2'], l) 16 bw! 17 set backup&vim backupdir&vim backupskip&vim 18 call delete('Xbackup.txt') 19 call delete('Xbackup.txt~') 20endfunc 21 22func Test_backup2() 23 set backup backupdir=.// backupskip= 24 new 25 call setline(1, ['line1', 'line2', 'line3']) 26 :f Xbackup.txt 27 :w! Xbackup.txt 28 " backup file is only created after 29 " writing a second time (before overwriting) 30 :w! Xbackup.txt 31 sp *Xbackup.txt~ 32 call assert_equal(['line1', 'line2', 'line3'], getline(1,'$')) 33 let f=expand('%') 34 call assert_match('%testdir%Xbackup.txt\~', f) 35 bw! 36 bw! 37 call delete('Xbackup.txt') 38 call delete(f) 39 set backup&vim backupdir&vim backupskip&vim 40endfunc 41 42func Test_backup2_backupcopy() 43 set backup backupdir=.// backupcopy=yes backupskip= 44 new 45 call setline(1, ['line1', 'line2', 'line3']) 46 :f Xbackup.txt 47 :w! Xbackup.txt 48 " backup file is only created after 49 " writing a second time (before overwriting) 50 :w! Xbackup.txt 51 sp *Xbackup.txt~ 52 call assert_equal(['line1', 'line2', 'line3'], getline(1,'$')) 53 let f=expand('%') 54 call assert_match('%testdir%Xbackup.txt\~', f) 55 bw! 56 bw! 57 call delete('Xbackup.txt') 58 call delete(f) 59 set backup&vim backupdir&vim backupcopy&vim backupskip&vim 60endfunc 61 62" Test for using a non-existing directory as a backup directory 63func Test_non_existing_backupdir() 64 CheckNotBSD 65 let save_backup = &backupdir 66 set backupdir=./non_existing_dir 67 call writefile(['line1'], 'Xfile') 68 new Xfile 69 " TODO: write doesn't fail in Cirrus FreeBSD CI test 70 call assert_fails('write', 'E510:') 71 let &backupdir = save_backup 72 call delete('Xfile') 73endfunc 74 75" vim: shiftwidth=2 sts=2 expandtab 76