;;;; -*- coding: utf-8; fill-column: 78 -*-
changes relative to sbcl-1.0.55:
+ * bug fix: SB-SIMPLE-STREAMS signals an error for bogus :CLASS arguments in
+ OPEN. (lp#969352, thanks to Kambiz Darabi)
* documentation:
** improved docstrings: REPLACE (lp#965592)
(remf options :input-handle)
(remf options :output-handle)
(make-instance class :lisp-stream
- (apply #'open-fd-stream filespec options))))))
+ (apply #'open-fd-stream filespec options)))
+ (t (error "Don't know how to handle the stream class ~A"
+ (etypecase class
+ (symbol (find-class class t))
+ (class class)))))))
(declaim (inline read-byte read-char read-char-no-hang unread-char))
(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