tests: Fix t-verify test for GnuPG < 2.2.7.
authorWerner Koch <wk@gnupg.org>
Thu, 19 Apr 2018 08:29:30 +0000 (10:29 +0200)
committerWerner Koch <wk@gnupg.org>
Thu, 19 Apr 2018 08:29:30 +0000 (10:29 +0200)
* tests/gpg/t-verify.c (check_result): Tweak for gnupg < 2.2.7.
--

The not yet releases 2.2.7-beta may print a full fingerprint in the
ERRSIG status.  This is compliant with the dscription but the new
t-verify test case did not took in account that older GnuPG versions
print only a keyid.

Fixes-commit: b99502274ae5efdf6df0d967900ec3d1e64373d7
GnUPG-bug-id: 3920
Signed-off-by: Werner Koch <wk@gnupg.org>
tests/gpg/t-verify.c

index 7c23406..fa0164a 100644 (file)
@@ -126,9 +126,15 @@ check_result (gpgme_verify_result_t result, int no_of_sigs, int skip_sigs,
     }
   if (strcmp (sig->fpr, fpr))
     {
-      fprintf (stderr, "%s:%i:sig-%d: Unexpected fingerprint: %s\n",
-              PGM, __LINE__, skip_sigs, sig->fpr);
-      exit (1);
+      if (strlen (sig->fpr) == 16 && strlen (fpr) == 40
+          && !strncmp (sig->fpr, fpr + 24, 16))
+        ; /* okay because gnupg < 2.2.6 only shows the keyid.  */
+      else
+        {
+          fprintf (stderr, "%s:%i:sig-%d: Unexpected fingerprint: %s\n",
+                   PGM, __LINE__, skip_sigs, sig->fpr);
+          exit (1);
+        }
     }
   if (gpgme_err_code (sig->status) != status)
     {