X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=contrib%2Fsb-posix%2Fposix-tests.lisp;h=4761a221662452a67bfcc8484b5625d6add366aa;hb=c3699db2053ff3b5ac6a98d4431c3789496002d8;hp=14f04b0ffaf7be28c207cac513a3a4695faa6030;hpb=bbfa2aeb01af0a2353539aa3132a4b2a383cbd32;p=sbcl.git diff --git a/contrib/sb-posix/posix-tests.lisp b/contrib/sb-posix/posix-tests.lisp index 14f04b0..4761a22 100644 --- a/contrib/sb-posix/posix-tests.lisp +++ b/contrib/sb-posix/posix-tests.lisp @@ -12,6 +12,11 @@ (defvar *current-directory* *default-pathname-defaults*) (defvar *this-file* *load-truename*) + +(eval-when (:compile-toplevel :load-toplevel) + (defconstant +mode-rwx-all+ (logior sb-posix::s-irusr sb-posix::s-iwusr sb-posix::s-ixusr + sb-posix::s-irgrp sb-posix::s-iwgrp sb-posix::s-ixgrp + sb-posix::s-iroth sb-posix::s-iwoth sb-posix::s-ixoth))) (deftest chdir.1 (sb-posix:chdir *test-directory*) @@ -145,8 +150,8 @@ (dir2 (merge-pathnames (make-pathname :directory '(:relative "unremovable")) dir))) - (sb-posix:mkdir dir #xffffffff) - (sb-posix:mkdir dir2 #xffffffff) + (sb-posix:mkdir dir +mode-rwx-all+) + (sb-posix:mkdir dir2 +mode-rwx-all+) (sb-posix:chmod dir 0) (handler-case (sb-posix:rmdir dir2) @@ -165,8 +170,11 @@ #.(logior sb-posix::s-iread sb-posix::s-iwrite sb-posix::s-iexec)) (deftest stat.2 - (let* ((stat (sb-posix:stat "/root")) + (let* ((stat (sb-posix:stat "/")) (mode (sb-posix::stat-mode stat))) + ;; it's logically possible for / to be writeable by others... but + ;; if it is, either someone is playing with strange security + ;; modules or they want to know about it anyway. (logand mode sb-posix::s-iwoth)) 0) @@ -196,7 +204,7 @@ (file (merge-pathnames (make-pathname :name "unstatable") dir))) - (sb-posix:mkdir dir #xffffffff) + (sb-posix:mkdir dir +mode-rwx-all+) (with-open-file (s file :direction :output) (write "" :stream s)) (sb-posix:chmod dir 0) @@ -225,32 +233,32 @@ (deftest stat-mode.1 (with-stat-mode (mode *test-directory*) (sb-posix:s-isreg mode)) - 0) + nil) (deftest stat-mode.2 (with-stat-mode (mode *test-directory*) - (zerop (sb-posix:s-isdir mode))) - nil) + (sb-posix:s-isdir mode)) + t) (deftest stat-mode.3 (with-stat-mode (mode *test-directory*) (sb-posix:s-ischr mode)) - 0) + nil) (deftest stat-mode.4 (with-stat-mode (mode *test-directory*) (sb-posix:s-isblk mode)) - 0) + nil) (deftest stat-mode.5 (with-stat-mode (mode *test-directory*) (sb-posix:s-isfifo mode)) - 0) + nil) (deftest stat-mode.6 (with-stat-mode (mode *test-directory*) (sb-posix:s-issock mode)) - 0) + nil) (deftest stat-mode.7 (let ((link-pathname (make-pathname :name "stat-mode.7" @@ -259,9 +267,9 @@ (progn (sb-posix:symlink *test-directory* link-pathname) (with-lstat-mode (mode link-pathname) - (zerop (sb-posix:s-islnk mode)))) + (sb-posix:s-islnk mode))) (ignore-errors (sb-posix:unlink link-pathname)))) - nil) + t) (deftest stat-mode.8 (let ((pathname (make-pathname :name "stat-mode.8" @@ -271,9 +279,9 @@ (with-open-file (out pathname :direction :output) (write-line "test" out)) (with-stat-mode (mode pathname) - (zerop (sb-posix:s-isreg mode)))) + (sb-posix:s-isreg mode))) (ignore-errors (delete-file pathname)))) - nil) + t) ;;; see comment in filename's designator definition, in macros.lisp (deftest filename-designator.1