-only trigger check config if we actually need it
[oweals/gnunet.git] / src / hello / test_hello.c
index c9bf967916bf5b0521aa7fded22d93a0f82de083..6d824ef81f517015f086327336fc3345851b7240 100644 (file)
@@ -1,6 +1,6 @@
 /*
      This file is part of GNUnet
-     (C) 2009 Christian Grothoff (and other contributing authors)
+     Copyright (C) 2009, 2015 GNUnet e.V.
 
      GNUnet is free software; you can redistribute it and/or modify
      it under the terms of the GNU General Public License as published
@@ -14,8 +14,8 @@
 
      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.
+     Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+     Boston, MA 02110-1301, USA.
 */
 /**
  * @file hello/test_hello.c
 #include "platform.h"
 #include "gnunet_hello_lib.h"
 
-#define DEBUG GNUNET_NO
 
-#define VERBOSE GNUNET_NO
-
-
-static size_t
-my_addr_gen (void *cls, size_t max, void *buf)
+/**
+ *
+ *
+ * @param cls
+ * @param max
+ * @param buf
+ * @return
+ */
+static ssize_t
+my_addr_gen (void *cls,
+             size_t max,
+             void *buf)
 {
   unsigned int *i = cls;
   size_t ret;
+  struct GNUNET_HELLO_Address address;
 
-#if DEBUG
-  fprintf (stderr, "DEBUG: my_addr_gen called with i = %d\n", *i);
-#endif
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+             "DEBUG: my_addr_gen called with i = %d\n",
+              *i);
   if (0 == *i)
-    return 0;
-  ret =
-      GNUNET_HELLO_add_address ("test", GNUNET_TIME_absolute_get (),
-                                "address_information", *i, buf, max);
+    return GNUNET_SYSERR;
+  memset (&address.peer, 0, sizeof (struct GNUNET_PeerIdentity));
+  address.address = "address_information";
+  address.transport_name = "test";
+  address.address_length = *i;
+  ret = GNUNET_HELLO_add_address (&address,
+                                  GNUNET_TIME_absolute_get (),
+                                  buf,
+                                  max);
   (*i)--;
   return ret;
 }
 
 
+/**
+ *
+ *
+ * @param cls
+ * @param address
+ * @param expiration
+ * @return
+ */
 static int
-check_addr (void *cls, const char *tname,
-            struct GNUNET_TIME_Absolute expiration, const void *addr,
-            uint16_t addrlen)
+check_addr (void *cls,
+            const struct GNUNET_HELLO_Address *address,
+            struct GNUNET_TIME_Absolute expiration)
 {
   unsigned int *i = cls;
 
-#if DEBUG
-  fprintf (stderr, "DEBUG: check_addr called with i = %d and addrlen = %u\n",
-           *i, addrlen);
-#endif
-  GNUNET_assert (addrlen > 0);
-  GNUNET_assert (*i & (1 << (addrlen - 1)));
-  *i -= (1 << (addrlen - 1));
-  GNUNET_assert (0 == strncmp ("address_information", addr, addrlen));
-  GNUNET_assert (0 == strcmp ("test", tname));
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+              "DEBUG: check_addr called with i = %d and addrlen = %u\n",
+              *i,
+              (unsigned int) address->address_length);
+  GNUNET_assert (address->address_length > 0);
+  GNUNET_assert (*i & (1 << (address->address_length - 1)));
+  *i -= (1 << (address->address_length - 1));
+  GNUNET_assert (0 ==
+                 strncmp ("address_information",
+                          address->address,
+                          address->address_length));
+  GNUNET_assert (0 == strcmp ("test",
+                              address->transport_name));
   return GNUNET_OK;
 }
 
 
+/**
+ *
+ *
+ * @param cls
+ * @param address
+ * @param expiration
+ * @return
+ */
 static int
