X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Feval.impure.lisp;h=a3db89d20cef29a46f106179dc1852adeeda36e7;hb=df06965814a879aa8ccd9367f2b1c450daccc601;hp=5989e51e5979f30c0dc2641d69184b65fae707a9;hpb=22e18896b53b0af44b1e18f885c943f6c3e50d01;p=sbcl.git diff --git a/tests/eval.impure.lisp b/tests/eval.impure.lisp index 5989e51..a3db89d 100644 --- a/tests/eval.impure.lisp +++ b/tests/eval.impure.lisp @@ -197,4 +197,27 @@ (test-eval t '(if (true) t (oops))) (test-eval nil '(if (not (if (false) t)) (oops))) +;;; TAGBODY + +;;; As of SBCL 1.0.1.8, TAGBODY should not accept duplicate go tags, +;;; yet choked on two duplicate tags. Note that this test asserts a +;;; failure. +(with-test (:name :tagbody-dual-go-tags) + (progn + (defun tagbody-dual-go-tags () + (restart-case + (handler-bind ((error (lambda (c) + (declare (ignore c)) + (invoke-restart 'NOT-AN-ERROR)))) + (tagbody :A :A) nil) + (NOT-AN-ERROR () t))) + (assert (tagbody-dual-go-tags)))) + +;;; Ensure that NIL is a valid go tag. +(with-test (:name :tagbody-nil-is-valid-tag) + (progn + (defun tagbody-nil-is-valid-tag () + (tagbody (go NIL) NIL) t) + (assert (tagbody-nil-is-valid-tag)))) + ;;; success