Things to do to the test suite (not a complete list)

1. subtypep and typep on complex types

2. upgraded-complex-part-type

3. More type tests on array types

4. Extend random subtypep tester to complex and array types.

5. Add JA's long form define-method-combination tests (from clisp),
  or write own.

6. adjust-array (partially done)

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.

12. Make sure all string operators work on displaced character vectors.

14. Finish testing DEFSETF

15. All tests for DO-ALL-SYMBOLS

16. Test VECTOR-PUSH-EXTEND on displaced vectors, etc. (just like adjust-array;
   see 6.)

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

20. Add destructuring-bind and destructuring macro lambda list tests
  for key and optional arguments, if they do not already exist

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.

25. Add test that the form in an EQL parameter specializer is evaluated only
  once, at method definition time.