-remove_some (void *cls, const char *tname,
-             struct GNUNET_TIME_Absolute expiration, const void *addr,
-             uint16_t addrlen)
+remove_some (void *cls,
+             const struct GNUNET_HELLO_Address *address,
+             struct GNUNET_TIME_Absolute expiration)
 {
   unsigned int *i = cls;
 
-#if DEBUG
-  fprintf (stderr, "DEBUG: remove_some called with i = %d and addrlen = %u\n",
-           *i, addrlen);
-#endif
-  GNUNET_assert (addrlen > 0);
-  if (*i & (1 << (addrlen - 1)))
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+          "DEBUG: remove_some called with i = %d and addrlen = %u\n",
+           *i,
+              (unsigned int) address->address_length);
+  GNUNET_assert (address->address_length > 0);
+  if (*i & (1 << (address->address_length - 1)))
   {
-    *i -= (1 << (addrlen - 1));
+    *i -= (1 << (address->address_length - 1));
     return GNUNET_NO;
   }
   return GNUNET_OK;
@@ -91,110 +123,131 @@ remove_some (void *cls, const char *tname,
 
 
 int
-main (int argc, char *argv[])
+main (int argc,
+      char *argv[])
 {
   struct GNUNET_HELLO_Message *msg1;
   struct GNUNET_HELLO_Message *msg2;
   struct GNUNET_HELLO_Message *msg3;
-  struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded publicKey;
-  struct GNUNET_CRYPTO_RsaPublicKeyBinaryEncoded pk;
+  struct GNUNET_CRYPTO_EddsaPublicKey publicKey;
+  struct GNUNET_PeerIdentity pid;
   struct GNUNET_TIME_Absolute startup_time;
   unsigned int i;
 
-  GNUNET_log_setup ("test-hello", "DEBUG", NULL);
+  GNUNET_log_setup ("test-hello",
+                    "DEBUG",
+                    NULL);
   startup_time = GNUNET_TIME_absolute_get ();
   memset (&publicKey, 42, sizeof (publicKey));
-#if VERBOSE
-  fprintf (stderr, "Testing HELLO creation (without addresses)...\n");
-#endif
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+             "Testing HELLO creation (without addresses)...\n");
   i = 0;
-  msg1 = GNUNET_HELLO_create (&publicKey, &my_addr_gen, &i);
+  msg1 = GNUNET_HELLO_create (&publicKey,
+                              &my_addr_gen,
+                              &i,
+                              GNUNET_NO);
   GNUNET_assert (msg1 != NULL);
   GNUNET_assert (0 < GNUNET_HELLO_size (msg1));
 
-#if VERBOSE
-  fprintf (stderr, "Testing address iteration (empty set)...\n");
-#endif
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+             "Testing address iteration (empty set)...\n");
   GNUNET_assert (NULL ==
-                 GNUNET_HELLO_iterate_addresses (msg1, GNUNET_NO, &check_addr,
+                 GNUNET_HELLO_iterate_addresses (msg1,
+                                                 GNUNET_NO,
+                                                 &check_addr,
                                                  &i));
-
-#if VERBOSE
-  fprintf (stderr, "Testing HELLO creation (with one address)...\n");
-#endif
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+          "Testing HELLO creation (with one address)...\n");
   i = 1;
-  msg2 = GNUNET_HELLO_create (&publicKey, &my_addr_gen, &i);
+  msg2 = GNUNET_HELLO_create (&publicKey,
+                              &my_addr_gen,
+                              &i,
+                              GNUNET_NO);
   GNUNET_assert (msg2 != NULL);
   GNUNET_assert (GNUNET_HELLO_size (msg1) < GNUNET_HELLO_size (msg2));
 
-#if VERBOSE
-  fprintf (stderr, "Testing address iteration (one address)...\n");
-#endif
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+          "Testing address iteration (one address)...\n");
   i = 1;
   GNUNET_assert (NULL ==
-                 GNUNET_HELLO_iterate_addresses (msg2, GNUNET_NO, &check_addr,
+                 GNUNET_HELLO_iterate_addresses (msg2,
+                                                 GNUNET_NO,
+                                                 &check_addr,
                                                  &i));
   GNUNET_assert (i == 0);
 
-#if VERBOSE
-  fprintf (stderr, "Testing get_key from HELLO...\n");
-#endif
-  GNUNET_assert (GNUNET_OK == GNUNET_HELLO_get_key (msg2, &pk));
-  GNUNET_assert (0 == memcmp (&publicKey, &pk, sizeof (pk)));
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+          "Testing get_key from HELLO...\n");
+  GNUNET_assert (GNUNET_OK == GNUNET_HELLO_get_id (msg2, &pid));
+  GNUNET_assert (0 == memcmp (&publicKey,
+                              &pid.public_key,
+                              sizeof (struct GNUNET_CRYPTO_EddsaPublicKey)));
   GNUNET_free (msg1);
 
