9 |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
10 |
;;; export |
;;; export |
11 |
|
|
12 |
(deftest export-1 |
(deftest export.1 |
13 |
(let ((return-value nil)) |
(let ((return-value nil)) |
14 |
(safely-delete-package "TEST1") |
(safely-delete-package "TEST1") |
15 |
(let ((p (make-package "TEST1"))) |
(let ((p (make-package "TEST1"))) |
16 |
(let ((sym (intern "FOO" p))) |
(let ((sym (intern "FOO" p)) |
17 |
(setf return-value (export sym p)) |
(i 0) x y) |
18 |
|
(setf return-value (export (progn (setf x (incf i)) sym) |
19 |
|
(progn (setf y (incf i)) p))) |
20 |
(multiple-value-bind* (sym2 status) |
(multiple-value-bind* (sym2 status) |
21 |
(find-symbol "FOO" p) |
(find-symbol "FOO" p) |
22 |
(prog1 |
(prog1 |
23 |
(and sym2 |
(and sym2 |
24 |
|
(eql i 2) |
25 |
|
(eql x 1) |
26 |
|
(eql y 2) |
27 |
(eqt (symbol-package sym2) p) |
(eqt (symbol-package sym2) p) |
28 |
(string= (symbol-name sym2) "FOO") |
(string= (symbol-name sym2) "FOO") |
29 |
(eqt sym sym2) |
(eqt sym sym2) |
32 |
return-value) |
return-value) |
33 |
t) |
t) |
34 |
|
|
35 |
(deftest export-2 |
(deftest export.2 |
36 |
(progn |
(progn |
37 |
(safely-delete-package "TEST1") |
(safely-delete-package "TEST1") |
38 |
(let ((p (make-package "TEST1"))) |
(let ((p (make-package "TEST1"))) |
49 |
(delete-package p)))))) |
(delete-package p)))))) |
50 |
t) |
t) |
51 |
|
|
52 |
(deftest export-3 |
(deftest export.3 |
53 |
(handler-case |
(handler-case |
54 |
(progn |
(progn |
55 |
(safely-delete-package "F") |
(safely-delete-package "F") |
66 |
;; should signal a correctable package-error asking the |
;; should signal a correctable package-error asking the |
67 |
;; user whether the symbol should be imported. |
;; user whether the symbol should be imported. |
68 |
;; |
;; |
69 |
(deftest export-4 |
(deftest export.4 |
70 |
(handler-case |
(handler-case |
71 |
(export 'b::bar "A") |
(export 'b::bar "A") |
72 |
(package-error () 'package-error) |
(package-error () 'package-error) |
78 |
;; from a package that is used by another package that |
;; from a package that is used by another package that |
79 |
;; is exporting a symbol with the same name. |
;; is exporting a symbol with the same name. |
80 |
;; |
;; |
81 |
(deftest export-5 |
(deftest export.5 |
82 |
(progn |
(progn |
83 |
(safely-delete-package "TEST1") |
(safely-delete-package "TEST1") |
84 |
(safely-delete-package "TEST2") |
(safely-delete-package "TEST2") |
91 |
(handler-case |
(handler-case |
92 |
(export sym "TEST1") |
(export sym "TEST1") |
93 |
(error (c) |
(error (c) |
94 |
(format t "Caught error in EXPORT-5: ~A~%" c) |
(format t "Caught error in EXPORT.5: ~A~%" c) |
95 |
'caught))) |
'caught))) |
96 |
(error (c) c)) |
(error (c) c)) |
97 |
(delete-package "TEST2") |
(delete-package "TEST2") |