summaryrefslogtreecommitdiffstats
path: root/tests/011/special-1.tl
diff options
context:
space:
mode:
Diffstat (limited to 'tests/011/special-1.tl')
-rw-r--r--tests/011/special-1.tl29
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/011/special-1.tl b/tests/011/special-1.tl
index 7461b730..aa791354 100644
--- a/tests/011/special-1.tl
+++ b/tests/011/special-1.tl
@@ -1,5 +1,34 @@
+(load "../common")
+
(let ((x (with-out-string-stream (*stdout*)
[format *stdout* "wo"]
(format t "rld!"))))
(format *stdout* "Hello, ")
(put-line x))
+
+(defvar *spec* :global)
+
+(defvar *fun* (let* ((*spec* :local)
+ (fun (lambda () *spec*))
+ (x *spec*))
+ (test (call fun) :local)
+ (test x :local)
+ (set *spec* :local2)
+ fun))
+
+(let ((*spec* *spec*))
+ (test *spec* :global)
+ (set *spec* :clobber)
+ (test (call *fun*) :clobber))
+
+(test *spec* :global)
+
+(test (call *fun*) :global)
+
+(let ((x *spec*)
+ (*spec* :local)
+ (y *spec*))
+ (let ((z *spec*)
+ (*spec* nil)
+ (w *spec*))
+ (test (list *spec* x y z w) (nil :global :global :local :local))))