Skip to content

Instantly share code, notes, and snippets.

@jmercouris
Created March 7, 2018 23:24
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
Star You must be signed in to star a gist
Save jmercouris/205c1de56cb66de167c30271666c6975 to your computer and use it in GitHub Desktop.
(deftest simple-local-client
(progn
;; SunOS (Solaris) and Darwin systems don't have a socket at
;; /dev/log. We might also be building in a chroot or
;; something, so don't fail this test just because the file is
;; unavailable, or if it's a symlink to some weird character
;; device.
(when (block nil
(handler-bind ((sb-posix:syscall-error
(lambda (e)
(declare (ignore e))
(return nil))))
(sb-posix:s-issock
(sb-posix::stat-mode (sb-posix:stat "/dev/log")))))
(let ((s (make-instance 'local-socket :type :datagram)))
(format t "Connecting ~A... " s)
(finish-output)
(handler-case
(socket-connect s "/dev/log")
(sb-bsd-sockets::socket-error ()
(setq s (make-instance 'local-socket :type :stream))
(format t "failed~%Retrying with ~A... " s)
(finish-output)
(socket-connect s "/dev/log")))
(format t "ok.~%")
(let ((stream (socket-make-stream s :input t :output t :buffering :none)))
(format stream
"<7>bsd-sockets: Don't panic. We're testing local-domain client code; this message can safely be ignored"))))
t)
t)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment