xref: /vim-8.2.3635/src/testdir/test_backup.vim (revision ceb56ddb)
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