From bc01d62dc5d520e138499df5d80fb50f9e87e3e8 Mon Sep 17 00:00:00 2001 From: Justus Winter Date: Thu, 11 May 2017 17:17:12 +0200 Subject: [PATCH] tests: Also run all OpenPGP tests using keyrings. * tests/openpgp/all-tests.scm: Run each test twice, once with public keys stored in a keybox, once with a keyring. * tests/openpgp/defs.scm (create-gpghome): Create a public keyring to make GnuPG use that instead of creating a keybox if '--use-keyring' is given. * tests/openpgp/setup.scm: Fix flag handling and usage. -- This parametrizes the OpenPGP tests. With this change, the test suite is able to detect problems with the keyring store, e.g. like the one fixed in 22739433e98be80e46fe7d01d52a9627c1aebaae. GnuPG-bug-id: 3080 Signed-off-by: Justus Winter --- tests/openpgp/all-tests.scm | 33 ++++++++++++++++++++++++--------- tests/openpgp/defs.scm | 4 ++++ tests/openpgp/setup.scm | 7 ++++--- 3 files changed, 32 insertions(+), 12 deletions(-) diff --git a/tests/openpgp/all-tests.scm b/tests/openpgp/all-tests.scm index 4b14c4e04..6584df26e 100644 --- a/tests/openpgp/all-tests.scm +++ b/tests/openpgp/all-tests.scm @@ -31,13 +31,28 @@ (test::scm #f (path-join "tests" "openpgp" "setup.scm") - (in-srcdir "tests" "openpgp" "setup.scm") - "--" "tests" "gpg"))) + (in-srcdir "tests" "openpgp" "setup.scm")))) - (map (lambda (name) - (test::scm setup - (path-join "tests" "openpgp" name) - (in-srcdir "tests" "openpgp" name))) - (parse-makefile-expand (in-srcdir "tests" "openpgp" "Makefile.am") - (lambda (filename port key) (parse-makefile port key)) - "XTESTS"))) + (define setup-use-keyring + (make-environment-cache + (test::scm + #f + (string-append "" (path-join "tests" "openpgp" "setup.scm")) + (in-srcdir "tests" "openpgp" "setup.scm") + "--use-keyring"))) + + (define all-tests + (parse-makefile-expand (in-srcdir "tests" "openpgp" "Makefile.am") + (lambda (filename port key) (parse-makefile port key)) + "XTESTS")) + (append + (map (lambda (name) + (test::scm setup + (path-join "tests" "openpgp" name) + (in-srcdir "tests" "openpgp" name))) all-tests) + (map (lambda (name) + (test::scm setup-use-keyring + (string-append "" + (path-join "tests" "openpgp" name)) + (in-srcdir "tests" "openpgp" name) + "--use-keyring")) all-tests))) diff --git a/tests/openpgp/defs.scm b/tests/openpgp/defs.scm index 8d7caed04..1531dc1b1 100644 --- a/tests/openpgp/defs.scm +++ b/tests/openpgp/defs.scm @@ -328,6 +328,10 @@ (make-test-data "random_seed" 600) (log "Creating configuration files") + + (if (flag "--use-keyring" *args*) + (create-file "pubring.gpg")) + (create-file "gpg.conf" "no-greeting" "no-secmem-warning" diff --git a/tests/openpgp/setup.scm b/tests/openpgp/setup.scm index 00eed53fc..22c89a389 100755 --- a/tests/openpgp/setup.scm +++ b/tests/openpgp/setup.scm @@ -19,8 +19,9 @@ (load (in-srcdir "tests" "openpgp" "defs.scm")) -(unless (member "--create-tarball" *args*) - (fail "Usage: setup.scm --create-tarball ")) +(define cache (flag "--create-tarball" *args*)) +(unless (and cache (= 1 (length cache))) + (fail "Usage: setup.scm --create-tarball [--use-keyring]")) (when (> (*verbose*) 0) (define (pad symbol length) @@ -45,4 +46,4 @@ (start-agent) (create-legacy-gpghome) (stop-agent) -(call-check `(,(tool 'gpgtar) --create --output ,(cadr *args*) ".")) +(call-check `(,(tool 'gpgtar) --create --output ,(car cache) "."))