X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Fprint.impure.lisp;h=95d246cf8659f88c3ab9c03b3f2504273a531660;hb=HEAD;hp=46a06a61944b4c26729043cd11d14fc0edc92cca;hpb=d4b41d5e69c921361e0978e5d4a7519ae54b9c6a;p=sbcl.git diff --git a/tests/print.impure.lisp b/tests/print.impure.lisp index 46a06a6..95d246c 100644 --- a/tests/print.impure.lisp +++ b/tests/print.impure.lisp @@ -103,6 +103,10 @@ (assert (raises-error? (format nil "~<~<~A~:>~>" '(foo)))) (assert (string= (format nil "~<~<~A~>~>" 'foo) "FOO")) +(with-test (:name (:format :justification-atsign-check)) + (assert (raises-error? (format nil "~<~@>"))) + (assert (raises-error? (eval '(format nil "~<~@>"))))) + ;;; Check that arrays that we print while *PRINT-READABLY* is true are ;;; in fact generating similar objects. (assert (equal (array-dimensions @@ -268,11 +272,12 @@ ;;; bug 350: bignum printing so memory-hungry that heap runs out ;;; -- just don't stall here forever on a slow box -(handler-case - (with-timeout 10 - (print (ash 1 1000000))) - (timeout () - (print 'timeout!))) +(with-test (:name :bug-350) + (handler-case + (with-timeout 10 + (print (ash 1 1000000))) + (timeout () + (print 'timeout!)))) ;;; bug 371: bignum print/read inconsistency (defvar *bug-371* -7043009959286724629649270926654940933664689003233793014518979272497911394287216967075767325693021717277238746020477538876750544587281879084559996466844417586093291189295867052594478662802691926547232838591510540917276694295393715934079679531035912244103731582711556740654671309980075069010778644542022/670550434139267031632063192770201289106737062379324644110801846820471752716238484923370056920388400273070254958650831435834503195629325418985020030706879602898158806736813101434594805676212779217311897830937606064579213895527844045511878668289820732425014254579493444623868748969110751636786165152601) @@ -513,7 +518,7 @@ (assert (string= (format nil "~E" 0.01) "1.e-2")) (assert (string= (format nil "~G" 0.01) "1.00e-2"))) -(with-test (:name (:fp-read/print-consistency single-float)) +(with-test (:name (:fp-print-read-consistency single-float)) (let ((*random-state* (make-random-state t)) (oops)) (loop for f = most-positive-single-float then (/ f 2.0) @@ -531,12 +536,12 @@ (push fr oops) (return)))) (when oops - (error "FP read/print inconsistencies:~%~:{ ~S => ~S~%~}" + (error "FP print-read inconsistencies:~%~:{ ~S => ~S~%~}" (mapcar (lambda (f) (list f (read-from-string (prin1-to-string f)))) oops))))) -(with-test (:name (:fp-read/print-consistency double-float)) +(with-test (:name (:fp-print-read-consistency double-float)) (let ((*random-state* (make-random-state t)) (oops)) ;; FIXME skipping denormalized floats due to bug 793774. @@ -557,7 +562,7 @@ (push fr oops) (return))))) (when oops - (error "FP read/print inconsistencies:~%~:{ ~S => ~S~%~}" + (error "FP print-read inconsistencies:~%~:{ ~S => ~S~%~}" (mapcar (lambda (f) (list f (read-from-string (prin1-to-string f)))) oops))))) @@ -644,4 +649,12 @@ (timeout () (error "Endless loop in FORMAT")))) +(with-test (:name :format-type-check) + (assert (equal "1/10" (format nil "~2r" 1/2))) + (assert (raises-error? (format nil "~r" 1.32) sb-format:format-error)) + (assert (raises-error? (format nil "~c" 1.32) sb-format:format-error)) + (assert (equal "1/10" (eval '(format nil "~2r" 1/2)))) + (assert (raises-error? (eval '(format nil "~r" 1.32)) sb-format:format-error)) + (assert (raises-error? (eval '(format nil "~c" 1.32)) sb-format:format-error))) + ;;; success