tests: Improve gpgconf test.
authorJustus Winter <justus@g10code.com>
Tue, 10 Jan 2017 14:50:57 +0000 (15:50 +0100)
committerJustus Winter <justus@g10code.com>
Tue, 10 Jan 2017 14:50:57 +0000 (15:50 +0100)
* tests/openpgp/defs.scm (valgrind): New variable.
(gpg-config): Fix clearing an option.
* tests/openpgp/gpgconf.scm: Also toggle 'quiet'.

Signed-off-by: Justus Winter <justus@g10code.com>
tests/openpgp/defs.scm
tests/openpgp/gpgconf.scm

index 1895a75..548476b 100644 (file)
                          (string-append bin-prefix "/" (basename (caddr t)))
                          (string-append (getenv "objdir") "/" (caddr t)))))))
 
+;; You can splice VALGRIND into your argument vector to run programs
+;; under valgrind.  For example, to run valgrind on gpg, you may want
+;; to redefine gpg:
+;;
+;; (set! gpg `(,@valgrind ,@gpg))
+;;
+(define valgrind
+  '("/usr/bin/valgrind" --leak-check=full --error-exitcode=154))
+
 (define (gpg-conf . args)
   (gpg-conf' "" args))
 (define (gpg-conf' input args)
      (gpg-conf' (string-append key ":0:" (percent-encode value))
                `(--change-options ,component)))
    (define (clear)
-     (gpg-conf' (string-append key ":1:")
+     (gpg-conf' (string-append key ":16:")
                `(--change-options ,component)))))
 
 
index cdb6b76..b4cc9cb 100644 (file)
     ""
     (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)))
+       (let ((value (make-value i)))
+         (if value
+             (begin
+               (opt::update value)
+               (assert (string=? value (list-ref (opt::value) 9))))
+             (begin
+               (opt::clear)
+               (let ((v (opt::value)))
+                 (assert (or (< (length v) 10)
+                             (string=? "" (list-ref v 9))))))))
        (progress ".")))))
  (lambda (name . rest) name)
- (list "keyserver" "verbose")
+ (list "keyserver" "verbose" "quiet")
  (list (gpg-config 'gpg "keyserver")
-       (gpg-config 'gpg "verbose"))
+       (gpg-config 'gpg "verbose")
+       (gpg-config 'gpg "quiet"))
  (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)))))
+                   (+ 1 i)))
+       (lambda (i) (if (even? i) #f "1"))))