From 2f61aa0ff11b194d20307751ab686c87cd47dd56 Mon Sep 17 00:00:00 2001 From: Justus Winter Date: Thu, 7 Jul 2016 16:18:10 +0200 Subject: gpgscm: Capture output of spawned processes. * tests/gpgscm/tests.scm (call-check): Capture stdout and stderr, and return stdout if the child exited successfully, or include stderr in the error. * tests/openpgp/version.scm: Demonstrate this by checking the stdout. Signed-off-by: Justus Winter --- tests/gpgscm/tests.scm | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'tests/gpgscm/tests.scm') diff --git a/tests/gpgscm/tests.scm b/tests/gpgscm/tests.scm index 272881757..c32e2fa5e 100644 --- a/tests/gpgscm/tests.scm +++ b/tests/gpgscm/tests.scm @@ -94,9 +94,6 @@ CLOSED_FD (if (< *verbose* 0) STDOUT_FILENO CLOSED_FD) (if (< *verbose* 0) STDERR_FILENO CLOSED_FD))) -(define (call-check what) - (if (not (= 0 (call what))) - (throw (list what "failed")))) ;; Accessor functions for the results of 'spawn-process'. (define :stdin car) @@ -119,6 +116,12 @@ ;; ':stderr' can also be used. (define :retcode car) +(define (call-check what) + (let ((result (call-with-io what ""))) + (if (= 0 (:retcode result)) + (:stdout result) + (throw (list what "failed:" (:stderr result)))))) + (define (call-popen command input-string) (let ((result (call-with-io command input-string))) (if (= 0 (:retcode result)) -- cgit v1.2.3