From c2b7de53b4ea53e1c82b529e24ab80d9489743e7 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Sat, 7 Jun 2014 11:36:06 +0000 Subject: [PATCH] -testcase and bugfix for hexcoder --- src/dns/Makefile.am | 24 ++++++++++++++---- src/dns/dnsparser.c | 2 +- src/dns/test_hexcoder.c | 56 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 76 insertions(+), 6 deletions(-) create mode 100644 src/dns/test_hexcoder.c diff --git a/src/dns/Makefile.am b/src/dns/Makefile.am index 0ef1623f9..f8645305d 100644 --- a/src/dns/Makefile.am +++ b/src/dns/Makefile.am @@ -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 + diff --git a/src/dns/dnsparser.c b/src/dns/dnsparser.c index 2be34fc15..11f27a244 100644 --- a/src/dns/dnsparser.c +++ b/src/dns/dnsparser.c @@ -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 index 000000000..5c1191a3c --- /dev/null +++ b/src/dns/test_hexcoder.c @@ -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 */ -- 2.25.1