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 2, or (at your
+ 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
#include "platform.h"
#include "gnunet_hello_lib.h"
-#define DEBUG 0
+#define DEBUG GNUNET_NO
+
+#define VERBOSE GNUNET_NO
+
static size_t
my_addr_gen (void *cls, size_t max, void *buf)
check_addr (void *cls,
const char *tname,
struct GNUNET_TIME_Absolute expiration,
- const void *addr, size_t addrlen)
+ const void *addr, uint16_t addrlen)
{
unsigned int *i = cls;
remove_some (void *cls,
const char *tname,
struct GNUNET_TIME_Absolute expiration,
- const void *addr, size_t addrlen)
+ const void *addr, uint16_t addrlen)
{
unsigned int *i = cls;
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
i = 0;
msg1 = GNUNET_HELLO_create (&publicKey, &my_addr_gen, &i);
GNUNET_assert (msg1 != NULL);
GNUNET_assert (0 < GNUNET_HELLO_size (msg1));
+#if VERBOSE
fprintf (stderr, "Testing address iteration (empty set)...\n");
+#endif
GNUNET_assert (NULL ==
GNUNET_HELLO_iterate_addresses (msg1,
GNUNET_NO, &check_addr, &i));
+#if VERBOSE
fprintf (stderr, "Testing HELLO creation (with one address)...\n");
+#endif
i = 1;
msg2 = GNUNET_HELLO_create (&publicKey, &my_addr_gen, &i);
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
i = 1;
GNUNET_assert (NULL ==
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_free (msg1);
+#if VERBOSE
fprintf (stderr, "Testing HELLO creation (with two addresses)...\n");
+#endif
i = 2;
msg3 = GNUNET_HELLO_create (&publicKey, &my_addr_gen, &i);
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
i = 3;
GNUNET_assert (NULL ==
GNUNET_HELLO_iterate_addresses (msg3,
GNUNET_NO, &check_addr, &i));
GNUNET_assert (i == 0);
+#if VERBOSE
fprintf (stderr, "Testing HELLO merge...\n");
+#endif
msg1 = GNUNET_HELLO_merge (msg2, msg3);
GNUNET_assert (GNUNET_HELLO_size (msg1) == GNUNET_HELLO_size (msg3));
GNUNET_assert (i == 0);
GNUNET_free (msg1);
+#if VERBOSE
fprintf (stderr, "Testing address iteration to copy HELLO...\n");
+#endif
i = 2;
msg1 = GNUNET_HELLO_iterate_addresses (msg3, GNUNET_YES, &remove_some, &i);
GNUNET_assert (msg1 != NULL);
GNUNET_assert (i == 0);
GNUNET_free (msg1);
+#if VERBOSE
fprintf (stderr, "Testing delta address iteration...\n");
+#endif
i = 2;
GNUNET_HELLO_iterate_new_addresses (msg3,
msg2, startup_time, &check_addr, &i);