X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=contrib%2Fsb-simple-streams%2Fsimple-stream-tests.lisp;h=20c5a8efc9214893a1a2892021385d13c018396d;hb=f057566fe993f008a9b34dc87b026e7c8ef2611d;hp=557fb631eef381753163b55d6d96f0e559870405;hpb=830db48da09c88c0e91b11e2991d21b2a1af2579;p=sbcl.git diff --git a/contrib/sb-simple-streams/simple-stream-tests.lisp b/contrib/sb-simple-streams/simple-stream-tests.lisp index 557fb63..20c5a8e 100644 --- a/contrib/sb-simple-streams/simple-stream-tests.lisp +++ b/contrib/sb-simple-streams/simple-stream-tests.lisp @@ -60,6 +60,22 @@ (progn ,@body)) ,(when delete-afterwards `(ignore-errors (delete-file ,file)))))) +(deftest non-existent-class + (handler-case + (with-test-file (s *test-file* :class 'non-existent-stream) + nil) + ;; find-class will raise a simple-error + (simple-error (c) (search "There is no class" (simple-condition-format-control c)))) + 0) + +(deftest non-stream-class + (handler-case + (with-test-file (s *test-file* :class 'standard-class) + nil) + ;; Will fall through sb-simple-streams:open as it is no stream class. + (simple-error (c) (search "Don't know how to handle" (simple-condition-format-control c)))) + 0) + (deftest create-file-1 ;; Create a file-simple-stream, write data. (prog1 @@ -124,7 +140,10 @@ (string= (prog1 (write-line "Got it!" s) (finish-output s)) (read-line s))) ;; Fail gracefully if echo isn't activated on the system - (sb-bsd-sockets::connection-refused-error () t)) + (sb-bsd-sockets::connection-refused-error () t) + ;; Timeout may occur on the restricted systems (e.g. FreeBSD + ;; with jail(8) or blackhole(4) is used). + (sb-bsd-sockets::operation-timeout-error () t)) t) (deftest write-read-large-sc-1 @@ -197,7 +216,10 @@ (string= (prog1 (write-line content s) (finish-output s)) (read-line s)))) ;; Fail gracefully if echo isn't activated on the system - (sb-bsd-sockets::connection-refused-error () t)) + (sb-bsd-sockets::connection-refused-error () t) + ;; Timeout may occur on the restricted systems (e.g. FreeBSD + ;; with jail(8) or blackhole(4) is used). + (sb-bsd-sockets::operation-timeout-error () t)) t) @@ -924,3 +946,24 @@ Nothing to see here, move along.") :external-format :utf-8) (char-code (read-char s)))) 196) + +;; launchpad bug #491087 + +(deftest lp491087 + (labels ((read-big-int (stream) + (let ((b (make-array 1 :element-type '(signed-byte 32) + :initial-element 0))) + (declare (dynamic-extent b)) + (sb-simple-streams::read-vector b stream + :endian-swap :network-order) + (aref b 0)))) + (with-open-file (stream + (merge-pathnames #P"lp491087.txt" *test-path*) + :class 'file-simple-stream) + (let* ((start (file-position stream)) + (integer (read-big-int stream)) + (end (file-position stream))) + (and (= start 0) + (= integer #x30313233) + (= end 4))))) + T)