[svn] gpgme - r1391 - in trunk/tests: . gpg
svn author wk
cvs at cvs.gnupg.org
Tue Jul 7 16:17:39 CEST 2009
Author: wk
Date: 2009-07-07 16:17:39 +0200 (Tue, 07 Jul 2009)
New Revision: 1391
Added:
trunk/tests/run-export.c
trunk/tests/run-import.c
trunk/tests/run-keylist.c
Removed:
trunk/tests/gpg/pgp-export.c
trunk/tests/gpg/pgp-import.c
trunk/tests/gpg/pgp-keylist.c
Modified:
trunk/tests/ChangeLog
trunk/tests/Makefile.am
trunk/tests/gpg/Makefile.am
Log:
Move gpg test programs to the top test directory.
Modified: trunk/tests/ChangeLog
===================================================================
--- trunk/tests/ChangeLog 2009-07-07 12:39:39 UTC (rev 1390)
+++ trunk/tests/ChangeLog 2009-07-07 14:17:39 UTC (rev 1391)
@@ -1,3 +1,16 @@
+2009-07-07 Werner Koch <wk at g10code.com>
+
+ * gpg/pgp-keylist.c: Rename to ...
+ * run-keylist.c: ... this.
+ * gpg/pgp-import.c: Rename to ...
+ * run-import.c: ... this.
+ * gpg/pgp-export.c: Rename to ...
+ * run-export.c: ... this.
+ * run-support.h: New. Copied from gpg/t-support.h.
+ * gpg/Makefile.am (noinst_PROGRAMS): Remove them.
+ * Makefile.am (noinst_PROGRAMS): Add them.
+ (noinst_HEADERS): New.
+
2009-06-22 Marcus Brinkmann <marcus at g10code.de>
* gpg/t-support.h (passphrase_cb): Implement write() according to
Modified: trunk/tests/Makefile.am
===================================================================
--- trunk/tests/Makefile.am 2009-07-07 12:39:39 UTC (rev 1390)
+++ trunk/tests/Makefile.am 2009-07-07 14:17:39 UTC (rev 1391)
@@ -30,8 +30,11 @@
AM_CPPFLAGS = @GPG_ERROR_CFLAGS@
LDADD = ../src/libgpgme.la @GPG_ERROR_LIBS@
-noinst_PROGRAMS = $(TESTS)
+noinst_HEADERS = run-support.h
+noinst_PROGRAMS = $(TESTS) run-keylist run-export run-import
+
+
if RUN_GPG_TESTS
gpgtests = gpg
else
Modified: trunk/tests/gpg/Makefile.am
===================================================================
--- trunk/tests/gpg/Makefile.am 2009-07-07 12:39:39 UTC (rev 1390)
+++ trunk/tests/gpg/Makefile.am 2009-07-07 14:17:39 UTC (rev 1391)
@@ -50,8 +50,7 @@
t_thread1_LDADD = ../../src/libgpgme-pthread.la
# We don't run t-genkey in the test suite, because it takes too long
-# The other programs are used for debugging.
-noinst_PROGRAMS = $(TESTS) t-genkey pgp-keylist pgp-export pgp-import
+noinst_PROGRAMS = $(TESTS) t-genkey
mkdemodirs: mkdemodirs.in Makefile
sed -e 's,[@]GPG[@],$(GPG),g' < $(srcdir)/mkdemodirs.in > mkdemodirs
Deleted: trunk/tests/gpg/pgp-export.c
Deleted: trunk/tests/gpg/pgp-import.c
Deleted: trunk/tests/gpg/pgp-keylist.c
Copied: trunk/tests/run-export.c (from rev 1389, trunk/tests/gpg/pgp-export.c)
===================================================================
--- trunk/tests/run-export.c (rev 0)
+++ trunk/tests/run-export.c 2009-07-07 14:17:39 UTC (rev 1391)
@@ -0,0 +1,161 @@
+/* pgp-export.c - Helper to run an export command
+ Copyright (C) 2008, 2009 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 Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this program; if not, see <http://www.gnu.org/licenses/>.
+*/
+
+/* We need to include config.h so that we know whether we are building
+ with large file system (LFS) support. */
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#include <gpgme.h>
+
+#define PGM "run-export"
+
+#include "run-support.h"
+
+
+static int verbose;
+
+
+static int
+show_usage (int ex)
+{
+ fputs ("usage: " PGM " [options] USERIDS\n\n"
+ "Options:\n"
+ " --verbose run in verbose mode\n"
+ " --extern send keys to the keyserver (TAKE CARE!)\n"
+ , stderr);
+ exit (ex);
+}
+
+int
+main (int argc, char **argv)
+{
+ int last_argc = -1;
+ gpgme_error_t err;
+ gpgme_ctx_t ctx;
+ gpgme_key_t key;
+ gpgme_keylist_result_t result;
+ gpgme_key_t keyarray[100];
+ int keyidx = 0;
+ gpgme_data_t out;
+ gpgme_export_mode_t mode = 0;
+
+ if (argc)
+ { argc--; argv++; }
+
+ while (argc && last_argc != argc )
+ {
+ last_argc = argc;
+ if (!strcmp (*argv, "--"))
+ {
+ argc--; argv++;
+ break;
+ }
+ else if (!strcmp (*argv, "--help"))
+ show_usage (0);
+ else if (!strcmp (*argv, "--verbose"))
+ {
+ verbose = 1;
+ argc--; argv++;
+ }
+ else if (!strcmp (*argv, "--extern"))
+ {
+ mode |= GPGME_KEYLIST_MODE_EXTERN;
+ argc--; argv++;
+ }
+ else if (!strncmp (*argv, "--", 2))
+ show_usage (1);
+
+ }
+
+ if (!argc)
+ show_usage (1);
+
+ init_gpgme (GPGME_PROTOCOL_OpenPGP);
+
+ err = gpgme_new (&ctx);
+ fail_if_err (err);
+ gpgme_set_protocol (ctx, GPGME_PROTOCOL_OpenPGP);
+
+ /* Lookup the keys. */
+ err = gpgme_op_keylist_ext_start (ctx, (const char**)argv, 0, 0);
+ fail_if_err (err);
+
+ while (!(err = gpgme_op_keylist_next (ctx, &key)))
+ {
+ printf ("keyid: %s (fpr: %s)\n",
+ key->subkeys?nonnull (key->subkeys->keyid):"?",
+ key->subkeys?nonnull (key->subkeys->fpr):"?");
+
+ if (keyidx < DIM (keyarray)-1)
+ keyarray[keyidx++] = key;
+ else
+ {
+ fprintf (stderr, PGM": too many keys"
+ "- skipping this key\n");
+ gpgme_key_unref (key);
+ }
+ }
+ if (gpg_err_code (err) != GPG_ERR_EOF)
+ fail_if_err (err);
+ err = gpgme_op_keylist_end (ctx);
+ fail_if_err (err);
+ keyarray[keyidx] = NULL;
+
+ result = gpgme_op_keylist_result (ctx);
+ if (result->truncated)
+ {
+ fprintf (stderr, PGM ": key listing unexpectedly truncated\n");
+ exit (1);
+ }
+
+ /* Now for the actual export. */
+ if ((mode & GPGME_KEYLIST_MODE_EXTERN))
+ printf ("sending keys to keyserver\n");
+
+ err = gpgme_data_new (&out);
+ fail_if_err (err);
+
+ gpgme_set_armor (ctx, 1);
+ err = gpgme_op_export_keys (ctx, keyarray, mode,
+ (mode & GPGME_KEYLIST_MODE_EXTERN)? NULL:out);
+ fail_if_err (err);
+
+ fflush (NULL);
+ if (!(mode & GPGME_KEYLIST_MODE_EXTERN))
+ {
+ fputs ("Begin Result:\n", stdout);
+ print_data (out);
+ fputs ("End Result.\n", stdout);
+ }
+
+ /* Cleanup. */
+ gpgme_data_release (out);
+
+ for (keyidx=0; keyarray[keyidx]; keyidx++)
+ gpgme_key_unref (keyarray[keyidx]);
+
+ gpgme_release (ctx);
+ return 0;
+}
Property changes on: trunk/tests/run-export.c
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: trunk/tests/run-import.c (from rev 1389, trunk/tests/gpg/pgp-import.c)
===================================================================
--- trunk/tests/run-import.c (rev 0)
+++ trunk/tests/run-import.c 2009-07-07 14:17:39 UTC (rev 1391)
@@ -0,0 +1,129 @@
+/* pgp-import.c - Helper to run an import command
+ Copyright (C) 2008, 2009 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 Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this program; if not, see <http://www.gnu.org/licenses/>.
+*/
+
+/* We need to include config.h so that we know whether we are building
+ with large file system (LFS) support. */
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#include <gpgme.h>
+
+#define PGM "run-import"
+
+#include "run-support.h"
+
+
+static int verbose;
+
+
+static int
+show_usage (int ex)
+{
+ fputs ("usage: " PGM " [options] FILENAMEs\n\n"
+ "Options:\n"
+ " --verbose run in verbose mode\n"
+ " --url import from given URLs\n"
+ " -0 URLs are delimited by a nul\n"
+ , stderr);
+ exit (ex);
+}
+
+int
+main (int argc, char **argv)
+{
+ int last_argc = -1;
+ gpgme_error_t err;
+ gpgme_ctx_t ctx;
+ int url_mode = 0;
+ int nul_mode = 0;
+ gpgme_import_result_t impres;
+ gpgme_data_t data;
+
+ if (argc)
+ { argc--; argv++; }
+ while (argc && last_argc != argc )
+ {
+ last_argc = argc;
+ if (!strcmp (*argv, "--"))
+ {
+ argc--; argv++;
+ break;
+ }
+ else if (!strcmp (*argv, "--help"))
+ show_usage (0);
+ else if (!strcmp (*argv, "--verbose"))
+ {
+ verbose = 1;
+ argc--; argv++;
+ }
+ else if (!strcmp (*argv, "--url"))
+ {
+ url_mode = 1;
+ argc--; argv++;
+ }
+ else if (!strcmp (*argv, "-0"))
+ {
+ nul_mode = 1;
+ argc--; argv++;
+ }
+ else if (!strncmp (*argv, "--", 2))
+ show_usage (1);
+
+ }
+
+ if (!argc)
+ show_usage (1);
+
+ init_gpgme (GPGME_PROTOCOL_OpenPGP);
+
+ err = gpgme_new (&ctx);
+ fail_if_err (err);
+ gpgme_set_protocol (ctx, GPGME_PROTOCOL_OpenPGP);
+
+ for (; argc; argc--, argv++)
+ {
+ printf ("reading file `%s'\n", *argv);
+ err = gpgme_data_new_from_file (&data, *argv, 1);
+ fail_if_err (err);
+
+ if (url_mode)
+ gpgme_data_set_encoding (data, (nul_mode? GPGME_DATA_ENCODING_URL0
+ : GPGME_DATA_ENCODING_URL));
+
+ err = gpgme_op_import (ctx, data);
+ fail_if_err (err);
+ impres = gpgme_op_import_result (ctx);
+ if (!impres)
+ {
+ fprintf (stderr, PGM ": no import result returned\n");
+ exit (1);
+ }
+ print_import_result (impres);
+
+ gpgme_data_release (data);
+ }
+
+ gpgme_release (ctx);
+ return 0;
+}
Property changes on: trunk/tests/run-import.c
___________________________________________________________________
Name: svn:mergeinfo
+
Copied: trunk/tests/run-keylist.c (from rev 1389, trunk/tests/gpg/pgp-keylist.c)
===================================================================
--- trunk/tests/run-keylist.c (rev 0)
+++ trunk/tests/run-keylist.c 2009-07-07 14:17:39 UTC (rev 1391)
@@ -0,0 +1,223 @@
+/* run-keylist.c - Helper to show a key listing.
+ Copyright (C) 2008, 2009 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 Lesser General Public License as
+ published by the Free Software Foundation; either version 2.1 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this program; if not, see <http://www.gnu.org/licenses/>.
+*/
+
+/* We need to include config.h so that we know whether we are building
+ with large file system (LFS) support. */
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#include <gpgme.h>
+
+#define PGM "run-keylist"
+
+#include "run-support.h"
+
+
+static int verbose;
+
+
+static int
+show_usage (int ex)
+{
+ fputs ("usage: " PGM " [options] [USERID]\n\n"
+ "Options:\n"
+ " --verbose run in verbose mode\n"
+ " --local use GPGME_KEYLIST_MODE_LOCAL\n"
+ " --extern use GPGME_KEYLIST_MODE_EXTERN\n"
+ " --sigs use GPGME_KEYLIST_MODE_SIGS\n"
+ " --sig-notations use GPGME_KEYLIST_MODE_SIG_NOTATIONS\n"
+ " --ephemeral use GPGME_KEYLIST_MODE_EPHEMERAL\n"
+ " --validate use GPGME_KEYLIST_MODE_VALIDATE\n"
+ " --import import all keys\n"
+ , stderr);
+ exit (ex);
+}
+
+int
+main (int argc, char **argv)
+{
+ int last_argc = -1;
+ gpgme_error_t err;
+ gpgme_ctx_t ctx;
+ gpgme_keylist_mode_t mode = 0;
+ gpgme_key_t key;
+ gpgme_keylist_result_t result;
+ int import = 0;
+ gpgme_key_t keyarray[100];
+ int keyidx = 0;
+
+ if (argc)
+ { argc--; argv++; }
+
+ while (argc && last_argc != argc )
+ {
+ last_argc = argc;
+ if (!strcmp (*argv, "--"))
+ {
+ argc--; argv++;
+ break;
+ }
+ else if (!strcmp (*argv, "--help"))
+ show_usage (0);
+ else if (!strcmp (*argv, "--verbose"))
+ {
+ verbose = 1;
+ argc--; argv++;
+ }
+ else if (!strcmp (*argv, "--local"))
+ {
+ mode |= GPGME_KEYLIST_MODE_LOCAL;
+ argc--; argv++;
+ }
+ else if (!strcmp (*argv, "--extern"))
+ {
+ mode |= GPGME_KEYLIST_MODE_EXTERN;
+ argc--; argv++;
+ }
+ else if (!strcmp (*argv, "--sigs"))
+ {
+ mode |= GPGME_KEYLIST_MODE_SIGS;
+ argc--; argv++;
+ }
+ else if (!strcmp (*argv, "--sig-notations"))
+ {
+ mode |= GPGME_KEYLIST_MODE_SIG_NOTATIONS;
+ argc--; argv++;
+ }
+ else if (!strcmp (*argv, "--ephemeral"))
+ {
+ mode |= GPGME_KEYLIST_MODE_EPHEMERAL;
+ argc--; argv++;
+ }
+ else if (!strcmp (*argv, "--validate"))
+ {
+ mode |= GPGME_KEYLIST_MODE_VALIDATE;
+ argc--; argv++;
+ }
+ else if (!strcmp (*argv, "--import"))
+ {
+ import = 1;
+ argc--; argv++;
+ }
+ else if (!strncmp (*argv, "--", 2))
+ show_usage (1);
+
+ }
+
+ if (argc > 1)
+ show_usage (1);
+
+ init_gpgme (GPGME_PROTOCOL_OpenPGP);
+
+ err = gpgme_new (&ctx);
+ fail_if_err (err);
+ gpgme_set_protocol (ctx, GPGME_PROTOCOL_OpenPGP);
+
+ gpgme_set_keylist_mode (ctx, mode);
+
+ err = gpgme_op_keylist_start (ctx, argc? argv[0]:NULL, 0);
+ fail_if_err (err);
+
+ while (!(err = gpgme_op_keylist_next (ctx, &key)))
+ {
+ gpgme_user_id_t uid;
+ int nuids;
+
+
+ printf ("keyid : %s\n", key->subkeys?nonnull (key->subkeys->keyid):"?");
+ printf ("fpr : %s\n", key->subkeys?nonnull (key->subkeys->fpr):"?");
+ printf ("caps : %s%s%s%s\n",
+ key->can_encrypt? "e":"",
+ key->can_sign? "s":"",
+ key->can_certify? "c":"",
+ key->can_authenticate? "a":"");
+ printf ("flags :%s%s%s%s%s%s\n",
+ key->secret? " secret":"",
+ key->revoked? " revoked":"",
+ key->expired? " expired":"",
+ key->disabled? " disabled":"",
+ key->invalid? " invalid":"",
+ key->is_qualified? " qualifid":"");
+ for (nuids=0, uid=key->uids; uid; uid = uid->next, nuids++)
+ {
+ printf ("userid %d: %s\n", nuids, nonnull(uid->uid));
+ printf ("valid %d: %s\n", nuids,
+ uid->validity == GPGME_VALIDITY_UNKNOWN? "unknown":
+ uid->validity == GPGME_VALIDITY_UNDEFINED? "undefined":
+ uid->validity == GPGME_VALIDITY_NEVER? "never":
+ uid->validity == GPGME_VALIDITY_MARGINAL? "marginal":
+ uid->validity == GPGME_VALIDITY_FULL? "full":
+ uid->validity == GPGME_VALIDITY_ULTIMATE? "ultimate": "[?]");
+ }
+
+ putchar ('\n');
+
+ if (import)
+ {
+ if (keyidx < DIM (keyarray)-1)
+ keyarray[keyidx++] = key;
+ else
+ {
+ fprintf (stderr, PGM": too many keys in import mode"
+ "- skipping this key\n");
+ gpgme_key_unref (key);
+ }
+ }
+ else
+ gpgme_key_unref (key);
+ }
+ if (gpg_err_code (err) != GPG_ERR_EOF)
+ fail_if_err (err);
+ err = gpgme_op_keylist_end (ctx);
+ fail_if_err (err);
+ keyarray[keyidx] = NULL;
+
+ result = gpgme_op_keylist_result (ctx);
+ if (result->truncated)
+ {
+ fprintf (stderr, PGM ": key listing unexpectedly truncated\n");
+ exit (1);
+ }
+
+ if (import)
+ {
+ gpgme_import_result_t impres;
+
+ err = gpgme_op_import_keys (ctx, keyarray);
+ fail_if_err (err);
+ impres = gpgme_op_import_result (ctx);
+ if (!impres)
+ {
+ fprintf (stderr, PGM ": no import result returned\n");
+ exit (1);
+ }
+ print_import_result (impres);
+ }
+
+ for (keyidx=0; keyarray[keyidx]; keyidx++)
+ gpgme_key_unref (keyarray[keyidx]);
+
+ gpgme_release (ctx);
+ return 0;
+}
Property changes on: trunk/tests/run-keylist.c
___________________________________________________________________
Name: svn:mergeinfo
+
More information about the Gnupg-commits
mailing list