sbcl stuff

This commit is contained in:
Ian Keane 2020-01-20 14:13:08 -05:00
parent 1d1dbc34df
commit 5d91dbb667
335 changed files with 119806 additions and 1 deletions

View file

@ -0,0 +1,179 @@
;;;; -*- Mode: LISP; Base: 10; Syntax: ANSI-Common-lisp; Package: USOCKET-TEST -*-
;;;; See LICENSE for licensing information.
;;;; Usage: (usoct:run-usocket-tests) or (usoct:do-tests)
(in-package :usocket-test)
(defparameter +non-existing-host+ "1.2.3.4")
(defparameter +unused-local-port+ 15213)
(defparameter *fake-usocket*
(usocket::make-stream-socket :socket :my-socket
:stream :my-stream))
(eval-when (:compile-toplevel :load-toplevel :execute)
(defvar *common-lisp-net*
(get-host-by-name "common-lisp.net")))
(defvar *local-ip*)
(defmacro with-caught-conditions ((expect throw) &body body)
`(catch 'caught-error
(handler-case
(handler-bind ((unsupported
#'(lambda (c)
(declare (ignore c)) (continue))))
(progn ,@body))
(unknown-error (c) (if (typep c ',expect)
(throw 'caught-error ,throw)
(progn
(describe c)
(describe
(usocket::usocket-real-error c))
c)))
(error (c) (if (typep c ',expect)
(throw 'caught-error ,throw)
(progn
(describe c)
c)))
(unknown-condition (c) (if (typep c ',expect)
(throw 'caught-error ,throw)
(progn
(describe c)
(describe
(usocket::usocket-real-condition c))
c)))
(condition (c) (if (typep c ',expect)
(throw 'caught-error ,throw)
(progn
(describe c)
c))))))
(deftest make-socket.1 (socket *fake-usocket*) :my-socket)
(deftest make-socket.2 (socket-stream *fake-usocket*) :my-stream)
(deftest socket-no-connect.1
(with-caught-conditions (socket-error nil)
(socket-connect "127.0.0.1" +unused-local-port+ :timeout 1)
t)
nil)
(deftest socket-no-connect.2
(with-caught-conditions (socket-error nil)
(socket-connect #(127 0 0 1) +unused-local-port+ :timeout 1)
t)
nil)
(deftest socket-no-connect.3
(with-caught-conditions (socket-error nil)
(socket-connect 2130706433 +unused-local-port+ :timeout 1) ;; == #(127 0 0 1)
t)
nil)
(deftest socket-failure.1
(with-caught-conditions (timeout-error nil)
(socket-connect 2130706433 +unused-local-port+ :timeout 1) ;; == #(127 0 0 1)
:unreach)
nil)
(deftest socket-failure.2
(with-caught-conditions (timeout-error nil)
(socket-connect +non-existing-host+ 80 :timeout 1) ;; 80 = just a port
:unreach)
nil)
;; let's hope c-l.net doesn't move soon, or that people start to
;; test usocket like crazy..
(deftest socket-connect.1
(with-caught-conditions (nil nil)
(let ((sock (socket-connect "common-lisp.net" 80)))
(unwind-protect
(when (typep sock 'usocket) t)
(socket-close sock))))
t)
(deftest socket-connect.2
(with-caught-conditions (nil nil)
(let ((sock (socket-connect *common-lisp-net* 80)))
(unwind-protect
(when (typep sock 'usocket) t)
(socket-close sock))))
t)
(deftest socket-connect.3
(with-caught-conditions (nil nil)
(let ((sock (socket-connect (usocket::host-byte-order *common-lisp-net*) 80)))
(unwind-protect
(when (typep sock 'usocket) t)
(socket-close sock))))
t)
;; let's hope c-l.net doesn't change its software any time soon
(deftest socket-stream.1
(with-caught-conditions (nil nil)
(let ((sock (socket-connect "common-lisp.net" 80)))
(unwind-protect
(progn
(format (socket-stream sock)
"GET / HTTP/1.0~2%")
(force-output (socket-stream sock))
(subseq (read-line (socket-stream sock)) 0 4))
(socket-close sock))))
"HTTP")
(deftest socket-name.1
(with-caught-conditions (nil nil)
(let ((sock (socket-connect *common-lisp-net* 80)))
(unwind-protect
(get-peer-address sock)
(socket-close sock))))
#.*common-lisp-net*)
(deftest socket-name.2
(with-caught-conditions (nil nil)
(let ((sock (socket-connect *common-lisp-net* 80)))
(unwind-protect
(get-peer-port sock)
(socket-close sock))))
80)
(deftest socket-name.3
(with-caught-conditions (nil nil)
(let ((sock (socket-connect *common-lisp-net* 80)))
(unwind-protect
(get-peer-name sock)
(socket-close sock))))
#.*common-lisp-net* 80)
#+ignore
(deftest socket-name.4
(with-caught-conditions (nil nil)
(let ((sock (socket-connect *common-lisp-net* 80)))
(unwind-protect
(equal (get-local-address sock) *local-ip*)
(socket-close sock))))
t)
(deftest socket-shutdown.1
(with-caught-conditions (nil nil)
(let ((sock (socket-connect *common-lisp-net* 80)))
(unwind-protect
(usocket::ignore-unsupported-warnings
(socket-shutdown sock :input))
(socket-close sock))
t))
t)
(deftest socket-shutdown.2
(with-caught-conditions (nil nil)
(let ((sock (socket-connect *common-lisp-net* 80)))
(unwind-protect
(usocket::ignore-unsupported-warnings
(socket-shutdown sock :output))
(socket-close sock))
t))
t)
(defun run-usocket-tests ()
(do-tests))