X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Freader.pure.lisp;h=77ba4981a4e2efa1c8571ae7adca2e7e6369298f;hb=1250e993756076f6e12a6459983d9a953529ff96;hp=728722a1064a9afff2bd323fab681bdb7d52cad7;hpb=64cebbaaccfc9ba3bbcc2d4136fbab5791442823;p=sbcl.git diff --git a/tests/reader.pure.lisp b/tests/reader.pure.lisp index 728722a..77ba498 100644 --- a/tests/reader.pure.lisp +++ b/tests/reader.pure.lisp @@ -59,3 +59,18 @@ (let ((*readtable* (copy-readtable))) (set-syntax-from-char #\7 #\;) (assert (= 1235 (read-from-string "123579")))) + +;;; PARSE-INTEGER must signal an error of type PARSE-ERROR if it is +;;; unable to parse an integer and :JUNK-ALLOWED is NIL. +(macrolet ((assert-parse-error (form) + `(multiple-value-bind (val cond) + (ignore-errors ,form) + (assert (null val)) + (assert (typep cond 'parse-error))))) + (assert-parse-error (parse-integer " ")) + (assert-parse-error (parse-integer "12 a")) + (assert-parse-error (parse-integer "12a")) + (assert-parse-error (parse-integer "a")) + (assert (= (parse-integer "12") 12)) + (assert (= (parse-integer " 12 ") 12)) + (assert (= (parse-integer " 12asdb" :junk-allowed t) 12)))