summaryrefslogtreecommitdiffstats
path: root/tests/common.tl
diff options
context:
space:
mode:
Diffstat (limited to 'tests/common.tl')
-rw-r--r--tests/common.tl16
1 files changed, 12 insertions, 4 deletions
diff --git a/tests/common.tl b/tests/common.tl
index f4ad7351..301a5402 100644
--- a/tests/common.tl
+++ b/tests/common.tl
@@ -2,12 +2,20 @@
^(catch ,expr
(error (cond) :error)))
-(defmacro test (:env env expr expected)
+(defmacro vtest (:env env expr expected)
(catch
- (let ((expr-expn (macroexpand expr env)))
- ^(ifa (not (equal (error-to-sym ,expr-expn) ',expected))
+ (let ((expr-expn (macroexpand expr env))
+ (expval (gensym)))
+ ^(let ((,expval ,expected))
+ (ifa (not (equal (error-to-sym ,expr-expn) ,expval))
(error "test case ~s failed: produced ~s; expected ~s"
- ',expr it ',expected)))
+ ',expr it ,expval))))
(error (exc)
(unless (eq expected :error)
(error "test case ~s failed to expand: expected is ~s" expr expected)))))
+
+(defmacro test (expr expected)
+ ^(vtest ,expr ',expected))
+
+(defmacro stest (expr expected)
+ ^(vtest ,^(tostring ,expr) ,expected))