2003-04-27 Marcus Brinkmann <marcus@g10code.de>
authorMarcus Brinkmann <mb@g10code.com>
Sun, 27 Apr 2003 18:25:07 +0000 (18:25 +0000)
committerMarcus Brinkmann <mb@g10code.com>
Sun, 27 Apr 2003 18:25:07 +0000 (18:25 +0000)
* gpg/t-import.c (check_result): Really use FPR.
* gpgsm/t-import.c (check_result): Rewritten.

tests/ChangeLog
tests/gpg/t-import.c
tests/gpgsm/t-import.c

index 6a60abb..357c12f 100644 (file)
@@ -1,3 +1,8 @@
+2003-04-27  Marcus Brinkmann  <marcus@g10code.de>
+
+       * gpg/t-import.c (check_result): Really use FPR.
+       * gpgsm/t-import.c (check_result): Rewritten.
+
 2003-04-25  Marcus Brinkmann  <marcus@g10code.de>
 
        * gpg/t-import.c: Rewritten.
index 13d1f39..57bfcd1 100644 (file)
@@ -151,7 +151,7 @@ check_result (GpgmeImportResult result, char *fpr, int secret)
       fprintf (stderr, "Unexpected number of status reports\n");
       exit (1);
     }
-  if (strcmp ("ADAB7FCC1F4DE2616ECFA402AF82244F9CD9FD55", result->imports->fpr))
+  if (strcmp (fpr, result->imports->fpr))
     {
       fprintf (stderr, "Unexpected fingerprint %s\n",
               result->imports->fpr);
index 974cdd9..125e87f 100644 (file)
@@ -1,40 +1,44 @@
 /* t-import.c  - regression test
- *      Copyright (C) 2000 Werner Koch
- *      Copyright (C) 2001 g10 Code GmbH
- *
- * This file is part of GPGME.
- *
- * GPGME 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 2 of the License, or
- * (at your option) any later version.
- *
- * GPGME 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, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
- */
+   Copyright (C) 2000 Werner Koch (dd9jn)
+   Copyright (C) 2001, 2003 g10 Code GmbH
+
+   This file is part of GPGME.
+   GPGME 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 2 of the License, or
+   (at your option) any later version.
+   GPGME 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 GPGME; if not, write to the Free Software Foundation,
+   Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
-#include <stdio.h>
 #include <stdlib.h>
+#include <stdio.h>
 #include <string.h>
-#include <assert.h>
 #include <errno.h>
 
 #include <gpgme.h>
 
 
-#define fail_if_err(a) do { if(a) { int my_errno = errno; \
-            fprintf (stderr, "%s:%d: GpgmeError %s\n", \
-                 __FILE__, __LINE__, gpgme_strerror(a));   \
-            if ((a) == GPGME_File_Error)                       \
-                   fprintf (stderr, "\terrno=`%s'\n", strerror (my_errno)); \
-                   exit (1); }                               \
-                             } while(0)
+#define fail_if_err(err)                                       \
+  do                                                           \
+    {                                                          \
+      if (err)                                                 \
+        {                                                      \
+          fprintf (stderr, "%s:%d: GpgmeError %s\n",           \
+                   __FILE__, __LINE__, gpgme_strerror (err));   \
+          exit (1);                                            \
+        }                                                      \
+    }                                                          \
+  while (0)
+
+
 
 static char *
 make_filename (const char *fname)
@@ -44,7 +48,7 @@ make_filename (const char *fname)
 
   if (!srcdir)
     srcdir = ".";
