summaryrefslogtreecommitdiffstats
path: root/tests/common.tl
blob: f4ad735170e83e258e4a54aca9edcb1d78a87e01 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
(defmacro error-to-sym (expr)
 ^(catch ,expr
    (error (cond) :error)))

(defmacro test (:env env expr expected)
 (catch
   (let ((expr-expn (macroexpand expr env)))
     ^(ifa (not (equal (error-to-sym ,expr-expn) ',expected))
           (error "test case ~s failed: produced ~s; expected ~s"
                  ',expr it ',expected)))
   (error (exc)
          (unless (eq expected :error)
            (error "test case ~s failed to expand: expected is ~s" expr expected)))))