tests: Move common functionality.
authorJustus Winter <justus@g10code.com>
Tue, 11 Apr 2017 08:43:52 +0000 (10:43 +0200)
committerJustus Winter <justus@g10code.com>
Tue, 11 Apr 2017 08:43:52 +0000 (10:43 +0200)
* tests/openpgp/defs.scm (with-home-directory,
with-ephemeral-home-directory): Move...
* tests/gpgscm/gnupg.scm: ... to this new file.
* tests/gpgscm/main.c (main): Load the new file.

Signed-off-by: Justus Winter <justus@g10code.com>
tests/gpgscm/gnupg.scm [new file with mode: 0644]
tests/gpgscm/main.c
tests/openpgp/defs.scm

diff --git a/tests/gpgscm/gnupg.scm b/tests/gpgscm/gnupg.scm
new file mode 100644 (file)
index 0000000..5fcf9fd
--- /dev/null
@@ -0,0 +1,44 @@
+;; Common definitions for executing gpg and related tools.
+;;
+;; Copyright (C) 2016, 2017 g10 Code GmbH
+;;
+;; This file is part of GnuPG.
+;;
+;; GnuPG is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 3 of the License, or
+;; (at your option) any later version.
+;;
+;; GnuPG is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+;;
+;; You should have received a copy of the GNU General Public License
+;; along with this program; if not, see <http://www.gnu.org/licenses/>.
+
+;; Evaluate a sequence of expressions with the given home directory.
+(define-macro (with-home-directory gnupghome . expressions)
+  (let ((original-home-directory (gensym)))
+    `(let ((,original-home-directory (getenv "GNUPGHOME")))
+       (dynamic-wind
+          (lambda () (setenv "GNUPGHOME" ,gnupghome #t))
+          (lambda () ,@expressions)
+          (lambda () (setenv "GNUPGHOME" ,original-home-directory #t))))))
+
+;; Evaluate a sequence of expressions with an ephemeral home
+;; directory.
+(define-macro (with-ephemeral-home-directory setup-fn . expressions)
+  (let ((original-home-directory (gensym))
+       (ephemeral-home-directory (gensym))
+       (setup (gensym)))
+    `(let ((,original-home-directory (getenv "GNUPGHOME"))
+          (,ephemeral-home-directory (mkdtemp))
+          (,setup (delay (,setup-fn))))
+       (finally (unlink-recursively ,ephemeral-home-directory)
+        (dynamic-wind
+            (lambda ()
+              (setenv "GNUPGHOME" ,ephemeral-home-directory #t)
+              (with-working-directory ,ephemeral-home-directory (force ,setup)))
+            (lambda () ,@expressions)
+            (lambda () (setenv "GNUPGHOME" ,original-home-directory #t)))))))
index 79072a5..5e04d97 100644 (file)
@@ -314,6 +314,8 @@ main (int argc, char **argv)
     err = load (sc, "repl.scm", 0, 1);
   if (! err)
     err = load (sc, "tests.scm", 0, 1);
+  if (! err)
+    err = load (sc, "gnupg.scm", 0, 1);
   if (err)
     {
       fprintf (stderr, "Error initializing gpgscm: %s.\n",
index 29eb775..cb22de7 100644 (file)
 ;; GnuPG helper.
 ;;
 
-;; Evaluate a sequence of expressions with the given home directory.
-(define-macro (with-home-directory gnupghome . expressions)
-  (let ((original-home-directory (gensym)))
-    `(let ((,original-home-directory (getenv "GNUPGHOME")))
-       (dynamic-wind
-          (lambda () (setenv "GNUPGHOME" ,gnupghome #t))
-          (lambda () ,@expressions)
-          (lambda () (setenv "GNUPGHOME" ,original-home-directory #t))))))
-
-;; Evaluate a sequence of expressions with an ephemeral home
-;; directory.
-(define-macro (with-ephemeral-home-directory setup-fn . expressions)
-  (let ((original-home-directory (gensym))
-       (ephemeral-home-directory (gensym))
-       (setup (gensym)))
-    `(let ((,original-home-directory (getenv "GNUPGHOME"))
-          (,ephemeral-home-directory (mkdtemp))
-          (,setup (delay (,setup-fn))))
-       (finally (unlink-recursively ,ephemeral-home-directory)
-        (dynamic-wind
-            (lambda ()
-              (setenv "GNUPGHOME" ,ephemeral-home-directory #t)
-              (with-working-directory ,ephemeral-home-directory (force ,setup)))
-            (lambda () ,@expressions)
-            (lambda () (setenv "GNUPGHOME" ,original-home-directory #t)))))))
-
 ;; Call GPG to obtain the hash sums.  Either specify an input file in
 ;; ARGS, or an string in INPUT.  Returns a list of (<algo>
 ;; "<hashsum>") lists.