(equalp (make-inet-address "242.1.211.3") #(242 1 211 3))
t)
+(deftest get-protocol-by-name/tcp
+ (integerp (get-protocol-by-name "tcp"))
+ t)
+
+(deftest get-protocol-by-name/udp
+ (integerp (get-protocol-by-name "udp"))
+ t)
+
+(deftest get-protocol-by-name/error
+ (handler-case (get-protocol-by-name "nonexistent-protocol")
+ (unknown-protocol ()
+ t)
+ (:no-error ()
+ nil))
+ t)
+
(deftest make-inet-socket
;; make a socket
(let ((s (make-instance 'inet-socket :type :stream :protocol (get-protocol-by-name "tcp"))))
;; way to check the condition stuff on its own, which is a shame
(handler-case
(make-instance 'inet-socket :type :stream :protocol (get-protocol-by-name "udp"))
- ((or socket-type-not-supported-error protocol-not-supported-error) (c)
+ ;; CLH FIXME! some versions of darwin just return a socket error
+ ;; here, not socket-type-not-supported-error or
+ ;; protocol-not-supported-error.
+ ((or #+darwin socket-error
+ socket-type-not-supported-error
+ protocol-not-supported-error)
+ (c)
(declare (ignorable c)) t)
(:no-error nil))
t)
;; same again with keywords
(handler-case
(make-instance 'inet-socket :type :stream :protocol :udp)
- ((or protocol-not-supported-error socket-type-not-supported-error) (c)
+ ;; CLH FIXME! some versions of darwin just return a socket error
+ ;; here, not socket-type-not-supported-error or
+ ;; protocol-not-supported-error.
+ ((or
+ #+darwin socket-error
+ protocol-not-supported-error
+ socket-type-not-supported-error)
+ (c)
(declare (ignorable c)) t)
(:no-error nil))
t)
;;; the message ended up
(deftest simple-local-client
+ #-win32
(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 (and (probe-file "/dev/log")
- (sb-posix:s-issock
- (sb-posix::stat-mode (sb-posix:stat "/dev/log"))))
+ (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)
(host-ent-name (get-host-by-address #(198 41 0 4)))
"a.root-servers.net")
+;;; These days lots of people seem to be using DNS servers that don't
+;;; report resolving failures for non-existing domains. This test
+;;; will fail there, so we've disabled it.
+#+nil
(deftest get-host-by-name-wrong
(handler-case
(get-host-by-name "foo.tninkpad.telent.net.")