;;;; While most of SBCL is derived from the CMU CL system, the test
;;;; files (like this one) were written from scratch after the fork
;;;; from CMU CL.
-;;;;
+;;;;
;;;; This software is in the public domain and is provided with
;;;; absolutely no warranty. See the COPYING and CREDITS files for
;;;; more information.
(cl:in-package :cl-user)
+(load "assertoid.lisp")
+(use-package "ASSERTOID")
+
;;; Until sbcl-0.7.9.x, EVAL was not correctly treating LOCALLY,
;;; MACROLET and SYMBOL-MACROLET, which should preserve top-levelness
;;; of their body forms:
,var))
'(1 2))))
+;;; Bug 264: SYMBOL-MACROLET did not check for a bound SPECIAL
+;;; declaration
+(assert (raises-error? (progv '(foo) '(1)
+ (eval '(symbol-macrolet ((foo 3))
+ (declare (special foo))
+ foo)))
+ error))
+
+;;; MAKE-PACKAGE (and other &key functions) should signal an error
+;;; when given a NIL key. This is kind of a compiler test really, but
+;;; this'll do as a resting place.
+(handler-case
+ (eval '(make-package "FOO" nil nil))
+ (error () :ok)
+ (:no-error (c) (error "MAKE-PACKAGE succeeded: ~S" c)))
+
+;;; FUNCTION
+(defun function-eq-test ()
+ 'ok)
+(trace function-eq-test)
+(assert (eq (eval '(function function-eq-test))
+ (funcall (compile nil '(lambda () (function function-eq-test))))))
+
+;;; No extra output, please
+(assert (equal ".."
+ (with-output-to-string (*standard-output*)
+ (eval '(progn (princ ".") (let ((x 42)) t) (princ "."))))))
+
;;; success
(sb-ext:quit :unix-status 104)