1 | (use posix test) |
---|
2 | |
---|
3 | (define (set-file-mask! mask) |
---|
4 | (let ((test-file "foomask")) |
---|
5 | (delete-file* test-file) |
---|
6 | (set! (file-creation-mode) mask) |
---|
7 | (with-output-to-file test-file (cut print "")) |
---|
8 | (number->string (file-permissions test-file) 8))) |
---|
9 | |
---|
10 | (test-begin "umask") |
---|
11 | (test "100660" (set-file-mask! perm/irwxo)) |
---|
12 | (test "100600" (set-file-mask! (bitwise-ior perm/irwxo perm/irwxg))) |
---|
13 | (test "100000" (set-file-mask! (bitwise-ior perm/irwxo perm/irwxg perm/irwxu))) |
---|
14 | |
---|
15 | (test "100664" (set-file-mask! perm/iwoth)) |
---|
16 | (test "100644" (set-file-mask! (bitwise-ior perm/iwoth perm/iwgrp))) |
---|
17 | (test "100444" (set-file-mask! (bitwise-ior perm/iwoth perm/iwgrp perm/iwusr))) |
---|
18 | (test-end "umask") |
---|