Mercurial > hg > xemacs-beta
comparison tests/automated/weak-tests.el @ 1636:f062c28f4a11
[xemacs-hg @ 2003-08-20 11:53:41 by crestani]
2003-08-19 Marcus Crestani <crestani@informatik.uni-tuebingen.de>
Markus Kaltenbach <makalten@informatik.uni-tuebingen.de>
* automated/weak-tests.el: Added tests for weak-lists.
author | crestani |
---|---|
date | Wed, 20 Aug 2003 11:53:44 +0000 |
parents | 7532e276a83a |
children | 90502933fb98 |
comparison
equal
deleted
inserted
replaced
1635:7107ed3b2272 | 1636:f062c28f4a11 |
---|---|
24 | 24 |
25 ;;; Synched up with: Not in FSF. | 25 ;;; Synched up with: Not in FSF. |
26 | 26 |
27 ;;; Commentary: | 27 ;;; Commentary: |
28 | 28 |
29 ;;; Test implementation of weak boxes and ephemerons | 29 ;;; Test implementation of weak boxes, ephemerons, and weak lists |
30 ;;; See test-harness.el | 30 ;;; See test-harness.el |
31 | 31 |
32 (condition-case err | 32 (condition-case err |
33 (require 'test-harness) | 33 (require 'test-harness) |
34 (file-error | 34 (file-error |
35 (when (and (boundp 'load-file-name) (stringp load-file-name)) | 35 (when (and (boundp 'load-file-name) (stringp load-file-name)) |
36 (push (file-name-directory load-file-name) load-path) | 36 (push (file-name-directory load-file-name) load-path) |
37 (require 'test-harness)))) | 37 (require 'test-harness)))) |
38 | 38 |
39 (garbage-collect) | 39 (garbage-collect) |
40 | |
41 ;; tests for weak-boxes | |
40 (let ((w (make-weak-box (cons 2 3)))) | 42 (let ((w (make-weak-box (cons 2 3)))) |
41 (Assert (equal (cons 2 3) (weak-box-ref w))) | 43 (Assert (equal (cons 2 3) (weak-box-ref w))) |
42 (garbage-collect) | 44 (garbage-collect) |
43 (Assert (not (weak-box-ref w)))) | 45 (Assert (not (weak-box-ref w)))) |
44 | 46 |
45 (garbage-collect) | 47 (garbage-collect) |
46 | 48 |
49 ;; tests for ephemerons | |
47 (let* ((p (cons 3 4)) | 50 (let* ((p (cons 3 4)) |
48 (finalized-p nil) | 51 (finalized-p nil) |
49 (eph1 (make-ephemeron (cons 1 2) p | 52 (eph1 (make-ephemeron (cons 1 2) p |
50 '(lambda (value) | 53 '(lambda (value) |
51 (setq finalized-p t)))) | 54 (setq finalized-p t)))) |
61 | 64 |
62 (garbage-collect) | 65 (garbage-collect) |
63 | 66 |
64 (Assert (eq p (ephemeron-ref eph2)))) | 67 (Assert (eq p (ephemeron-ref eph2)))) |
65 | 68 |
69 (garbage-collect) | |
70 | |
71 ;; tests for simple weak-lists | |
72 (let* ((a (cons 23 42)) | |
73 (b (cons 42 65)) | |
74 (testlist (list a b)) | |
75 (weaklist1 (make-weak-list 'simple)) | |
76 (weaklist2 (make-weak-list 'simple)) | |
77 (weaklist3 (make-weak-list 'simple)) | |
78 (weaklist4 (make-weak-list 'simple))) | |
79 (set-weak-list-list weaklist1 testlist) | |
80 (set-weak-list-list weaklist2 (list (cons 1 2) a b)) | |
81 (set-weak-list-list weaklist3 (list a (cons 1 2) b)) | |
82 (set-weak-list-list weaklist4 (list a b (cons 1 2))) | |
83 (Assert (weak-list-p weaklist1)) | |
84 (Assert (eq (weak-list-type weaklist1) 'simple)) | |
85 (Assert (weak-list-p weaklist2)) | |
86 (Assert (eq (weak-list-type weaklist2) 'simple)) | |
87 (Assert (weak-list-p weaklist3)) | |
88 (Assert (eq (weak-list-type weaklist3) 'simple)) | |
89 (Assert (weak-list-p weaklist4)) | |
90 (Assert (eq (weak-list-type weaklist4) 'simple)) | |
91 | |
92 (garbage-collect) | |
93 | |
94 (Assert (eq (weak-list-list weaklist1) testlist)) | |
95 (Assert (equal (weak-list-list weaklist2) testlist)) | |
96 (Assert (equal (weak-list-list weaklist3) testlist)) | |
97 (Assert (equal (weak-list-list weaklist4) testlist))) | |
98 | |
99 (garbage-collect) | |
100 | |
101 ;; tests for assoc weak-lists | |
102 (let* ((a (cons 23 42)) | |
103 (b (cons a a)) | |
104 (testlist (list b b)) | |
105 (weaklist1 (make-weak-list 'assoc)) | |
106 (weaklist2 (make-weak-list 'assoc)) | |
107 (weaklist3 (make-weak-list 'assoc)) | |
108 (weaklist4 (make-weak-list 'assoc))) | |
109 (set-weak-list-list weaklist1 testlist) | |
110 (set-weak-list-list weaklist2 (list b (cons (cons 1 2) a) b)) | |
111 (set-weak-list-list weaklist3 (list b (cons a (cons 1 2)) b)) | |
112 (set-weak-list-list weaklist4 (list b (cons (cons 1 2) (cons 3 4)) b)) | |
113 (Assert (weak-list-p weaklist1)) | |
114 (Assert (eq (weak-list-type weaklist1) 'assoc)) | |
115 (Assert (weak-list-p weaklist2)) | |
116 (Assert (eq (weak-list-type weaklist2) 'assoc)) | |
117 (Assert (weak-list-p weaklist3)) | |
118 (Assert (eq (weak-list-type weaklist3) 'assoc)) | |
119 (Assert (weak-list-p weaklist4)) | |
120 (Assert (eq (weak-list-type weaklist4) 'assoc)) | |
121 | |
122 (garbage-collect) | |
123 | |
124 (Assert (eq (weak-list-list weaklist1) testlist)) | |
125 (Assert (equal (weak-list-list weaklist2) testlist)) | |
126 (Assert (equal (weak-list-list weaklist3) testlist)) | |
127 (Assert (equal (weak-list-list weaklist4) testlist))) | |
128 | |
129 (garbage-collect) | |
130 | |
131 ;; tests for key-assoc weak-lists | |
132 (let* ((a (cons 23 42)) | |
133 (b (cons a a)) | |
134 (testlist (list b b)) | |
135 (weaklist1 (make-weak-list 'key-assoc)) | |
136 (weaklist2 (make-weak-list 'key-assoc)) | |
137 (weaklist3 (make-weak-list 'key-assoc)) | |
138 (weaklist4 (make-weak-list 'key-assoc))) | |
139 (set-weak-list-list weaklist1 testlist) | |
140 (set-weak-list-list weaklist2 (list b (cons (cons 1 2) a) b)) | |
141 (set-weak-list-list weaklist3 (list b (cons a (cons 1 2)) b)) | |
142 (set-weak-list-list weaklist4 (list b (cons (cons 1 2) (cons 3 4)) b)) | |
143 (Assert (weak-list-p weaklist1)) | |
144 (Assert (eq (weak-list-type weaklist1) 'key-assoc)) | |
145 (Assert (weak-list-p weaklist2)) | |
146 (Assert (eq (weak-list-type weaklist2) 'key-assoc)) | |
147 (Assert (weak-list-p weaklist3)) | |
148 (Assert (eq (weak-list-type weaklist3) 'key-assoc)) | |
149 (Assert (weak-list-p weaklist4)) | |
150 (Assert (eq (weak-list-type weaklist4) 'key-assoc)) | |
151 | |
152 (garbage-collect) | |
153 | |
154 (Assert (eq (weak-list-list weaklist1) testlist)) | |
155 (Assert (equal (weak-list-list weaklist2) testlist)) | |
156 (Assert (equal (weak-list-list weaklist3) (list b (cons a (cons 1 2)) b))) | |
157 (Assert (equal (weak-list-list weaklist4) testlist))) | |
158 | |
159 (garbage-collect) | |
160 | |
161 ;; tests for value-assoc weak-lists | |
162 (let* ((a (cons 23 42)) | |
163 (b (cons a a)) | |
164 (testlist (list b b)) | |
165 (weaklist1 (make-weak-list 'value-assoc)) | |
166 (weaklist2 (make-weak-list 'value-assoc)) | |
167 (weaklist3 (make-weak-list 'value-assoc)) | |
168 (weaklist4 (make-weak-list 'value-assoc))) | |
169 (set-weak-list-list weaklist1 testlist) | |
170 (set-weak-list-list weaklist2 (list b (cons (cons 1 2) a) b)) | |
171 (set-weak-list-list weaklist3 (list b (cons a (cons 1 2)) b)) | |
172 (set-weak-list-list weaklist4 (list b (cons (cons 1 2) (cons 3 4)) b)) | |
173 (Assert (weak-list-p weaklist1)) | |
174 (Assert (eq (weak-list-type weaklist1) 'value-assoc)) | |
175 (Assert (weak-list-p weaklist2)) | |
176 (Assert (eq (weak-list-type weaklist2) 'value-assoc)) | |
177 (Assert (weak-list-p weaklist3)) | |
178 (Assert (eq (weak-list-type weaklist3) 'value-assoc)) | |
179 (Assert (weak-list-p weaklist4)) | |
180 (Assert (eq (weak-list-type weaklist4) 'value-assoc)) | |
181 | |
182 (garbage-collect) | |
183 | |
184 (Assert (eq (weak-list-list weaklist1) testlist)) | |
185 (Assert (equal (weak-list-list weaklist2) (list b (cons (cons 1 2) a) b))) | |
186 (Assert (equal (weak-list-list weaklist3) testlist)) | |
187 (Assert (equal (weak-list-list weaklist4) testlist))) | |
188 | |
189 (garbage-collect) | |
190 | |
191 ;; tests for full-assoc weak-lists | |
192 (let* ((a (cons 23 42)) | |
193 (b (cons a a)) | |
194 (testlist (list b b)) | |
195 (weaklist1 (make-weak-list 'full-assoc)) | |
196 (weaklist2 (make-weak-list 'full-assoc)) | |
197 (weaklist3 (make-weak-list 'full-assoc)) | |
198 (weaklist4 (make-weak-list 'full-assoc))) | |
199 (set-weak-list-list weaklist1 testlist) | |
200 (set-weak-list-list weaklist2 (list b (cons (cons 1 2) a) b)) | |
201 (set-weak-list-list weaklist3 (list b (cons a (cons 1 2)) b)) | |
202 (set-weak-list-list weaklist4 (list b (cons (cons 1 2) (cons 3 4)) b)) | |
203 (Assert (weak-list-p weaklist1)) | |
204 (Assert (eq (weak-list-type weaklist1) 'full-assoc)) | |
205 (Assert (weak-list-p weaklist2)) | |
206 (Assert (eq (weak-list-type weaklist2) 'full-assoc)) | |
207 (Assert (weak-list-p weaklist3)) | |
208 (Assert (eq (weak-list-type weaklist3) 'full-assoc)) | |
209 (Assert (weak-list-p weaklist4)) | |
210 (Assert (eq (weak-list-type weaklist4) 'full-assoc)) | |
211 | |
212 (garbage-collect) | |
213 | |
214 (Assert (eq (weak-list-list weaklist1) testlist)) | |
215 (Assert (equal (weak-list-list weaklist2) (list b (cons (cons 1 2) a) b))) | |
216 (Assert (equal (weak-list-list weaklist3) (list b (cons a (cons 1 2)) b))) | |
217 (Assert (equal (weak-list-list weaklist4) testlist))) | |
218 | |
219 (garbage-collect) |