summaryrefslogtreecommitdiff
path: root/test.fnl
diff options
context:
space:
mode:
Diffstat (limited to 'test.fnl')
-rw-r--r--test.fnl21
1 files changed, 5 insertions, 16 deletions
diff --git a/test.fnl b/test.fnl
index a07eff9..da25c26 100644
--- a/test.fnl
+++ b/test.fnl
@@ -1,10 +1,9 @@
(import-macros {: fn*} :macros.fn)
-
;; requires `eq?' from core.fnl to be available at runtime
(fn* assert-eq
([expr1 expr2]
- (assert-eq expr1 expr2 'nil))
+ (assert-eq expr1 expr2 nil))
([expr1 expr2 msg]
`(let [left# ,expr1
right# ,expr2
@@ -15,7 +14,7 @@
(fn* assert-ne
([expr1 expr2]
- (assert-ne expr1 expr2 'nil))
+ (assert-ne expr1 expr2 nil))
([expr1 expr2 msg]
`(let [left# ,expr1
right# ,expr2
@@ -24,29 +23,19 @@
Left: " (view# left#) "
Right: " (view# right#) "\n"))))))
-(fn walk-tree [root f custom-iterator]
- "Walks a tree (like the AST), invoking f(node, idx, parent) on each node.
-When f returns a truthy value, recursively walks the children."
- (fn walk [iterfn parent idx node]
- (when (f idx node parent)
- (each [k v (iterfn node)]
- (walk iterfn node k v))))
- (walk (or custom-iterator pairs) nil nil root)
- root)
-
(fn* assert*
([expr]
- (assert* expr 'nil))
+ (assert* expr nil))
([expr msg]
`(assert ,expr (.. "assertion failed for " (or ,msg ,(tostring expr))))))
(fn* test
- ;"define test function, print its name and run it."
+ "Define test function, print its name and run it."
[name docstring & body]
(let [test-name (sym (.. (tostring name) "-test"))]
`(do (fn ,test-name []
,(or docstring nil)
- ((or table.unpack unpack) ,body))
+ ,((or table.unpack _G.unpack) body))
(io.stderr:write (.. "running: " ,(tostring test-name) "\n"))
(,test-name))))