Use separate test module for dns-cert.c.
authorWerner Koch <wk@gnupg.org>
Mon, 28 Nov 2011 17:11:59 +0000 (18:11 +0100)
committerWerner Koch <wk@gnupg.org>
Wed, 30 Nov 2011 16:34:49 +0000 (17:34 +0100)
* dns-cert.c (get_dns_cert): Factor test code out to ...
* t-dns-cert.c: new file.

common/ChangeLog
common/Makefile.am
common/dns-cert.c
common/dns-cert.h
common/t-dns-cert.c [new file with mode: 0644]

index 54435f4..dd7ef53 100644 (file)
@@ -1,3 +1,8 @@
+2011-11-28  Werner Koch  <wk@g10code.com>
+
+       * dns-cert.c (get_dns_cert): Factor test code out to ...
+       * t-dns-cert.c: new file.
+
 2011-10-24  Werner Koch  <wk@g10code.com>
 
        * dotlock.h, dotlock.c: Add alternative to allow distribution of
index 555d088..7821e04 100644 (file)
@@ -162,7 +162,7 @@ if HAVE_W32_SYSTEM
 jnlib_tests += t-w32-reg
 endif
 module_tests = t-convert t-percent t-gettime t-sysutils t-sexputil \
-              t-session-env t-openpgp-oid t-ssh-utils
+              t-session-env t-openpgp-oid t-ssh-utils t-dns-cert
 if !HAVE_W32CE_SYSTEM
 module_tests += t-exechelp
 endif
@@ -196,3 +196,4 @@ t_exechelp_LDADD = $(t_common_ldadd)
 t_session_env_LDADD = $(t_common_ldadd)
 t_openpgp_oid_LDADD = $(t_common_ldadd)
 t_ssh_utils_LDADD = $(t_common_ldadd)
+t_dns_cert_LDADD = $(t_common_ldadd) $(DNSLIBS)
index 888ffb7..db1c7be 100644 (file)
 #define T_CERT 37
 #endif
 
-/* ADNS has no support for CERT yes. */
+/* ADNS has no support for CERT yet. */
 #define my_adns_r_cert 37
 
 
 
 /* Returns -1 on error, 0 for no answer, 1 for PGP provided and 2 for
-   IPGP provided.  Note that this fucntion retruns the first CERT
+   IPGP provided.  Note that this function retruns the first CERT
    found with a supported type; it is expected that only one CERT
    record is used. */
 int
@@ -289,61 +289,3 @@ get_dns_cert (const char *name, size_t max_size, IOBUF *iobuf,
   return -1;
 #endif
 }
-
-
-
-/* Test with simon.josefsson.org */
-
-#ifdef TEST
-int
-main(int argc,char *argv[])
-{
-  unsigned char *fpr;
-  size_t fpr_len;
-  char *url;
-  int rc;
-  IOBUF iobuf;
-
-  if(argc!=2)
-    {
-      printf("cert-test [name]\n");
-      return 1;
-    }
-
-  printf("CERT lookup on %s\n",argv[1]);
-
-  rc=get_dns_cert (argv[1],16384,&iobuf,&fpr,&fpr_len,&url);
-  if(rc==-1)
-    printf("error\n");
-  else if(rc==0)
-    printf("no answer\n");
-  else if(rc==1)
-    {
-      printf("key found: %d bytes\n",(int)iobuf_get_temp_length(iobuf));
-      iobuf_close(iobuf);
-    }
-  else if(rc==2)
-    {
-      if(fpr)
-       {
-         size_t i;
-         printf("Fingerprint found (%d bytes): ",(int)fpr_len);
-         for(i=0;i<fpr_len;i++)
-           printf("%02X",fpr[i]);
-         printf("\n");
-       }
-      else
-       printf("No fingerprint found\n");
-
-      if(url)
-       printf("URL found: %s\n",url);
-      else
-       printf("No URL found\n");
-
-      xfree(fpr);
-      xfree(url);
-    }
-
-  return 0;
-}
-#endif /* TEST */
index 8275339..ebfeec8 100644 (file)
@@ -19,7 +19,7 @@
 #ifndef GNUPG_COMMON_DNS_CERT_H
 #define GNUPG_COMMON_DNS_CERT_H
 
-int get_dns_cert (const char *name, size_t max_size, IOBUF *iobuf,
+int get_dns_cert (const char *name, size_t max_size, iobuf_t *iobuf,
                   unsigned char **fpr, size_t *fpr_len, char **url);
 
 
diff --git a/common/t-dns-cert.c b/common/t-dns-cert.c
new file mode 100644 (file)
index 0000000..a2b14f2
--- /dev/null
@@ -0,0 +1,93 @@
+/* t-dns-cert.c - Module test for dns-cert.c
+ * Copyright (C) 2011 Free Software Foundation, Inc.
+ *
+ * This file is part of GnuPG.
+ *
+ * GnuPG 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 3 of the License, or
+ * (at your option) any later version.
+ *
+ * GnuPG 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, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <config.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <assert.h>
+
+#include "util.h"
+#include "iobuf.h"
+#include "dns-cert.h"
+
+
+int
+main (int argc, char **argv)
+{
+  unsigned char *fpr;
+  size_t fpr_len;
+  char *url;
+  int rc;
+  iobuf_t iobuf;
+  char const *name;
+
+  if (argc)
+    {
+      argc--;
+      argv++;
+    }
+
+  if (!argc)
+    name = "simon.josefsson.org";
+  else if (argc == 1)
+    name = *argv;
+  else
+    {
+      fputs ("usage: t-dns-cert [name]\n", stderr);
+      return 1;
+    }
+
+  printf ("CERT lookup on `%s'\n", name);
+
+  rc = get_dns_cert (name, 16384, &iobuf, &fpr, &fpr_len, &url);
+  if (rc == -1)
+    fputs ("lookup result: error\n", stdout);
+  else if (!rc)
+    fputs ("lookup result: no answer\n", stdout);
+  else if (rc == 1)
+    {
+      printf ("lookup result: %d bytes\n",
+              (int)iobuf_get_temp_length(iobuf));
+      iobuf_close (iobuf);
+    }
+  else if (rc == 2)
+    {
+      if (fpr)
+       {
+         int i;
+
+         printf ("Fingerprint found (%d bytes): ", (int)fpr_len);
+         for (i = 0; i < fpr_len; i++)
+           printf ("%02X", fpr[i]);
+         putchar ('\n');
+       }
+      else
+       printf ("No fingerprint found\n");
+
+      if (url)
+       printf ("URL found: %s\n", url);
+      else
+       printf ("No URL found\n");
+
+      xfree (fpr);
+      xfree (url);
+    }
+
+  return 0;
+}