0.8.10.49:
[sbcl.git] / tests / reader.impure.lisp
index b71a2ee..46be9f9 100644 (file)
 ;;; CSR managed to break the #S reader macro in the process of merging
 ;;; SB-PCL:CLASS and CL:CLASS -- make sure it works
 (defstruct readable-struct a)
-(assert (eq (readable-struct-a
-            (read-from-string "#S(READABLE-STRUCT :A T)"))
-           t))
+(macrolet
+    ((frob (string)
+       `(assert (eq (readable-struct-a (read-from-string ,string)) t))))
+  (frob "#S(READABLE-STRUCT :A T)")
+  (frob "#S(READABLE-STRUCT A T)")
+  (frob "#S(READABLE-STRUCT \"A\" T)")
+  (frob "#S(READABLE-STRUCT #\\A T)")
+  (frob "#S(READABLE-STRUCT #\\A T :A NIL)"))
+(macrolet
+    ((frob (string)
+       `(assert (raises-error? (read-from-string ,string) reader-error))))
+  (frob "#S(READABLE-STRUCT . :A)")
+  (frob "#S(READABLE-STRUCT :A . T)")
+  (frob "#S(READABLE-STRUCT :A T . :A)")
+  (frob "#S(READABLE-STRUCT :A T :A . T)"))
 
 ;;; reported by Henrik Motakef
 (defpackage "")