From b852ac097f3dfe4e62c3d27e18a22f1b9f704530 Mon Sep 17 00:00:00 2001 From: Justus Winter Date: Mon, 19 Dec 2016 15:28:07 +0100 Subject: gpgscm: Display location when assertions fail. * tests/gpgscm/lib.scm (assert): Use location information if available. Signed-off-by: Justus Winter --- lib.scm | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/lib.scm b/lib.scm index fabbef8..6959aa4 100644 --- a/lib.scm +++ b/lib.scm @@ -18,13 +18,16 @@ ;; along with this program; if not, see . (macro (assert form) - `(if (not ,(cadr form)) - (begin - (display "Assertion failed: ") - (write (quote ,(cadr form))) - (newline) - (exit 1)))) + (let ((tag (get-tag form))) + `(if (not ,(cadr form)) + (throw ,(if (pair? tag) + `(string-append ,(car tag) ":" + ,(number->string (+ 1 (cdr tag))) + ": Assertion failed: ") + "Assertion failed: ") + (quote ,(cadr form)))))) (assert #t) +(assert (not #f)) (define (filter pred lst) (cond ((null? lst) '()) -- cgit v1.2.3