[git] GnuPG - branch, master, updated. gnupg-2.1.17-52-gc8cfc62

by Justus Winter cvs at cvs.gnupg.org
Tue Jan 10 12:43:58 CET 2017


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "The GNU Privacy Guard".

The branch, master has been updated
       via  c8cfc62125aceee0ca48aab5c8a9fea1ec1ef652 (commit)
       via  bfd6a490129ffc7c7ac8776bf5a5da3b1ddf6d42 (commit)
      from  0cc975d8a1cd54115938202432e43263b8893ea4 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit c8cfc62125aceee0ca48aab5c8a9fea1ec1ef652
Author: Justus Winter <justus at g10code.com>
Date:   Tue Jan 10 12:38:07 2017 +0100

    tests: Add test for gpgconf.
    
    * tests/openpgp/Makefile.am (XTESTS): Add new test.
    * tests/openpgp/defs.scm (percent-encode): New function.
    (gpg-conf): Generalize so that we can feed stdin.
    (gpg-config): New function.
    * tests/openpgp/gpgconf.scm: New file.
    
    Signed-off-by: Justus Winter <justus at g10code.com>

diff --git a/tests/openpgp/Makefile.am b/tests/openpgp/Makefile.am
index c93857f..d1dd449 100644
--- a/tests/openpgp/Makefile.am
+++ b/tests/openpgp/Makefile.am
@@ -92,6 +92,7 @@ XTESTS = \
 	quick-key-manipulation.scm \
 	key-selection.scm \
 	delete-keys.scm \
+	gpgconf.scm \
 	issue2015.scm \
 	issue2346.scm \
 	issue2417.scm \
diff --git a/tests/openpgp/defs.scm b/tests/openpgp/defs.scm
index 837e096..1895a75 100644
--- a/tests/openpgp/defs.scm
+++ b/tests/openpgp/defs.scm
@@ -1,6 +1,6 @@
 ;; Common definitions for the OpenPGP test scripts.
 ;;
-;; Copyright (C) 2016 g10 Code GmbH
+;; Copyright (C) 2016, 2017 g10 Code GmbH
 ;;
 ;; This file is part of GnuPG.
 ;;
@@ -96,6 +96,21 @@
 (assert (equal? (percent-decode "%61") "a"))
 (assert (equal? (percent-decode "foob%61r") "foobar"))
 
