2
;;;; Author: Paul Dietz
3
;;;; Created: Sat Apr 25 08:02:43 1998
4
;;;; Contains: Tests of MAKE-PACKAGE
7
(declaim (optimize (safety 3)))
9
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
12
;; Test basic make-package, using string, symbol and character
13
;; package-designators
15
(deftest make-package.1
17
(safely-delete-package "TEST1")
18
(let ((p (ignore-errors (make-package "TEST1"))))
21
(equalt (package-name p) "TEST1")
22
(equalt (package-nicknames p) nil)
23
(equalt (package-used-by-list p) nil))
24
(safely-delete-package p))))
27
(deftest make-package.2
29
(safely-delete-package '#:|TEST1|)
30
(let ((p (ignore-errors (make-package '#:|TEST1|))))
33
(equalt (package-name p) "TEST1")
34
(equalt (package-nicknames p) nil)
35
(equalt (package-used-by-list p) nil))
36
(safely-delete-package p))))
39
(deftest make-package.3
41
(safely-delete-package #\X)
42
(let ((p (ignore-errors (make-package #\X))))
45
(equalt (package-name p) "X")
46
(equalt (package-nicknames p) nil)
47
(equalt (package-used-by-list p) nil))
48
(safely-delete-package p))))
51
;; Same, but with a null :use list
53
(deftest make-package.4
55
(safely-delete-package "TEST1")
56
(let ((p (ignore-errors (make-package "TEST1" :use nil))))
59
(equalt (package-name p) "TEST1")
60
(equalt (package-nicknames p) nil)
61
(equalt (package-use-list p) nil)
62
(equalt (package-used-by-list p) nil))
63
(safely-delete-package p))))
66
(deftest make-package.5
68
(safely-delete-package '#:|TEST1|)
69
(let ((p (ignore-errors (make-package '#:|TEST1| :use nil))))
72
(equalt (package-name p) "TEST1")
73
(equalt (package-nicknames p) nil)
74
(equalt (package-use-list p) nil)
75
(equalt (package-used-by-list p) nil))
76
(safely-delete-package p))))
79
(deftest make-package.6
81
(safely-delete-package #\X)
82
(let ((p (make-package #\X)))
85
(equalt (package-name p) "X")
86
(equalt (package-nicknames p) nil)
87
;; (equalt (package-use-list p) nil)
88
(equalt (package-used-by-list p) nil))
89
(safely-delete-package p))))
92
;; Same, but use the A package
94
(deftest make-package.7
96
(safely-delete-package "TEST1")
97
(let ((p (ignore-errors (make-package "TEST1" :use '("A")))))
100
(equalt (package-name p) "TEST1")
101
(equalt (package-nicknames p) nil)
102
(equalt (package-use-list p) (list (find-package "A")))
103
(equalt (package-used-by-list p) nil))
104
(safely-delete-package p))))
107
(deftest make-package.7a
109
(safely-delete-package "TEST1")
110
(let ((p (ignore-errors (make-package "TEST1" :use '(#:|A|)))))
113
(equalt (package-name p) "TEST1")
114
(equalt (package-nicknames p) nil)
115
(equalt (package-use-list p) (list (find-package "A")))
116
(equalt (package-used-by-list p) nil))
117
(safely-delete-package p))))
120
(deftest make-package.7b
122
(safely-delete-package "TEST1")
123
(let ((p (ignore-errors (make-package "TEST1" :use '(#\A)))))
126
(equalt (package-name p) "TEST1")
127
(equalt (package-nicknames p) nil)
128
(equalt (package-use-list p) (list (find-package "A")))
129
(equalt (package-used-by-list p) nil))
130
(safely-delete-package p))))
133
(deftest make-package.8
135
(safely-delete-package '#:|TEST1|)
136
(let ((p (ignore-errors (make-package '#:|TEST1| :use '("A")))))
139
(equalt (package-name p) "TEST1")
140
(equalt (package-nicknames p) nil)
141
(equalt (package-use-list p) (list (find-package "A")))
142
(equalt (package-used-by-list p) nil))
143
(safely-delete-package p))))
146
(deftest make-package.8a
148
(safely-delete-package '#:|TEST1|)
149
(let ((p (ignore-errors (make-package '#:|TEST1| :use '(#:|A|)))))
152
(equalt (package-name p) "TEST1")
153
(equalt (package-nicknames p) nil)
154
(equalt (package-use-list p) (list (find-package "A")))
155
(equalt (package-used-by-list p) nil))
156
(safely-delete-package p))))
159
(deftest make-package.8b
161
(safely-delete-package '#:|TEST1|)
162
(let ((p (ignore-errors (make-package '#:|TEST1| :use '(#\A)))))
165
(equalt (package-name p) "TEST1")
166
(equalt (package-nicknames p) nil)
167
(equalt (package-use-list p) (list (find-package "A")))
168
(equalt (package-used-by-list p) nil))
169
(safely-delete-package p))))
172
(deftest make-package.9
174
(safely-delete-package #\X)
175
(let ((p (ignore-errors (make-package #\X :use '("A")))))
178
(equalt (package-name p) "X")
179
(equalt (package-nicknames p) nil)
180
(equalt (package-use-list p) (list (find-package "A")))
181
(equalt (package-used-by-list p) nil))
182
(safely-delete-package p))))
185
(deftest make-package.9a
187
(safely-delete-package #\X)
188
(let ((p (ignore-errors (make-package #\X :use '(#:|A|)))))
191
(equalt (package-name p) "X")
192
(equalt (package-nicknames p) nil)
193
(equalt (package-use-list p) (list (find-package "A")))
194
(equalt (package-used-by-list p) nil))
195
(safely-delete-package p))))
198
(deftest make-package.9b
200
(safely-delete-package #\X)
201
(let ((p (ignore-errors (make-package #\X :use '(#\A)))))
204
(equalt (package-name p) "X")
205
(equalt (package-nicknames p) nil)
206
(equalt (package-use-list p) (list (find-package "A")))
207
(equalt (package-used-by-list p) nil))
208
(safely-delete-package p))))
211
;; make-package with nicknames
213
(deftest make-package.10
215
(safely-delete-package "TEST1")
216
(let ((p (make-package "TEST1" :nicknames '("F"))))
219
(equalt (package-name p) "TEST1")
220
(equalt (package-nicknames p) '("F"))
221
(equalt (package-used-by-list p) nil))
222
(safely-delete-package p))))
225
(deftest make-package.11
227
(safely-delete-package '#:|TEST1|)
228
(let ((p (make-package '#:|TEST1| :nicknames '(#:|G|))))
231
(equalt (package-name p) "TEST1")
232
(equalt (package-nicknames p) '("G"))
233
(equalt (package-used-by-list p) nil))
234
(safely-delete-package p))))
237
(deftest make-package.12
239
(safely-delete-package '#:|TEST1|)
240
(let ((p (make-package '#:|TEST1| :nicknames '(#\G))))
243
(equalt (package-name p) "TEST1")
244
(equalt (package-nicknames p) '("G"))
245
(equalt (package-used-by-list p) nil))
246
(safely-delete-package p))))
249
(deftest make-package.13
251
(safely-delete-package #\X)
252
(let ((p (make-package #\X :nicknames '("F" #\G #:|H|))))
255
(equalt (package-name p) "X")
256
(null (set-exclusive-or (package-nicknames p)
259
(equalt (package-used-by-list p) nil))
260
(safely-delete-package p))))
263
;; Signal a continuable error if the package or any nicknames
264
;; exist as packages or nicknames of packages
266
(deftest make-package.error.1
267
(handle-non-abort-restart (make-package "A"))
270
(deftest make-package.error.2
271
(handle-non-abort-restart (make-package "Q"))
274
(deftest make-package.error.3
275
(handle-non-abort-restart
276
(safely-delete-package "TEST1")
277
(make-package "TEST1" :nicknames '("A")))
280
(deftest make-package.error.4
281
(handle-non-abort-restart
282
(safely-delete-package "TEST1")
283
(make-package "TEST1" :nicknames '("Q")))
286
(deftest make-package.error.5
287
(signals-error (make-package) program-error)
290
(deftest make-package.error.6
292
(safely-delete-package "MPE6")
293
(signals-error (make-package "MPE6" :bad t) program-error))
296
(deftest make-package.error.7
298
(safely-delete-package "MPE7")
299
(signals-error (make-package "MPE7" :nicknames) program-error))
302
(deftest make-package.error.8
304
(safely-delete-package "MPE8")
305
(signals-error (make-package "MPE8" :use) program-error))
308
(deftest make-package.error.9
310
(safely-delete-package "MPE9")
311
(signals-error (make-package "MPE9" 'bad t) program-error))
314
(deftest make-package.error.10
316
(safely-delete-package "MPE10")
317
(signals-error (make-package "MPE10" 1 2) program-error))
320
(deftest make-package.error.11
322
(safely-delete-package "MPE11")
323
(signals-error (make-package "MPE11" 'bad t :allow-other-keys nil)