diff options
Diffstat (limited to 'tests/common.tl')
-rw-r--r-- | tests/common.tl | 16 |
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)) |