-  buf = malloc (strlen(srcdir) + strlen(fname) + 2 );
+  buf = malloc (strlen(srcdir) + strlen(fname) + 2);
   if (!buf)
     {
       fprintf (stderr, "%s:%d: could not allocate string: %s\n",
@@ -57,16 +61,93 @@ make_filename (const char *fname)
   return buf;
 }
 
-static void
-print_op_info (GpgmeCtx c)
-{
-    char *s = gpgme_get_op_info (c, 0);
 
-    if (!s)
-        puts ("<!-- no operation info available -->");
-    else {
-        puts (s);
-        free (s);
+void
+check_result (GpgmeImportResult result, char *fpr, int total)
+{
+  if (result->considered != total)
+    {
+      fprintf (stderr, "Unexpected number of considered keys %i\n",
+              result->considered);
+      exit (1);
+    }
+  if (result->no_user_id != 0)
+    {
+      fprintf (stderr, "Unexpected number of user ids %i\n",
+              result->no_user_id);
+      exit (1);
+    }
+  if (result->imported != 0 && result->imported != 1)
+    {
+      fprintf (stderr, "Unexpected number of imported keys %i\n",
+              result->imported);
+      exit (1);
+    }
+  if (result->imported_rsa != 0)
+    {
+      fprintf (stderr, "Unexpected number of imported RSA keys %i\n",
+              result->imported_rsa);
+      exit (1);
+    }
+  if ((result->imported == 0 && result->unchanged != total)
+      || (result->imported == 1 && result->unchanged != total - 1))
+    {
+      fprintf (stderr, "Unexpected number of unchanged keys %i\n",
+              result->unchanged);
+      exit (1);
+    }
+  if (result->new_user_ids != 0)
+    {
+      fprintf (stderr, "Unexpected number of new user IDs %i\n",
+              result->new_user_ids);
+      exit (1);
+    }
+  if (result->new_sub_keys != 0)
+    {
+      fprintf (stderr, "Unexpected number of new sub keys %i\n",
+              result->new_sub_keys);
+      exit (1);
+    }
+  if (result->new_signatures != 0)
+    {
+      fprintf (stderr, "Unexpected number of new signatures %i\n",
+              result->new_signatures);
+      exit (1);
+    }
+  if (result->new_revocations != 0)
+    {
+      fprintf (stderr, "Unexpected number of new revocations %i\n",
+              result->new_revocations);
+      exit (1);
+    }
+  if (result->secret_read != 0)
+    {
+      fprintf (stderr, "Unexpected number of secret keys read %i\n",
+              result->secret_read);
+      exit (1);
+    }
+  if (result->secret_imported != 0)
+    {
+      fprintf (stderr, "Unexpected number of secret keys imported %i\n",
+              result->secret_imported);
+      exit (1);
+    }
+  if (result->secret_unchanged != 0)
+    {
+      fprintf (stderr, "Unexpected number of secret keys unchanged %i\n",
+              result->secret_unchanged);
+      exit (1);
+    }
+  if (result->not_imported != 0)
+    {
+      fprintf (stderr, "Unexpected number of secret keys not imported %i\n",
+              result->not_imported);
+      exit (1);
+    }
+  if (result->imports)
+    {
+      fprintf (stderr, "Unexpected number of status reports\n");
+      exit (1);
     }
 }
 
@@ -77,35 +158,36 @@ main (int argc, char **argv)
   GpgmeCtx ctx;
   GpgmeError err;
   GpgmeData in;
+  GpgmeImportResult result;
   const char *cert_1 = make_filename ("cert_dfn_pca01.der");
   const char *cert_2 = make_filename ("cert_dfn_pca15.der");
 
-  do
-    {
-      err = gpgme_new (&ctx);
-      fail_if_err (err);
-      gpgme_set_protocol (ctx, GPGME_PROTOCOL_CMS);
+  err = gpgme_engine_check_version (GPGME_PROTOCOL_CMS);
+  fail_if_err (err);
 
-      err = gpgme_data_new_from_file (&in, cert_1, 1);
-      fail_if_err (err);
+  err = gpgme_new (&ctx);
+  fail_if_err (err);
+  
+  gpgme_set_protocol (ctx, GPGME_PROTOCOL_CMS);
 
-      err = gpgme_op_import (ctx, in);
-      print_op_info (ctx);
-      fail_if_err (err);
+  err = gpgme_data_new_from_file (&in, cert_1, 1);
+  fail_if_err (err);
 
-      gpgme_data_release (in);
+  err = gpgme_op_import (ctx, in);
+  fail_if_err (err);
+  result = gpgme_op_import_result (ctx);
+  check_result (result, "DFA56FB5FC41E3A8921F77AD1622EEFD9152A5AD", 1);
+  gpgme_data_release (in);
 
-      err = gpgme_data_new_from_file (&in, cert_2, 1);
-      fail_if_err (err);
-    
-      err = gpgme_op_import (ctx, in);
-      print_op_info (ctx);
-      fail_if_err (err);
+  err = gpgme_data_new_from_file (&in, cert_2, 1);
+  fail_if_err (err);
 
-      gpgme_data_release (in);
-      gpgme_release (ctx);
-    }
-  while (argc > 1 && !strcmp (argv[1], "--loop"));
-   
+  err = gpgme_op_import (ctx, in);
+  fail_if_err (err);
+  result = gpgme_op_import_result (ctx);
+  check_result (result, "2C8F3C356AB761CB3674835B792CDA52937F9285", 2);
+  gpgme_data_release (in);
+
+  gpgme_release (ctx);
   return 0;
 }