-initial testcase
authorChristian Grothoff <christian@grothoff.org>
Wed, 22 Feb 2012 10:15:02 +0000 (10:15 +0000)
committerChristian Grothoff <christian@grothoff.org>
Wed, 22 Feb 2012 10:15:02 +0000 (10:15 +0000)
src/tun/Makefile.am
src/tun/test_tun.c [new file with mode: 0644]

index bfc1135d8a53451bba15c299d28dd71bff7abe46..31de64667a8f265684537910c5a4913fd56089a2 100644 (file)
@@ -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 (file)
index 0000000..0177ea4
--- /dev/null
@@ -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;
+}