13 |
;; The use-list is implementation dependent, so |
;; The use-list is implementation dependent, so |
14 |
;; we don't examine it here. |
;; we don't examine it here. |
15 |
;; Try several ways of specifying the package name. |
;; Try several ways of specifying the package name. |
16 |
(deftest defpackage-1 |
(deftest defpackage.1 |
17 |
(loop |
(loop |
18 |
for n in '("H" #:|H| #\H) count |
for n in '("H" #:|H| #\H) count |
19 |
(not |
(not |
34 |
;; Test :nicknames option |
;; Test :nicknames option |
35 |
;; Do not check use-list, because it is implementation dependent |
;; Do not check use-list, because it is implementation dependent |
36 |
;; Try several ways of specifying a nickname. |
;; Try several ways of specifying a nickname. |
37 |
(deftest defpackage-2 |
(deftest defpackage.2 |
38 |
(loop |
(loop |
39 |
for n in '("I" #:|I| #\I) count |
for n in '("I" #:|I| #\I) count |
40 |
(not |
(not |
58 |
|
|
59 |
;; Test defpackage with documentation option |
;; Test defpackage with documentation option |
60 |
;; Do not check use-list, because it is implementation dependent |
;; Do not check use-list, because it is implementation dependent |
61 |
(deftest defpackage-3 |
(deftest defpackage.3 |
62 |
(progn |
(progn |
63 |
(safely-delete-package "H") |
(safely-delete-package "H") |
64 |
(ignore-errors |
(ignore-errors |
81 |
|
|
82 |
;; Check use argument |
;; Check use argument |
83 |
;; Try several ways of specifying the package to be used |
;; Try several ways of specifying the package to be used |
84 |
(deftest defpackage-4 |
(deftest defpackage.4 |
85 |
(loop |
(loop |
86 |
for n in '("A" :|A| #\A) count |
for n in '("A" :|A| #\A) count |
87 |
(not |
(not |
103 |
0) |
0) |
104 |
|
|
105 |
;; Test defpackage shadow option, and null use |
;; Test defpackage shadow option, and null use |
106 |
(deftest defpackage-5 |
(deftest defpackage.5 |
107 |
(progn |
(progn |
108 |
(safely-delete-package "H") |
(safely-delete-package "H") |
109 |
(ignore-errors |
(ignore-errors |
131 |
|
|
132 |
;; Test defpackage shadow and null use, with several ways |
;; Test defpackage shadow and null use, with several ways |
133 |
;; of specifying the name of the shadowed symbol |
;; of specifying the name of the shadowed symbol |
134 |
(deftest defpackage-6 |
(deftest defpackage.6 |
135 |
(loop |
(loop |
136 |
for s in '(:|f| #\f) |
for s in '(:|f| #\f) |
137 |
collect |
collect |
164 |
|
|
165 |
;; Testing defpackage with shadowing-import-from. |
;; Testing defpackage with shadowing-import-from. |
166 |
;; Test several ways of specifying the symbol name |
;; Test several ways of specifying the symbol name |
167 |
(deftest defpackage-7 |
(deftest defpackage.7 |
168 |
(progn |
(progn |
169 |
(safely-delete-package "H") |
(safely-delete-package "H") |
170 |
(safely-delete-package "G") |
(safely-delete-package "G") |
211 |
;; Test for each way of specifying the imported symbol name, |
;; Test for each way of specifying the imported symbol name, |
212 |
;; and for each way of specifying the package name from which |
;; and for each way of specifying the package name from which |
213 |
;; the symbol is imported |
;; the symbol is imported |
214 |
(deftest defpackage-8 |
(deftest defpackage.8 |
215 |
(progn |
(progn |
216 |
(safely-delete-package "H") |
(safely-delete-package "H") |
217 |
(safely-delete-package "G") |
(safely-delete-package "G") |
256 |
|
|
257 |
;; Test defpackage with export option |
;; Test defpackage with export option |
258 |
|
|
259 |
(deftest defpackage-9 |
(deftest defpackage.9 |
260 |
(progn |
(progn |
261 |
(loop |
(loop |
262 |
for n in '("Z" #:|Z| #\Z) |
for n in '("Z" #:|Z| #\Z) |
292 |
|
|
293 |
;; Test defpackage with the intern option |
;; Test defpackage with the intern option |
294 |
|
|
295 |
(deftest defpackage-10 |
(deftest defpackage.10 |
296 |
(progn |
(progn |
297 |
(loop |
(loop |
298 |
for n in '("Z" #:|Z| #\Z) |
for n in '("Z" #:|Z| #\Z) |
328 |
|
|
329 |
;; Test defpackage with size |
;; Test defpackage with size |
330 |
|
|
331 |
(deftest defpackage-11 |
(deftest defpackage.11 |
332 |
(ignore-errors |
(ignore-errors |
333 |
(safely-delete-package "H") |
(safely-delete-package "H") |
334 |
(let ((p (ignore-errors |
(let ((p (ignore-errors |
345 |
(zerop (num-symbols-in-package p)))))) |
(zerop (num-symbols-in-package p)))))) |
346 |
(t t t t t t t)) |
(t t t t t t t)) |
347 |
|
|
348 |
(deftest defpackage-12 |
(deftest defpackage.12 |
349 |
(ignore-errors |
(ignore-errors |
350 |
(safely-delete-package "H") |
(safely-delete-package "H") |
351 |
(let ((p (ignore-errors |
(let ((p (ignore-errors |
365 |
;; defpackage error handling |
;; defpackage error handling |
366 |
|
|
367 |
;; Repeated size field should cause a program-error |
;; Repeated size field should cause a program-error |
368 |
(deftest defpackage-13 |
(deftest defpackage.13 |
369 |
(progn |
(progn |
370 |
(safely-delete-package "H") |
(safely-delete-package "H") |
371 |
(classify-error |
(classify-error |
373 |
program-error) |
program-error) |
374 |
|
|
375 |
;; Repeated documentation field should cause a program-error |
;; Repeated documentation field should cause a program-error |
376 |
(deftest defpackage-14 |
(deftest defpackage.14 |
377 |
(progn |
(progn |
378 |
(safely-delete-package "H") |
(safely-delete-package "H") |
379 |
(classify-error |
(classify-error |
385 |
;; When a nickname refers to an existing package or nickname, |
;; When a nickname refers to an existing package or nickname, |
386 |
;; signal a package-error |
;; signal a package-error |
387 |
|
|
388 |
(deftest defpackage-15 |
(deftest defpackage.15 |
389 |
(progn |
(progn |
390 |
(safely-delete-package "H") |
(safely-delete-package "H") |
391 |
(classify-error |
(classify-error |
393 |
(:nicknames "A"))))) |
(:nicknames "A"))))) |
394 |
package-error) |
package-error) |
395 |
|
|
396 |
(deftest defpackage-16 |
(deftest defpackage.16 |
397 |
(progn |
(progn |
398 |
(safely-delete-package "H") |
(safely-delete-package "H") |
399 |
(classify-error |
(classify-error |
405 |
;; must be disjoint, or a package-error is signalled. |
;; must be disjoint, or a package-error is signalled. |
406 |
|
|
407 |
;; :shadow and :shadowing-import-from |
;; :shadow and :shadowing-import-from |
408 |
(deftest defpackage-17 |
(deftest defpackage.17 |
409 |
(progn |
(progn |
410 |
(safely-delete-package "H") |
(safely-delete-package "H") |
411 |
(safely-delete-package "G") |
(safely-delete-package "G") |
417 |
program-error) |
program-error) |
418 |
|
|
419 |
;; :shadow and :import-from |
;; :shadow and :import-from |
420 |
(deftest defpackage-18 |
(deftest defpackage.18 |
421 |
(progn |
(progn |
422 |
(safely-delete-package "H") |
(safely-delete-package "H") |
423 |
(safely-delete-package "G") |
(safely-delete-package "G") |
429 |
program-error) |
program-error) |
430 |
|
|
431 |
;; :shadow and :intern |
;; :shadow and :intern |
432 |
(deftest defpackage-19 |
(deftest defpackage.19 |
433 |
(progn |
(progn |
434 |
(safely-delete-package "H") |
(safely-delete-package "H") |
435 |
(classify-error |
(classify-error |
439 |
program-error) |
program-error) |
440 |
|
|
441 |
;; :shadowing-import-from and :import-from |
;; :shadowing-import-from and :import-from |
442 |
(deftest defpackage-20 |
(deftest defpackage.20 |
443 |
(progn |
(progn |
444 |
(safely-delete-package "H") |
(safely-delete-package "H") |
445 |
(safely-delete-package "G") |
(safely-delete-package "G") |
451 |
program-error) |
program-error) |
452 |
|
|
453 |
;; :shadowing-import-from and :intern |
;; :shadowing-import-from and :intern |
454 |
(deftest defpackage-21 |
(deftest defpackage.21 |
455 |
(progn |
(progn |
456 |
(safely-delete-package "H") |
(safely-delete-package "H") |
457 |
(safely-delete-package "G") |
(safely-delete-package "G") |
463 |
program-error) |
program-error) |
464 |
|
|
465 |
;; :import-from and :intern |
;; :import-from and :intern |
466 |
(deftest defpackage-22 |
(deftest defpackage.22 |
467 |
(progn |
(progn |
468 |
(safely-delete-package "H") |
(safely-delete-package "H") |
469 |
(safely-delete-package "G") |
(safely-delete-package "G") |
476 |
|
|
477 |
;; Names given to :export and :intern must be disjoint, |
;; Names given to :export and :intern must be disjoint, |
478 |
;; otherwise signal a program-error |
;; otherwise signal a program-error |
479 |
(deftest defpackage-23 |
(deftest defpackage.23 |
480 |
(progn |
(progn |
481 |
(safely-delete-package "H") |
(safely-delete-package "H") |
482 |
(classify-error |
(classify-error |
487 |
|
|
488 |
;; :shadowing-import-from signals a correctable package-error |
;; :shadowing-import-from signals a correctable package-error |
489 |
;; if the symbol is not accessible in the named package |
;; if the symbol is not accessible in the named package |
490 |
(deftest defpackage-24 |
(deftest defpackage.24 |
491 |
(progn |
(progn |
492 |
(safely-delete-package "H") |
(safely-delete-package "H") |
493 |
(safely-delete-package "G") |
(safely-delete-package "G") |
500 |
;; :import-from signals a correctable package-error if a symbol with |
;; :import-from signals a correctable package-error if a symbol with |
501 |
;; the indicated name is not accessible in the package indicated |
;; the indicated name is not accessible in the package indicated |
502 |
|
|
503 |
(deftest defpackage-25 |
(deftest defpackage.25 |
504 |
(progn |
(progn |
505 |
(safely-delete-package "H") |
(safely-delete-package "H") |
506 |
(safely-delete-package "G") |
(safely-delete-package "G") |
511 |
|
|
512 |
;; A big test that combines all the options to defpackage |
;; A big test that combines all the options to defpackage |
513 |
|
|
514 |
(deftest defpackage-26 |
(deftest defpackage.26 |
515 |
(ignore-errors |
(ignore-errors |
516 |
(flet |
(flet |
517 |
((%do-it% |
((%do-it% |