diff options
author | Justus Winter <[email protected]> | 2016-09-20 12:33:16 +0000 |
---|---|---|
committer | Justus Winter <[email protected]> | 2016-09-20 13:33:57 +0000 |
commit | 6c4c0e3ac2aeafba7a2b7c2dd92a18be8aec92b1 (patch) | |
tree | 527a6202f4bd0a6a25ac3579cca610af76e41a55 /tests/openpgp/quick-key-manipulation.scm | |
parent | tests: Remove list of tests from the test runner. (diff) | |
download | gnupg-6c4c0e3ac2aeafba7a2b7c2dd92a18be8aec92b1.tar.gz gnupg-6c4c0e3ac2aeafba7a2b7c2dd92a18be8aec92b1.zip |
tests: Port the quick key manipulation test to Scheme.
* tests/openpgp/Makefile.am (XTESTS): Add new test.
* tests/openpgp/quick-key-manipulation.scm: New file.
Signed-off-by: Justus Winter <[email protected]>
Diffstat (limited to 'tests/openpgp/quick-key-manipulation.scm')
-rwxr-xr-x | tests/openpgp/quick-key-manipulation.scm | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/tests/openpgp/quick-key-manipulation.scm b/tests/openpgp/quick-key-manipulation.scm new file mode 100755 index 000000000..f2b8766bd --- /dev/null +++ b/tests/openpgp/quick-key-manipulation.scm @@ -0,0 +1,66 @@ +#!/usr/bin/env gpgscm + +;; Copyright (C) 2016 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/>. + +(load (with-path "defs.scm")) + + ;; XXX because of --always-trust, the trustdb is not created. + ;; Therefore, we redefine GPG without --always-trust. +(define GPG `(,(tool 'gpg) --no-permission-warning)) + +(define (exact id) + (string-append "=" id)) + +(define (count-uids-of-secret-key id) + (length (filter (lambda (x) (and (string=? "uid" (car x)) + (string=? "u" (cadr x)))) + (gpg-with-colons + `(--with-fingerprint + --list-secret-keys ,(exact id)))))) + +(define old-home (getenv "GNUPGHOME")) +(define alpha "Alpha <[email protected]>") +(define bravo "Bravo <[email protected]>") + +(with-temporary-working-directory + (file-copy (path-join old-home "gpg.conf") "gpg.conf") + (file-copy (path-join old-home "gpg-agent.conf") "gpg-agent.conf") + (setenv "GNUPGHOME" "." #t) + (setenv "PINENTRY_USER_DATA" "test" #t) + + (info "Checking quick key generation...") + (call-check `(,@GPG --quick-gen-key ,alpha)) + + (call-check `(,@GPG --check-trustdb)) ; XXX why? + + (assert (= 1 (count-uids-of-secret-key alpha))) + + (info "Checking that we can add a user ID...") + (call-check `(,@GPG --quick-adduid ,(exact alpha) ,bravo)) + + (call-check `(,@GPG --check-trustdb)) ; XXX why? + + (assert (= 2 (count-uids-of-secret-key alpha))) + (assert (= 2 (count-uids-of-secret-key bravo))) + + (info "Checking that we can revoke a user ID...") + (call-check `(,@GPG --quick-revuid ,(exact bravo) ,alpha)) + + (call-check `(,@GPG --check-trustdb)) ; XXX why? + + (assert (= 1 (count-uids-of-secret-key bravo)))) |