X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=contrib%2Fsb-bsd-sockets%2Ftests.lisp;h=a510c9f3ecb903a88cfb63ee7f0f5aa78ab7899f;hb=22c1de0a40df83bb5628974010a879cb2c17ff53;hp=22512f5fa6f2706cc5e7eb860d1c3b8097740b45;hpb=10d2c05ea44ca0837091434fe2223c0c31687615;p=sbcl.git diff --git a/contrib/sb-bsd-sockets/tests.lisp b/contrib/sb-bsd-sockets/tests.lisp index 22512f5..a510c9f 100644 --- a/contrib/sb-bsd-sockets/tests.lisp +++ b/contrib/sb-bsd-sockets/tests.lisp @@ -1,5 +1,5 @@ (defpackage "SB-BSD-SOCKETS-TEST" - (:use "CL" "SB-BSD-SOCKETS" "RT")) + (:use "CL" "SB-BSD-SOCKETS" "SB-RT")) #|| @@ -103,7 +103,7 @@ Tests are in the file tests.lisp and also make good examples. (setf (elt buffer i) c)))) ;;; these require that the echo services are turned on in inetd - +#+internet-available (deftest simple-tcp-client (let ((s (make-instance 'inet-socket :type :stream :protocol :tcp)) (data (make-string 200))) @@ -115,6 +115,7 @@ Tests are in the file tests.lisp and also make good examples. (> (length data) 0)))) t) +#+internet-available (deftest simple-udp-client (let ((s (make-instance 'inet-socket :type :datagram :protocol (get-protocol-by-name "udp"))) (data (make-string 200))) @@ -127,32 +128,40 @@ Tests are in the file tests.lisp and also make good examples. (> (length data) 0)))) t) -#|| -

Unix-domain sockets

- -A fairly rudimentary test that connects to the syslog socket and sends a -message. Priority 7 is kern.debug; you'll probably want to look at -/etc/syslog.conf or local equivalent to find out where the message ended up -||# - -(deftest simple-unix-client - (let ((s (make-instance 'unix-socket :type :datagram))) - (format t "~A~%" s) - (socket-connect s "/dev/log") +;;; A fairly rudimentary test that connects to the syslog socket and +;;; sends a message. Priority 7 is kern.debug; you'll probably want +;;; to look at /etc/syslog.conf or local equivalent to find out where +;;; the message ended up + +#-sunos +(deftest simple-local-client + (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 unix-domain client code; this message can safely be ignored") + "<7>bsd-sockets: Don't panic. We're testing local-domain client code; this message can safely be ignored") t)) t) -;;; these require that the internet (or bits of it, atleast) is available +;;; these require that the internet (or bits of it, at least) is available +#+internet-available (deftest get-host-by-name (equalp (car (host-ent-addresses (get-host-by-name "a.root-servers.net"))) #(198 41 0 4)) t) +#+internet-available (deftest get-host-by-address (host-ent-name (get-host-by-address #(198 41 0 4))) "a.root-servers.net") @@ -172,6 +181,7 @@ message. Priority 7 is kern.debug; you'll probably want to look at (format stream "~A HTTP/1.0~%~%" request)) s)) +#+internet-available (deftest simple-http-client-1 (handler-case (let ((s (http-stream "ww.telent.net" 80 "HEAD /"))) @@ -185,6 +195,7 @@ message. Priority 7 is kern.debug; you'll probably want to look at t) +#+internet-available (deftest sockopt-receive-buffer ;; on Linux x86, the receive buffer size appears to be doubled in the ;; kernel: we set a size of x and then getsockopt() returns 2x.