X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Fpackage-locks.impure.lisp;h=536dab42cf498ede28aac7465e9cc8667e8e4ab1;hb=83659744f9caa97aa83eb562d872b1c0127403c0;hp=c9d9b7f3857560b4abbd5f2c2679880a87d60d0d;hpb=7448b6225fa43ea6a61391990b173c09505ba45d;p=sbcl.git diff --git a/tests/package-locks.impure.lisp b/tests/package-locks.impure.lisp index c9d9b7f..536dab4 100644 --- a/tests/package-locks.impure.lisp +++ b/tests/package-locks.impure.lisp @@ -14,6 +14,7 @@ (in-package :cl-user) (load "assertoid.lisp") +(load "compiler-test-util.lisp") (use-package "ASSERTOID") ;;;; Our little labrats and a few utilities @@ -504,4 +505,34 @@ sb-ext:package-lock-violation)) (assert (eq 'test:function (eval `(test:function))))) +(defpackage :macro-killing-macro-1 + (:use :cl) + (:lock t) + (:export #:to-die-for)) + +(defpackage :macro-killing-macro-2 + (:use :cl :macro-killing-macro-1)) + +(ctu:file-compile + `((in-package :macro-killing-macro-1) + (defmacro to-die-for () + :original)) + :load t) + +(ctu:file-compile + `((in-package :macro-killing-macro-2) + (defmacro to-die-for () + :replacement))) + +(with-test (:name :defmacro-killing-macro) + (assert (eq :original (macroexpand '(macro-killing-macro-1:to-die-for))))) + +(ctu:file-compile + `((in-package :macro-killing-macro-2) + (eval-when (:compile-toplevel) + (setf (macro-function 'to-die-for) (constantly :replacement2))))) + +(with-test (:name :setf-macro-function-killing-macro) + (assert (eq :original (macroexpand '(macro-killing-macro-1:to-die-for))))) + ;;; WOOT! Done.