+
+#-(and x86-64 linux)
+(deftest fcntl.1
+ (let ((fd (sb-posix:open "/dev/null" sb-posix::o-nonblock)))
+ (= (sb-posix:fcntl fd sb-posix::f-getfl) sb-posix::o-nonblock))
+ t)
+;; On AMD64/Linux O_LARGEFILE is always set, even though the whole
+;; flag makes no sense.
+#+(and x86-64 linux)
+(deftest fcntl.1
+ (let ((fd (sb-posix:open "/dev/null" sb-posix::o-nonblock)))
+ (/= 0 (logand (sb-posix:fcntl fd sb-posix::f-getfl)
+ sb-posix::o-nonblock)))
+ t)
+
+(deftest opendir.1
+ (let ((dir (sb-posix:opendir "/")))
+ (unwind-protect (sb-alien:null-alien dir)
+ (unless (sb-alien:null-alien dir)
+ (sb-posix:closedir dir))))
+ nil)
+
+(deftest readdir.1
+ (let ((dir (sb-posix:opendir "/")))
+ (unwind-protect
+ (block dir-loop
+ (loop for dirent = (sb-posix:readdir dir)
+ until (sb-alien:null-alien dirent)
+ when (not (stringp (sb-posix:dirent-name dirent)))
+ do (return-from dir-loop nil)
+ finally (return t)))
+ (sb-posix:closedir dir)))
+ t)