2
;;;; Author: Paul Dietz
3
;;;; Created: Sat Mar 1 14:08:07 2003
4
;;;; Contains: Tests of HANDLER-CASE
8
(deftest handler-case.1
14
(deftest handler-case.2
21
(deftest handler-case.3
24
(error (c) (and (typep c 'error) t))
29
(deftest handler-case.4
33
(error (c) (and (typep c 'error) t))
38
(deftest handler-case.5
41
(#.(find-class 'error) (c) (and (typep c 'error) t))
45
(deftest handler-case.6
46
(handler-case (values)
49
(deftest handler-case.7
50
(handler-case 'foo (condition () 'bar))
53
;;; (deftest handler-case.8
54
;;; (handler-case 'foo (t () 'bar))
57
(deftest handler-case.9
58
(handler-case (values 1 2 3 4 5 6 7 8) (condition () nil))
61
;;; (deftest handler-case.10
67
(deftest handler-case.11
68
(labels ((%f () (declare (special *c*))
69
(and (typep *c* 'condition) t))
72
(declare (special *c*))
77
(error (*c*) (declare (special *c*))
82
(deftest handler-case.12
83
(handler-case (error "foo")
85
(error (c) (notnot-mv (typep c 'simple-error))))
88
(deftest handler-case.13
89
(handler-case (error "foo")
90
(error (c) (values))))
92
(deftest handler-case.14
93
(handler-case (error "foo")
95
(values 1 2 3 4 5 6 7 8)))
98
(deftest handler-case.15
100
(handler-case (error "foo")
105
(deftest handler-case.16
107
(handler-case (error "foo")
112
(deftest handler-case.17
116
(handler-case (error "foo")
117
(error () (incf i) (error "bar")))
122
(deftest handler-case.18
126
(handler-case (error "foo")
127
(error (c) (incf i) (error c)))
132
(deftest handler-case.19
136
;; Test that declarations can go here
137
(declare (optimize (safety 3)))
138
(declare (type condition c))
143
(deftest handler-case.20
146
(:no-error (x) (+ x 3)))
149
(deftest handler-case.21
155
(deftest handler-case.22
158
(:no-error (a b c d e) (list e d c b a)))
161
(deftest handler-case.23
163
(handler-case (values 1 2) (:no-error (x) x))
167
(deftest handler-case.24
169
(handler-case (values) (:no-error (x) x))
173
(deftest handler-case.25
178
(:no-error () (error "foo")))
182
(deftest handler-case.26
187
;; Test that declarations can go here
188
(declare (type integer a))
189
(declare (type symbol b))
190
(declare (type number c))
191
(declare (ignore a c))
195
(deftest handler-case.27
196
(handler-case (error "foo") (error ()))
199
(deftest handler-case.28
200
(handler-case (error "foo") (error () (declare (optimize speed))))