test: Add new macros.
authorJan Nieuwenhuizen <janneke@gnu.org>
Sun, 30 Oct 2016 22:28:57 +0000 (23:28 +0100)
committerJan Nieuwenhuizen <janneke@gnu.org>
Mon, 12 Dec 2016 19:33:49 +0000 (20:33 +0100)
* module/mes/test.mes (pass-if-equal, expect-fail): New macros.

module/mes/test.mes

index ea690e7926137c10838ff52e5ff9b96c5fe22718..3895606a5b818b5780b33914033719831a5313ad 100644 (file)
         (newline)
         #f)))
 
+(define (sequal2? expect actual)
+  (or (equal? expect actual)
+      (begin
+        (display ": fail") (newline)
+        (display "expected: ") (display expect) (newline)
+        (display "actual: ") (display actual) (newline)
+        #f)))
+
 (define-macro (pass-if name t)
   (list
    'begin
    (list display "test: ") (list display name)
    (list result t)))
 
+(define-macro (pass-if-equal name expect . body)
+  `(pass-if ,name (sequal2? ,expect (begin ,@body))))
+
+(define-macro (expect-fail name expect . body)
+  `(pass-if ,name (not (sequal2? ,expect (begin ,@body)))))
+
 (define-macro (pass-if-not name f)
   (list
    'begin