don't free element that is stack-allocated now
[oweals/gnunet.git] / src / set / test_set_intersection_result_full.c
index 9c2f64bc1c87fbb8d5b9e1ab977a632e5219fbb5..a36aae4d5b8a671b0591903e4a59303841c12c50 100644 (file)
@@ -56,10 +56,14 @@ static struct GNUNET_SET_OperationHandle *oh2;
 static void
 result_cb_set1 (void *cls,
                 const struct GNUNET_SET_Element *element,
+                uint64_t current_size,
                 enum GNUNET_SET_Status status)
 {
   static int count;
 
+  GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+              "Processing result set 1 (%d)\n",
+              status);
   switch (status)
   {
   case GNUNET_SET_STATUS_OK:
@@ -74,6 +78,8 @@ result_cb_set1 (void *cls,
     GNUNET_assert (1 == count);
     GNUNET_SET_destroy (set1);
     set1 = NULL;
+    if (NULL == set2)
+      GNUNET_SCHEDULER_shutdown ();
     break;
   default:
     GNUNET_assert (0);
@@ -84,10 +90,14 @@ result_cb_set1 (void *cls,
 static void
 result_cb_set2 (void *cls,
                 const struct GNUNET_SET_Element *element,
+                uint64_t current_size,
                 enum GNUNET_SET_Status status)
 {
   static int count;
 
+  GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+              "Processing result set 2 (%d)\n",
+              status);
   switch (status)
   {
   case GNUNET_SET_STATUS_OK:
@@ -102,6 +112,8 @@ result_cb_set2 (void *cls,
     GNUNET_assert (1 == count);
     GNUNET_SET_destroy (set2);
     set2 = NULL;
+    if (NULL == set1)
+      GNUNET_SCHEDULER_shutdown ();
     break;
   default:
     GNUNET_assert (0);
@@ -115,14 +127,17 @@ listen_cb (void *cls,
            const struct GNUNET_MessageHeader *context_msg,
            struct GNUNET_SET_Request *request)
 {
+  GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+              "starting intersection by accepting and committing\n");
   GNUNET_assert (NULL != context_msg);
-  GNUNET_assert (ntohs (context_msg->type) == GNUNET_MESSAGE_TYPE_TEST);
+  GNUNET_assert (ntohs (context_msg->type) == GNUNET_MESSAGE_TYPE_DUMMY);
   GNUNET_SET_listen_cancel (listen_handle);
   listen_handle = NULL;
   oh2 = GNUNET_SET_accept (request,
-                          GNUNET_SET_RESULT_FULL,
-                          &result_cb_set2,
-                          NULL);
+                           GNUNET_SET_RESULT_FULL,
+                           (struct GNUNET_SET_Option[]) { 0 },
+                           &result_cb_set2,
+                           NULL);
   GNUNET_SET_commit (oh2,
                      set2);
 }
@@ -138,17 +153,21 @@ start (void *cls)
 {
   struct GNUNET_MessageHeader context_msg;
 
+  GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+              "starting listener\n");
   context_msg.size = htons (sizeof context_msg);
-  context_msg.type = htons (GNUNET_MESSAGE_TYPE_TEST);
+  context_msg.type = htons (GNUNET_MESSAGE_TYPE_DUMMY);
   listen_handle = GNUNET_SET_listen (config,
                                      GNUNET_SET_OPERATION_INTERSECTION,
                                      &app_id,
-                                     &listen_cb, NULL);
+                                     &listen_cb,
+                                     NULL);
   oh1 = GNUNET_SET_prepare (&local_id,
-                           &app_id,
-                           &context_msg,
-                           GNUNET_SET_RESULT_FULL,
-                           &result_cb_set1,
+                            &app_id,
+                            &context_msg,
+                            GNUNET_SET_RESULT_FULL,
+                            (struct GNUNET_SET_Option[]) { 0 },
+                            &result_cb_set1,
                             NULL);
   GNUNET_SET_commit (oh1,
                      set1);
@@ -170,13 +189,22 @@ init_set2 (void *cls)
   element.element_type = 0;
   element.data = "hello";
   element.size = strlen(element.data);
-  GNUNET_SET_add_element (set2, &element, NULL, NULL);
+  GNUNET_SET_add_element (set2,
+                          &element,
+                          NULL,
+                          NULL);
   element.data = "quux";
   element.size = strlen(element.data);
-  GNUNET_SET_add_element (set2, &element, NULL, NULL);
+  GNUNET_SET_add_element (set2,
+                          &element,
+                          NULL,
+                          NULL);
   element.data = "baz";
   element.size = strlen(element.data);
-  GNUNET_SET_add_element (set2, &element, &start, NULL);
+  GNUNET_SET_add_element (set2,
+                          &element,
+                          &start,
+                          NULL);
 }
 
 
@@ -188,13 +216,21 @@ init_set1 (void)
 {
   struct GNUNET_SET_Element element;
 
+  GNUNET_log (GNUNET_ERROR_TYPE_INFO,
+              "initializing set 1\n");
   element.element_type = 0;
   element.data = "hello";
   element.size = strlen(element.data);
-  GNUNET_SET_add_element (set1, &element, NULL, NULL);
+  GNUNET_SET_add_element (set1,
+                          &element,
+                          NULL,
+                          NULL);
   element.data = "bar";
   element.size = strlen(element.data);
-  GNUNET_SET_add_element (set1, &element, &init_set2, NULL);
+  GNUNET_SET_add_element (set1,
+                          &element,
+                          &init_set2,
+                          NULL);
 }
 
 
@@ -219,17 +255,27 @@ test_iter ()
   struct GNUNET_SET_Element element;
   struct GNUNET_SET_Handle *iter_set;
 
-  iter_set = GNUNET_SET_create (config, GNUNET_SET_OPERATION_INTERSECTION);
+  iter_set = GNUNET_SET_create (config,
+                                GNUNET_SET_OPERATION_INTERSECTION);
   element.element_type = 0;
   element.data = "hello";
   element.size = strlen(element.data);
-  GNUNET_SET_add_element (iter_set, &element, NULL, NULL);
+  GNUNET_SET_add_element (iter_set,
+                          &element,
+                          NULL,
+                          NULL);
   element.data = "bar";
   element.size = strlen(element.data);
-  GNUNET_SET_add_element (iter_set, &element, NULL, NULL);
+  GNUNET_SET_add_element (iter_set,
+                          &element,
+                          NULL,
+                          NULL);
   element.data = "quux";
   element.size = strlen(element.data);
-  GNUNET_SET_add_element (iter_set, &element, NULL, NULL);
+  GNUNET_SET_add_element (iter_set,
+                          &element,
+                          NULL,
+                          NULL);
   GNUNET_SET_iterate (iter_set,
                       &iter_cb,
                       iter_set);
@@ -307,8 +353,10 @@ run (void *cls,
      struct GNUNET_TESTING_Peer *peer)
 {
   config = cfg;
-  GNUNET_TESTING_peer_get_identity (peer, &local_id);
-  if (0) test_iter ();
+  GNUNET_TESTING_peer_get_identity (peer,
+                                    &local_id);
+  if (0)
+    test_iter ();
 
   tt = GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 5),
                                     &timeout_fail,
@@ -316,8 +364,10 @@ run (void *cls,
   GNUNET_SCHEDULER_add_shutdown (&do_shutdown,
                                  NULL);
 
-  set1 = GNUNET_SET_create (cfg, GNUNET_SET_OPERATION_INTERSECTION);
-  set2 = GNUNET_SET_create (cfg, GNUNET_SET_OPERATION_INTERSECTION);
+  set1 = GNUNET_SET_create (cfg,
+                            GNUNET_SET_OPERATION_INTERSECTION);
+  set2 = GNUNET_SET_create (cfg,
+                            GNUNET_SET_OPERATION_INTERSECTION);
   GNUNET_CRYPTO_hash_create_random (GNUNET_CRYPTO_QUALITY_WEAK,
                                     &app_id);
 
@@ -327,9 +377,10 @@ run (void *cls,
 
 
 int
-main (int argc, char **argv)
+main (int argc,
+      char **argv)
 {
-  if (0 != GNUNET_TESTING_peer_run ("test_set_api",
+  if (0 != GNUNET_TESTING_peer_run ("test_set_intersection_result_full",
                                     "test_set.conf",
                                     &run, NULL))
     return 1;