diff options
| author | Mistivia <i@mistivia.com> | 2025-06-21 16:04:00 +0800 |
|---|---|---|
| committer | Mistivia <i@mistivia.com> | 2025-06-21 16:04:00 +0800 |
| commit | ca22ae606ca674a91e28597a96641c01f7eacb24 (patch) | |
| tree | 01fadb02db0ee2bffe9217373c304dae7c48e19d /tests/lisp/control-flow.lisp | |
| parent | 1b2e36b342be527937ad350690023cb50190f1e0 (diff) | |
add tests
Diffstat (limited to 'tests/lisp/control-flow.lisp')
| -rw-r--r-- | tests/lisp/control-flow.lisp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/lisp/control-flow.lisp b/tests/lisp/control-flow.lisp new file mode 100644 index 0000000..5d7290d --- /dev/null +++ b/tests/lisp/control-flow.lisp @@ -0,0 +1,33 @@ +(assert-error (if (error "") 1 2)) + +(let ((i 0)) + (while #t + (if (> i 4) + (break) + nil) + (incq i)) + (assert (= i 5))) + +(let ((i 0)) + (while #t + (if (> i 4) + (let () (break)) + nil) + (incq i)) + (assert (= i 5))) + +(let ((flag 0) + (i 0)) + (while (< i 10) + (incq i) + (continue) + (setq flag 1)) + (assert (= i 10)) + (assert (= flag 0))) + +(assert-error (funcall (lambda () (break)))) +(assert-error (funcall (lambda () (continue)))) +(assert (= 1 (funcall (lambda () (return 1))))) +(assert (= 1 (funcall (lambda () (while #t (return 1)))))) +(assert (= 1 (funcall (lambda () (let () (return 1)))))) +(assert (= 1 (funcall (lambda () (let ((x (return 1))) (return 2)))))) |