-#if VERBOSE
-  fprintf (stderr, "Testing HELLO creation (with two addresses)...\n");
-#endif
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+          "Testing HELLO creation (with two addresses)...\n");
   i = 2;
-  msg3 = GNUNET_HELLO_create (&publicKey, &my_addr_gen, &i);
+  msg3 = GNUNET_HELLO_create (&publicKey,
+                              &my_addr_gen,
+                              &i,
+                              GNUNET_NO);
   GNUNET_assert (msg3 != NULL);
   GNUNET_assert (GNUNET_HELLO_size (msg2) < GNUNET_HELLO_size (msg3));
 
-#if VERBOSE
-  fprintf (stderr, "Testing address iteration (two addresses)...\n");
-#endif
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+          "Testing address iteration (two addresses)...\n");
   i = 3;
   GNUNET_assert (NULL ==
-                 GNUNET_HELLO_iterate_addresses (msg3, GNUNET_NO, &check_addr,
+                 GNUNET_HELLO_iterate_addresses (msg3,
+                                                 GNUNET_NO,
+                                                 &check_addr,
                                                  &i));
   GNUNET_assert (i == 0);
 
-#if VERBOSE
-  fprintf (stderr, "Testing HELLO merge...\n");
-#endif
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+          "Testing HELLO merge...\n");
   msg1 = GNUNET_HELLO_merge (msg2, msg3);
   GNUNET_assert (GNUNET_HELLO_size (msg1) == GNUNET_HELLO_size (msg3));
 
   i = 3;
   GNUNET_assert (NULL ==
-                 GNUNET_HELLO_iterate_addresses (msg1, GNUNET_NO, &check_addr,
+                 GNUNET_HELLO_iterate_addresses (msg1,
+                                                 GNUNET_NO,
+                                                 &check_addr,
                                                  &i));
   GNUNET_assert (i == 0);
   GNUNET_free (msg1);
 
-#if VERBOSE
-  fprintf (stderr, "Testing address iteration to copy HELLO...\n");
-#endif
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+          "Testing address iteration to copy HELLO...\n");
   i = 2;
-  msg1 = GNUNET_HELLO_iterate_addresses (msg3, GNUNET_YES, &remove_some, &i);
+  msg1 = GNUNET_HELLO_iterate_addresses (msg3,
+                                         GNUNET_YES,
+                                         &remove_some,
+                                         &i);
   GNUNET_assert (msg1 != NULL);
   GNUNET_assert (i == 0);
   i = 1;
   GNUNET_assert (NULL ==
-                 GNUNET_HELLO_iterate_addresses (msg1, GNUNET_NO, &check_addr,
+                 GNUNET_HELLO_iterate_addresses (msg1,
+                                                 GNUNET_NO,
+                                                 &check_addr,
                                                  &i));
   GNUNET_assert (i == 0);
   GNUNET_free (msg1);
 
-#if VERBOSE
-  fprintf (stderr, "Testing delta address iteration...\n");
-#endif
+  GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+          "Testing delta address iteration...\n");
   i = 2;
-  GNUNET_HELLO_iterate_new_addresses (msg3, msg2, startup_time, &check_addr,
+  GNUNET_HELLO_iterate_new_addresses (msg3,
+                                      msg2,
+                                      startup_time,
+                                      &check_addr,
                                       &i);
   GNUNET_assert (i == 0);
   GNUNET_free (msg2);
   GNUNET_free (msg3);
   return 0;                     /* testcase passed */
 }
+
+/* end of test_hello.c */