aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/lambda.lisp7
-rw-r--r--tests/symbol.lisp4
-rw-r--r--tests/test.lisp34
3 files changed, 29 insertions, 16 deletions
diff --git a/tests/lambda.lisp b/tests/lambda.lisp
index 18bbd8b..0a1ad1c 100644
--- a/tests/lambda.lisp
+++ b/tests/lambda.lisp
@@ -24,3 +24,10 @@
(assert (= 1 (funcall c)))
(assert (= 2 (funcall c)))
(assert (= 3 (funcall c))))
+
+(let ((x 1)
+ (fn nil))
+ (setq fn
+ (lambda (x) (setq x 2)))
+ (funcall fn x)
+ (assert (= x 1)))
diff --git a/tests/symbol.lisp b/tests/symbol.lisp
new file mode 100644
index 0000000..f771272
--- /dev/null
+++ b/tests/symbol.lisp
@@ -0,0 +1,4 @@
+(assert (eq 'a (intern "a")))
+(assert (eq (intern "ab") (intern (concat "a" "b"))))
+(assert (equal "abc" (symbol->string 'abc)))
+(assert (not (eq (gensym) (gensym))))
diff --git a/tests/test.lisp b/tests/test.lisp
index 9b0f888..ca8195c 100644
--- a/tests/test.lisp
+++ b/tests/test.lisp
@@ -1,19 +1,21 @@
-(defmacro test-module (name)
- `(progn
- (princ (format "[TEST] %s\n" ,name))
- (load (format "%s.lisp" ,name))
- (princ (format "[PASS] %s\n" ,name))))
+(defmacro test-module (module)
+ (let ((name (symbol->string module)))
+ `(progn
+ (princ (format "[TEST] %s\n" ,name))
+ (load (format "%s.lisp" ,name))
+ (princ (format "[PASS] %s\n" ,name)))))
-(test-module "math")
-(test-module "eq")
-(test-module "arithmetic")
-(test-module "error")
-(test-module "logic")
-(test-module "tailcall")
-(test-module "control-flow")
-(test-module "lambda")
-(test-module "comment")
-(test-module "macro")
-(test-module "let-binding")
+(test-module math)
+(test-module symbol)
+(test-module eq)
+(test-module arithmetic)
+(test-module error)
+(test-module logic)
+(test-module tailcall)
+(test-module control-flow)
+(test-module lambda)
+(test-module comment)
+(test-module macro)
+(test-module let-binding)
(exit)