(setf (logical-pathname-translations "demo0")
'(("**;*.*.*" "/tmp/")))
-;;; In case of a parse error we want to get a condition of type
-;;; CL:PARSE-ERROR (or more specifically, of type
-;;; SB-KERNEL:NAMESTRING-PARSE-ERROR).
+;;; In case of a parse error we want to get a condition of type TYPE-ERROR,
+;;; because ANSI says so. (This used to be PARSE-ERROR.)
(assert
(typep (grab-condition (logical-pathname "demo0::bla;file.lisp"))
- 'parse-error))
+ 'type-error))
;;; some things SBCL-0.6.9 used not to parse correctly:
;;;
(assert (probe-file test))
(assert (delete-file test))
(assert (not (probe-file test)))))
+
+(with-test (:name :logical-pathname-type-error)
+ (assert (eq :type-error-ok
+ (handler-case (logical-pathname "FOO.txt")
+ (type-error () :type-error-ok))))
+ (assert (eq :type-error-ok
+ (handler-case (logical-pathname "SYS:%")
+ (type-error () :type-error-ok)))))
+
+;;; Reported by Willem Broekema: Reading #p"\\\\" caused an error due
+;;; to insufficient sanity in input testing in EXTRACT-DEVICE (in
+;;; src;code;win32-pathname).
+#+win32
+(with-test (:name :bug-489698)
+ (assert (equal (make-pathname :directory '(:absolute))
+ (read-from-string "#p\"\\\\\\\\\""))))
+
;;;; success