From 4d13edf008c6d1c325331d4a849c3349ccba6ec0 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Wed, 22 Feb 2012 10:15:02 +0000 Subject: [PATCH] -initial testcase --- src/tun/Makefile.am | 14 +++++++++++ src/tun/test_tun.c | 59 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 73 insertions(+) create mode 100644 src/tun/test_tun.c diff --git a/src/tun/Makefile.am b/src/tun/Makefile.am index bfc1135d8..31de64667 100644 --- a/src/tun/Makefile.am +++ b/src/tun/Makefile.am @@ -18,3 +18,17 @@ libgnunettun_la_LIBADD = \ libgnunettun_la_LDFLAGS = \ $(GN_LIB_LDFLAGS) + +check_PROGRAMS = \ + test_tun + + +if ENABLE_TEST_RUN +TESTS = $(check_PROGRAMS) +endif + +test_tun_SOURCES = \ + test_tun.c +test_tun_LDADD = \ + $(top_builddir)/src/util/libgnunetutil.la \ + $(top_builddir)/src/tun/libgnunettun.la diff --git a/src/tun/test_tun.c b/src/tun/test_tun.c new file mode 100644 index 000000000..0177ea462 --- /dev/null +++ b/src/tun/test_tun.c @@ -0,0 +1,59 @@ +/* + This file is part of GNUnet. + (C) 2010, 2011, 2012 Christian Grothoff + + 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. +*/ + +/** + * @file tun/test_tun.c + * @brief test for tun.c + * @author Christian Grothoff + */ +#include "platform.h" +#include "gnunet_tun_lib.h" + +static void +test_udp (size_t pll) +{ + struct GNUNET_TUN_IPv4Header ip; + struct GNUNET_TUN_UdpHeader udp; + char payload[pll]; + struct in_addr src; + struct in_addr dst; + + inet_pton (AF_INET, "1.2.3.4", &src); + inet_pton (AF_INET, "122.2.3.5", &dst); + memset (payload, 42, sizeof (payload)); + GNUNET_TUN_initialize_ipv4_header (&ip, + IPPROTO_UDP, + pll + sizeof (udp), + &src, + &dst); + GNUNET_TUN_calculate_udp4_checksum (&ip, + &udp, + payload, + pll); + fprintf (stderr, "CRC: %u\n", + ntohs (udp.crc)); +} + +int main (int argc, + char **argv) +{ + test_udp (4); + return 0; +} -- 2.25.1