1" Test getting and setting file permissions.
2
3func Test_file_perm()
4  call assert_equal('', getfperm('Xtest'))
5  call assert_equal(0, 'Xtest'->setfperm('r--------'))
6
7  call writefile(['one'], 'Xtest')
8  call assert_true(len('Xtest'->getfperm()) == 9)
9
10  call assert_equal(1, setfperm('Xtest', 'rwx------'))
11  if has('win32')
12    call assert_equal('rw-rw-rw-', getfperm('Xtest'))
13  else
14    call assert_equal('rwx------', getfperm('Xtest'))
15  endif
16
17  call assert_equal(1, setfperm('Xtest', 'r--r--r--'))
18  call assert_equal('r--r--r--', getfperm('Xtest'))
19
20  call assert_fails("setfperm('Xtest', '---')")
21
22  call assert_equal(1, setfperm('Xtest', 'rwx------'))
23  call delete('Xtest')
24
25  call assert_fails("call setfperm(['Xfile'], 'rw-rw-rw-')", 'E730:')
26  call assert_fails("call setfperm('Xfile', [])", 'E730:')
27  call assert_fails("call setfperm('Xfile', 'rwxrwxrwxrw')", 'E475:')
28endfunc
29
30" vim: shiftwidth=2 sts=2 expandtab
31