(logically part of 0.8.4.35 commit, but forgot to cvs add)
authorChristophe Rhodes <csr21@cam.ac.uk>
Sun, 19 Oct 2003 19:10:14 +0000 (19:10 +0000)
committerChristophe Rhodes <csr21@cam.ac.uk>
Sun, 19 Oct 2003 19:10:14 +0000 (19:10 +0000)
tests/clos.pure.lisp [new file with mode: 0644]

diff --git a/tests/clos.pure.lisp b/tests/clos.pure.lisp
new file mode 100644 (file)
index 0000000..a6a032d
--- /dev/null
@@ -0,0 +1,29 @@
+;;;; CLOS tests with no side effects
+
+;;;; This software is part of the SBCL system. See the README file for
+;;;; more information.
+;;;;
+;;;; 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)
+
+;;; not really a test for observable behaviour, but: make sure that
+;;; all generic functions on startup have lambda lists known to the
+;;; system, because some functionality (e.g. &key argument checking)
+;;; depends on it.  The basic functionality is tested elsewhere, but
+;;; this is to investigate the internals for possible inconsistency.
+(assert (null
+        (let (collect)
+          (sb-pcl::map-all-generic-functions
+           (lambda (gf)
+             (let ((arg-info (sb-pcl::gf-arg-info gf)))
+               (when (eq (sb-pcl::arg-info-lambda-list arg-info)
+                         :no-lambda-list)
+                 (push gf collect)))))
+          (print (nreverse collect)))))