Things to do to the test suite (not a complete list) 1. subtypep and typep on complex types 2. Refactor random type/element-of-type code. There's too much duplication. 3. More type tests on array types 4. Extend random subtypep tester to array types. (complex types already added, but should extend generator of random real types) 5. Add JA's long form define-method-combination tests (from clisp), or write own (partially done) 6. adjust-array (need to add specialized integer arrays other than bit vectors, and float vectors) 7. Address synonym-stream issues (from Duane Rettig) 8. accuracy tests for numeric functions 9. Test that the streams operators that manipulate files do the right things with *default-pathname-defaults*. 10. Two-arg tests of FILE-POSITION on binary streams. 11. Address issues with broadcast streams (C. Rhodes) -- apparent contradictions in the spec. 17. Tests that have an argument that provides a return value for special conditions (like eof) that happens to be the same as a normal value the functions would return (suggested by CR). 18. Add random tests for COERCE (the result either is either typep of the second arg (except for rational stuff) or a type-error is signalled.) 19. Add two missing tests from CLOS (spotted by Bruno Haible): ;; Shared slot remains shared. ;; CLHS 4.3.6.: "The value of a slot that is specified as shared both in the old ;; class and in the new class is retained." (multiple-value-bind (value condition) (ignore-errors (defclass foo74 () ((size :initarg :size :initform 1 :allocation :class))) (setq i (make-instance 'foo74)) (defclass foo74 () ((size :initarg :size :initform 2 :allocation :class) (other))) (slot-value i 'size)) (list value (type-of condition))) Expected: (1 NULL) Got: (2 NULL) (progn (defclass foo92b (foo92a) ((s :initarg :s))) (defclass foo92a () ()) (let ((x (make-instance 'foo92b :s 5)) (update-counter 0)) (defclass foo92b (foo92a) ((s) (s1) (s2))) ; still subclass of foo92a (slot-value x 's) (defmethod update-instance-for-redefined-class ((object foo92b) added-slots discarded-slots property-list &rest initargs) (incf update-counter)) (make-instances-obsolete 'foo92a) (slot-value x 's) update-counter)) Expected: 1 Got: 0 21. The random tester showed (SETF AREF) wasn't being tested enough. Add tests. 22. Add more symbol printing tests. In particular, there doesn't appear to be a test that (princ :foo) >> :FOO (noticed by PG in ABCL) 23. Modify rt so that when failing tests are reported, they are grouped by :notes and the :notes comment is printed out. This will help explain what the failures mean. 28. Add tests for reading/printing with packages with weird names (lower case letters, digits, etc.) 30. Add more pathname equality tests to equal.lsp 34. (from C Rhodes) Test that CERROR allows additional arguments after a condition designating itself to be used in the continue format control. 36. Add tests for bad default-initargs in object constructors. 37. Add tests that methods on initialize-instance and shared-initialize receive defaulted initargs from compiled make-instance 38, Floating point tests must be expanded. -- Add tests for the floating point inspection functions (decode-float, etc.) -- Add tests of -0.0 vs. 0.0 consistency (a bug here affected abcl) -- transcendantal functions 39. There are various constraints that things defined at the top level become available at compile time. Test these constraints. 40, Check that OPEN, etc. do pathname merging. 41. Add tests for MOD, REM 42. Add randomized tests for BIT-* functions (requested by piso on #lisp) (partially done; tests on simple bit vectors going to a new bit vector have been added; should add in-place versions and operations on non-simple bit-vectors and non-vector arrays) 43. Add tests for structs that defining subtypes using :include doesn't change the parent type(s). (This came up in ABCL.) 44. Add tests for SPECIAL declarations in MACROLET (requested by piso on #lisp) (partially done) 45. Sweep files for missing order-of-execution tests 46. Add tests that class objects are valid class specifiers in method definitions. 47. Test that :import-from in DEFPACKAGE can take a package object.