tests/openpgp: Improve tests.
authorJustus Winter <justus@g10code.com>
Thu, 23 Jun 2016 15:14:07 +0000 (17:14 +0200)
committerJustus Winter <justus@g10code.com>
Thu, 23 Jun 2016 15:14:07 +0000 (17:14 +0200)
* tests/openpgp/multisig.scm: Simplify test.
* tests/openpgp/setup.scm (dearmor): Use pipe.

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

index 3788f67..53c905f 100755 (executable)
@@ -156,17 +156,13 @@ cnksIEkgY2FuJ3QgZG8gdGhhdAo=
 (for-each-p
  "Checking that an invalid signature is verified as such"
  (lambda (armored-file)
-   (tr:do
-    (tr:pipe-do
-     (pipe:echo (eval armored-file (current-environment)))
-     (pipe:spawn `(,@GPG --dearmor)))
-    ;; XXX: this is ugly
-    (lambda args
-      (if (catch #f ;; verifikation failed, this is what we want
-                (apply (tr:spawn "" `(,@GPG --verify **in**)) args)
-                ;; verification succeded, this is an error.
-                #t)
-         (error "invalid signature is valid")
-         args))))
+   (lettmp (file)
+     (pipe:do
+      (pipe:echo (eval armored-file (current-environment)))
+      (pipe:spawn `(,@GPG --dearmor))
+      (pipe:write-to file (logior O_WRONLY O_CREAT O_BINARY) #o600))
+
+     (if (= 0 (call `(,@GPG --verify ,file)))
+        (error "Bad signature verified ok")))
  '(sig-1ls1ls-valid sig-ls-valid sig-1lsls-invalid
                    sig-lsls-invalid sig-lss-invalid sig-slsl-invalid))
index 6518dae..ce2e42c 100755 (executable)
   '(500 9000 32000 80000))
 
 (define (dearmor source-name sink-name)
-  (letfd ((source (open source-name (logior O_RDONLY O_BINARY)))
-           (sink (open sink-name (logior O_WRONLY O_CREAT O_BINARY) #o600)))
-          (call-with-fds `(,@GPG --dearmor) source sink STDERR_FILENO)))
+  (pipe:do
+   (pipe:open source-name (logior O_RDONLY O_BINARY))
+   (pipe:spawn `(,@GPG --dearmor))
+   (pipe:write-to sink-name
+                 (logior O_WRONLY O_CREAT O_BINARY)
+                 #o600)))
 
 (for-each-p "Unpacking samples"
   (lambda (name)