1.0.10.31: sb-posix support for getgrnam and getgrgid
[sbcl.git] / contrib / sb-posix / posix-tests.lisp
index 02dee2b..9f74b51 100644 (file)
          ;; FIXME: (encode-universal-time 00 00 00 01 01 1970)
          (unix-now (- now 2208988800))
          (stat (sb-posix:stat *test-directory*))
-         #+darwin (atime (sb-alien:slot (sb-posix:stat-atime stat) 'sb-posix::tv-sec))
-         #-darwin (atime (sb-posix::stat-atime stat)))
+         (atime (sb-posix::stat-atime stat)))
     ;; FIXME: breaks if mounted noatime :-(
     #+nil (< (- atime unix-now) 10)
     (< (- atime unix-now) 10))
     (logand mode sb-posix::s-iwoth))
   0)
 
+;; Test that stat can take a second argument.
+(deftest stat.5
+    (let* ((stat-1 (sb-posix:stat "/"))
+           (inode-1 (sb-posix:stat-ino stat-1))
+           (stat-2 (sb-posix:stat "/bin/sh"
+                                   stat-1))
+           (inode-2 (sb-posix:stat-ino stat-2)))
+      (values
+       (eq stat-1 stat-2)
+       (/= inode-1 inode-2)))
+  t
+  t)
+
 ;;; FIXME: add tests for carrying a stat structure around in the
 ;;; optional argument to SB-POSIX:STAT
 
   (not (sb-posix:getpwnam "root"))
   nil)
 
+#-win32
+(deftest grent.1
+  ;; make sure that we found something
+  (not (sb-posix:getgrgid 0))
+  nil)
+
+#-win32
+(deftest grent.2
+  ;; make sure that we found something
+  (not (sb-posix:getgrnam "wheel"))
+  nil)
+
 #+nil
 ;; Requires root or special group + plus a sensible thing on the port
 (deftest cfget/setispeed.1
     (plusp (sb-posix:time))
   t)
 
-;;; CLH: FIXME! For darwin atime and mtime return a timespec. This
-;;; _should_ work, but it doesn't. For some reason mtime is always
-;;; 0. Comment the mtime test out for the moment.
-#+darwin
-(deftest utime.1
-    (let ((file (merge-pathnames #p"utime.1" *test-directory*))
-          (atime (random (1- (expt 2 31))))
-          (mtime (random (1- (expt 2 31)))))
-      (with-open-file (stream file
-                       :direction :output
-                       :if-exists :supersede
-                       :if-does-not-exist :create)
-        (princ "Hello, utime" stream))
-      (sb-posix:utime file atime mtime)
-      (let* ((stat (sb-posix:stat file)))
-        (delete-file file)
-        (list (= (sb-alien:slot (sb-posix:stat-atime stat) 'sb-posix::tv-sec) atime)
-              #+nil (= (sb-alien:slot (sb-posix:stat-mtime stat) 'sb-posix::tv-sec) mtime))))
-  (t #+nil t))
-
-#-(or win32 darwin)
+#-win32
 (deftest utimes.1
     (let ((file (merge-pathnames #p"utimes.1" *test-directory*))
           (atime (random (1- (expt 2 31))))
             (sb-posix:unlink non-link-pathname))))
     #.sb-posix:enotdir)
   )
+
+(deftest getcwd.1
+    ;; FIXME: something saner, please
+    (equal (sb-unix::posix-getcwd) (sb-posix:getcwd))
+  t)