From aab6ba0bb60528b9e816e430be51170cf39611b0 Mon Sep 17 00:00:00 2001 From: Justus Winter Date: Fri, 17 Feb 2017 10:43:20 +0100 Subject: [PATCH] gpgscm: Guard use of tagged expressions. * tests/gpgscm/init.scm (vm-history-print): Check that the tag added to expressions when parsing source files matches the expected format. * tests/gpgscm/lib.scm (assert): Likewise. -- This makes the error handling more robust. We saw the assumption about the format of the tags being violated on one build system, and it obscured the view on the underlying problem. Signed-off-by: Justus Winter --- tests/gpgscm/init.scm | 10 +++++----- tests/gpgscm/lib.scm | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/gpgscm/init.scm b/tests/gpgscm/init.scm index 83261b001..87d3c8870 100644 --- a/tests/gpgscm/init.scm +++ b/tests/gpgscm/init.scm @@ -547,11 +547,11 @@ (display n) (display ": ") (let ((tag (get-tag f))) - (unless (null? tag) - (display (basename (car tag))) - (display ":") - (display (+ 1 (cdr tag))) - (display ": "))) + (when (and (pair? tag) (string? (car tag)) (number? (cdr tag))) + (display (basename (car tag))) + (display ":") + (display (+ 1 (cdr tag))) + (display ": "))) (write f)) (newline) (loop (+ n 1) skip (cdr frames)))))) diff --git a/tests/gpgscm/lib.scm b/tests/gpgscm/lib.scm index 6959aa4d0..2cfe725e9 100644 --- a/tests/gpgscm/lib.scm +++ b/tests/gpgscm/lib.scm @@ -20,7 +20,7 @@ (macro (assert form) (let ((tag (get-tag form))) `(if (not ,(cadr form)) - (throw ,(if (pair? tag) + (throw ,(if (and (pair? tag) (string? (car tag)) (number? (cdr tag))) `(string-append ,(car tag) ":" ,(number->string (+ 1 (cdr tag))) ": Assertion failed: ")