+(define (percent-encode s)
+  (define (encode c)
+    `(#\% ,@(string->list (number->string (char->integer c) 16))))
+  (let loop ((acc '()) (cs (reverse (string->list s))))
+    (if (null? cs)
+	(list->string acc)
+	(case (car cs)
+	  ((#\: #\%)
+	   (loop (append (encode (car cs)) acc) (cdr cs)))
+	  (else
+	   (loop (cons (car cs) acc) (cdr cs)))))))
+(assert (equal? (percent-encode "") ""))
+(assert (equal? (percent-encode "%61") "%2561"))
+(assert (equal? (percent-encode "foob%61r") "foob%2561r"))
+
 (define tools
   '((gpgv "GPGV" "g10/gpgv")
     (gpg-connect-agent "GPG_CONNECT_AGENT" "tools/gpg-connect-agent")
@@ -117,13 +132,27 @@
 			  (string-append (getenv "objdir") "/" (caddr t)))))))
 
 (define (gpg-conf . args)
-  (let ((s (call-popen `(,(tool-hardcoded 'gpgconf) , at args) "")))
+  (gpg-conf' "" args))
+(define (gpg-conf' input args)
+  (let ((s (call-popen `(,(tool-hardcoded 'gpgconf) , at args) input)))
     (map (lambda (line) (map percent-decode (string-split line #\:)))
 	 (string-split-newlines s))))
 (define :gc:c:name car)
 (define :gc:c:description cadr)
 (define :gc:c:pgmname caddr)
 
+(define (gpg-config component key)
+  (package
+   (define (value)
+     (assoc key (gpg-conf '--list-options component)))
+   (define (update value)
+     (gpg-conf' (string-append key ":0:" (percent-encode value))
+		`(--change-options ,component)))
+   (define (clear)
+     (gpg-conf' (string-append key ":1:")
+		`(--change-options ,component)))))
+
+
 (unless installed?
 	(setenv "GNUPG_BUILDDIR" (getenv "objdir") #t))
 (define gpg-components (apply gpg-conf
diff --git a/tests/openpgp/gpgconf.scm b/tests/openpgp/gpgconf.scm
new file mode 100644
index 0000000..cdb6b76
--- /dev/null
+++ b/tests/openpgp/gpgconf.scm
@@ -0,0 +1,41 @@
+#!/usr/bin/env gpgscm
+
+;; Copyright (C) 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/>.
+
+(load (with-path "defs.scm"))
+(setup-environment)
+
+(for-each-p'
+ "Checking reading and writing configuration via gpgconf... "
+ (lambda (name opt make-value)
+   (call-with-progress
+    ""
+    (lambda (progress)
+      (do ((i 0 (+ 1 i))) ((> i 12) #t)
+	(opt::update (make-value i))
+	(assert (string=? (make-value i) (list-ref (opt::value) 9)))
+	(progress ".")))))
+ (lambda (name . rest) name)
+ (list "keyserver" "verbose")
+ (list (gpg-config 'gpg "keyserver")
+       (gpg-config 'gpg "verbose"))
+ (list (lambda (i) (if (even? i) "\"hkp://foo.bar" "\"hkps://bar.baz"))
+       (lambda (i) (number->string
+		    ;; gpgconf: argument for option verbose of type 0
+		    ;; (none) must be positive
+		    (+ 1 i)))))

commit bfd6a490129ffc7c7ac8776bf5a5da3b1ddf6d42
Author: Justus Winter <justus at g10code.com>
Date:   Tue Jan 10 12:31:46 2017 +0100

    common: Fix fallback code.
    
    * common/logging.c (_log_assert): Fix the variant for compilers that
    do not support __FUNCTION__.
    * common/logging.h (_log_assert): Likewise.
    
    Signed-off-by: Justus Winter <justus at g10code.com>

diff --git a/common/logging.c b/common/logging.c
index ca1341c..c06a34f 100644
--- a/common/logging.c
+++ b/common/logging.c
@@ -1007,7 +1007,7 @@ void
 _log_assert (const char *expr, const char *file, int line)
 {
   log_log (GPGRT_LOG_BUG, "Assertion \"%s\" failed (%s:%d)\n",
-           file, line, func);
+           expr, file, line);
   abort (); /* Never called; just to make the compiler happy.  */
 }
 #endif /*!GPGRT_HAVE_MACRO_FUNCTION*/
diff --git a/common/logging.h b/common/logging.h
index fc9e846..8edc5c9 100644
--- a/common/logging.h
+++ b/common/logging.h
@@ -62,7 +62,7 @@ estream_t log_get_stream (void);
    : _log_assert (#expr, __FILE__, __LINE__, __FUNCTION__))
 #else /*!GPGRT_HAVE_MACRO_FUNCTION*/
   void bug_at (const char *file, int line);
-  void _log_assert (const char *expr, const char *file, int line;
+  void _log_assert (const char *expr, const char *file, int line);
 # define BUG() bug_at( __FILE__ , __LINE__ )
 # define log_assert(expr)                                       \
   ((expr)                                                       \

-----------------------------------------------------------------------

Summary of changes:
 common/logging.c                              |  2 +-
 common/logging.h                              |  2 +-
 tests/openpgp/Makefile.am                     |  1 +
 tests/openpgp/defs.scm                        | 33 +++++++++++++++++++++++++--
 tests/openpgp/{4gb-packet.scm => gpgconf.scm} | 27 ++++++++++++++++------
 5 files changed, 54 insertions(+), 11 deletions(-)
 copy tests/openpgp/{4gb-packet.scm => gpgconf.scm} (51%)
 mode change 100755 => 100644


hooks/post-receive
-- 
The GNU Privacy Guard
http://git.gnupg.org




More information about the Gnupg-commits mailing list