0.7.13.pcl-class.5
[sbcl.git] / tests / mop.impure.lisp
index f78e6bb..135c330 100644 (file)
 ;;; of all built-in-classes is of the relevant type)
 (assert (null (sb-pcl:class-prototype (find-class 'null))))
 \f
+;;; simple consistency checks for the SB-PCL (perhaps AKA SB-MOP)
+;;; package: all of the functionality specified in AMOP is in
+;;; functions:
+(assert (null (loop for x being each external-symbol in "SB-PCL"
+                   unless (fboundp x) collect x)))
+;;; and all generic functions in SB-PCL have at least one specified
+;;; method, except for UPDATE-DEPENDENT
+(assert (null (loop for x being each external-symbol in "SB-PCL"
+                   unless (or (eq x 'sb-pcl:update-dependent)
+                              (not (typep (fdefinition x) 'generic-function))
+                              (> (length (sb-pcl:generic-function-methods
+                                          (fdefinition x)))
+                                 0))
+                   collect x)))
+\f
 ;;;; success
 (sb-ext:quit :unix-status 104)