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.)
pfdietz's avatar
pfdietz committed
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.