-testcase and bugfix for hexcoder
authorChristian Grothoff <christian@grothoff.org>
Sat, 7 Jun 2014 11:36:06 +0000 (11:36 +0000)
committerChristian Grothoff <christian@grothoff.org>
Sat, 7 Jun 2014 11:36:06 +0000 (11:36 +0000)
src/dns/Makefile.am
src/dns/dnsparser.c
src/dns/test_hexcoder.c [new file with mode: 0644]

index 0ef1623f9f01759595e92c6dd240c0ee06c788ad..f8645305da5280259805d1c453d73bf6f372ffad 100644 (file)
@@ -37,13 +37,16 @@ noinst_PROGRAMS = \
   gnunet-dns-monitor gnunet-dns-redirector
 
 plugin_LTLIBRARIES = \
-  libgnunet_plugin_block_dns.la 
+  libgnunet_plugin_block_dns.la
 
 if LINUX
 check_SCRIPTS = \
  test_gnunet_dns.sh
 endif
 
+check_PROGRAMS = \
+ test_hexcoder
+
 gnunet_helper_dns_SOURCES = \
  gnunet-helper-dns.c
 
@@ -71,7 +74,7 @@ gnunet_dns_redirector_DEPENDENCIES = \
   libgnunetdns.la
 
 gnunet_service_dns_SOURCES = \
- gnunet-service-dns.c 
+ gnunet-service-dns.c
 gnunet_service_dns_LDADD = \
   $(top_builddir)/src/dns/libgnunetdnsstub.la \
   $(top_builddir)/src/tun/libgnunettun.la \
@@ -82,7 +85,7 @@ gnunet_service_dns_DEPENDENCIES = \
   libgnunetdnsstub.la
 
 libgnunetdnsparser_la_SOURCES = \
- dnsparser.c 
+ dnsparser.c
 libgnunetdnsparser_la_LIBADD = \
  $(top_builddir)/src/util/libgnunetutil.la $(XLIB) \
   -lidn
@@ -91,7 +94,7 @@ libgnunetdnsparser_la_LDFLAGS = \
   -version-info 1:0:1
 
 libgnunetdnsstub_la_SOURCES = \
- dnsstub.c 
+ dnsstub.c
 libgnunetdnsstub_la_LIBADD = \
  $(top_builddir)/src/util/libgnunetutil.la $(XLIB)
 libgnunetdnsstub_la_LDFLAGS = \
@@ -120,4 +123,15 @@ TESTS = $(check_PROGRAMS)  $(check_SCRIPTS)
 endif
 
 EXTRA_DIST = \
-  $(check_SCRIPTS) 
+  $(check_SCRIPTS)
+
+
+test_hexcoder_SOURCES = \
+ test_hexcoder.c
+test_hexcoder_LDADD = \
+ libgnunetdnsparser.la \
+ $(top_builddir)/src/util/libgnunetutil.la
+test_hexcoder_DEPENDENCIES = \
+ libgnunetdnsparser.la \
+ $(top_builddir)/src/util/libgnunetutil.la
+
index 2be34fc15fd0f6f250519a6023fd5b8348ab9543..11f27a244c5d25aab166a1d7dedf084571602277 100644 (file)
@@ -1249,7 +1249,7 @@ GNUNET_DNSPARSER_bin_to_hex (const void *data,
   ret = GNUNET_malloc (data_size * 2 + 1);
   for (off = 0; off < data_size; off++)
     sprintf (&ret[off * 2],
-             "%x",
+             "%02x",
              idata[off]);
   return ret;
 }
diff --git a/src/dns/test_hexcoder.c b/src/dns/test_hexcoder.c
new file mode 100644 (file)
index 0000000..5c1191a
--- /dev/null
@@ -0,0 +1,56 @@
+/*
+     This file is part of GNUnet.
+     (C) 2014 Christian Grothoff (and other contributing authors)
+
+     GNUnet 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, or (at your
+     option) any later version.
+
+     GNUnet 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 GNUnet; see the file COPYING.  If not, write to the
+     Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+     Boston, MA 02111-1307, USA.
+
+*/
+/**
+ * @author Christian Grothoff
+ * @file dns/test_hexcoder.c
+ * @brief test for #GNUNET_DNSPARSER_hex_to_bin() and
+ *                 #GNUNET_DNSPARSER_bin_to_hex()
+ */
+#include "platform.h"
+#include "gnunet_util_lib.h"
+#include "gnunet_dnsparser_lib.h"
+
+#define TESTSTRING "Hello World!"
+
+
+int
+main (int argc,
+      char *argv[])
+{
+  char buf[strlen (TESTSTRING)  + 1];
+  char *ret;
+
+  GNUNET_log_setup ("test-hexcoder", "WARNING", NULL);
+  ret = GNUNET_DNSPARSER_bin_to_hex (TESTSTRING,
+                                     strlen (TESTSTRING) + 1);
+  GNUNET_assert (NULL != ret);
+  GNUNET_assert (sizeof (buf) ==
+                 GNUNET_DNSPARSER_hex_to_bin (ret,
+                                              buf));
+  GNUNET_assert (0 == memcmp (TESTSTRING,
+                              buf,
+                              sizeof (buf)));
+  GNUNET_free (ret);
+  return 0;
+}
+
+
+/* end of test_hexcoder.c */