TODO 4.27 KB
Newer Older
1 2 3 4
Things to do to the test suite (not a complete list)

1. subtypep and typep on complex types

5 6 7
2. Refactor random type/element-of-type code.  There's too much
  duplication.

8 9
3. More type tests on array types

10 11
4. Extend random subtypep tester to array types. (complex types already added,
  but should extend generator of random real types)
12

pfdietz's avatar
pfdietz committed
13
5. Add JA's long form define-method-combination tests (from clisp),
pfdietz's avatar
pfdietz committed
14
  or write own (partially done)
15

pfdietz's avatar
pfdietz committed
16 17
6. adjust-array (need to add specialized integer arrays other than
  bit vectors, and float vectors)
18

19
7. Address synonym-stream issues (from Duane Rettig)
20 21

8. accuracy tests for numeric functions
22 23 24

9. Test that the streams operators that manipulate files
  do the right things with *default-pathname-defaults*.
25 26 27 28

10. Two-arg tests of FILE-POSITION on binary streams.

11. Address issues with broadcast streams (C. Rhodes) -- apparent
29
   contradictions in the spec.
30

pfdietz's avatar
pfdietz committed
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
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
pfdietz's avatar
pfdietz committed
66

67
21. The random tester showed (SETF AREF) wasn't being tested enough.  Add tests.
pfdietz's avatar
pfdietz committed
68

69 70
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)
71 72 73 74

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.
75

76 77
28. Add tests for reading/printing with packages with weird names (lower case letters,
  digits, etc.)
78

79 80
30. Add more pathname equality tests to equal.lsp

pfdietz's avatar
pfdietz committed
81 82 83
34. (from C Rhodes) Test that CERROR allows additional arguments after a
  condition designating itself to be used in the continue format control.

pfdietz's avatar
pfdietz committed
84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
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.

pfdietz's avatar
pfdietz committed
100 101 102
41. Add tests for MOD, REM

42. Add randomized tests for BIT-* functions (requested by piso on #lisp)
103 104 105
  (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)
pfdietz's avatar
pfdietz committed
106 107 108 109 110

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)
111
  (partially done)
112

pfdietz's avatar
pfdietz committed
113 114 115 116 117
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.