-remove async ecc key generation, not needed
[oweals/gnunet.git] / src / util / test_container_slist.c
index aa6749bf15fc83022f9ee05262dbac1cec6bd296..1b63d3dbce1213294bdbc6cbd0a6d414a5781bf3 100644 (file)
 #include "gnunet_common.h"
 #include "gnunet_container_lib.h"
 
-#define ABORT() { fprintf(stderr, "Error at %s:%d\n", __FILE__, __LINE__); return 1; }
-#define CHECK(c) { if (! (c)) ABORT(); }
-
 int
 main (int argc, char *argv[])
 {
   struct GNUNET_CONTAINER_SList *l;
-  struct GNUNET_CONTAINER_SList_Iterator *it;
+  struct GNUNET_CONTAINER_SList_Iterator it;
   unsigned int i;
+  int *ip;
   unsigned int j;
   size_t s;
   const void *p;
@@ -44,70 +42,118 @@ main (int argc, char *argv[])
   GNUNET_log_setup ("test-container-slist", "WARNING", NULL);
 
   l = GNUNET_CONTAINER_slist_create ();
-  CHECK (l != NULL);
-  CHECK (GNUNET_CONTAINER_slist_count (l) == 0);
+  GNUNET_assert (l != NULL);
+  GNUNET_assert (GNUNET_CONTAINER_slist_count (l) == 0);
 
   for (i = 0; i < 100; i++)
-    GNUNET_CONTAINER_slist_add (l,
-                                GNUNET_CONTAINER_SLIST_DISPOSITION_TRANSIENT,
+    GNUNET_CONTAINER_slist_add (l, GNUNET_CONTAINER_SLIST_DISPOSITION_TRANSIENT,
                                 &i, sizeof (i));
-  CHECK (GNUNET_CONTAINER_slist_count (l) == 100);
+  GNUNET_assert (GNUNET_CONTAINER_slist_count (l) == 100);
 
   for (it = GNUNET_CONTAINER_slist_begin (l), i = 99;
-       GNUNET_CONTAINER_slist_end (it) != GNUNET_YES;
-       GNUNET_CONTAINER_slist_next (it), i--)
+       GNUNET_CONTAINER_slist_end (&it) != GNUNET_YES;
+       GNUNET_CONTAINER_slist_next (&it), i--)
+  {
+    p = GNUNET_CONTAINER_slist_get (&it, &s);
+
+    if ((p == NULL) || (i != (j = *(int *) p)) || (s != sizeof (i)))
     {
-      p = GNUNET_CONTAINER_slist_get (it, &s);
-      CHECK (p != NULL);
-      j = *(int *) p;
-      CHECK (i == j);
-      CHECK (s == sizeof (i));
-
-      j *= 2;
-      GNUNET_CONTAINER_slist_insert (it,
-                                     GNUNET_CONTAINER_SLIST_DISPOSITION_TRANSIENT,
-                                     &j, sizeof (j));
+      GNUNET_CONTAINER_slist_iter_destroy (&it);
+      GNUNET_assert (0);
     }
-  GNUNET_CONTAINER_slist_iter_destroy (it);
-  CHECK (GNUNET_CONTAINER_slist_count (l) == 200);
+    j *= 2;
+    GNUNET_CONTAINER_slist_insert (&it,
+                                   GNUNET_CONTAINER_SLIST_DISPOSITION_TRANSIENT,
+                                   &j, sizeof (j));
+  }
+  GNUNET_assert (GNUNET_CONTAINER_slist_count (l) == 200);
   i = 198;
-  CHECK (GNUNET_CONTAINER_slist_contains (l, &i, sizeof (i)));
+  GNUNET_assert (GNUNET_CONTAINER_slist_contains (l, &i, sizeof (i)));
 
   for (it = GNUNET_CONTAINER_slist_begin (l);
-       GNUNET_CONTAINER_slist_end (it) != GNUNET_YES;)
-    {
-      p = GNUNET_CONTAINER_slist_get (it, &s);
-      CHECK (p != NULL);
-      CHECK (s == sizeof (i));
-      i = *(int *) p;
-
-      CHECK (GNUNET_CONTAINER_slist_next (it) == GNUNET_YES);
-      CHECK (GNUNET_CONTAINER_slist_end (it) != GNUNET_YES);
-
-      p = GNUNET_CONTAINER_slist_get (it, &s);
-      CHECK (p != NULL);
-      CHECK (s == sizeof (j));
-      j = *(int *) p;
-
-      CHECK (j * 2 == i);
-
-      GNUNET_CONTAINER_slist_erase (it);
-    }
-  GNUNET_CONTAINER_slist_iter_destroy (it);
-  CHECK (GNUNET_CONTAINER_slist_count (l) == 100);
+       GNUNET_CONTAINER_slist_end (&it) != GNUNET_YES;)
+  {
+    p = GNUNET_CONTAINER_slist_get (&it, &s);
+    GNUNET_assert (p != NULL);
+    GNUNET_assert (s == sizeof (i));
+    i = *(int *) p;
+
+    GNUNET_assert (GNUNET_CONTAINER_slist_next (&it) == GNUNET_YES);
+    GNUNET_assert (GNUNET_CONTAINER_slist_end (&it) != GNUNET_YES);
+
+    p = GNUNET_CONTAINER_slist_get (&it, &s);
+    GNUNET_assert (p != NULL);
+    GNUNET_assert (s == sizeof (j));
+    j = *(int *) p;
+
+    GNUNET_assert (j * 2 == i);
+
+    GNUNET_CONTAINER_slist_erase (&it);
+  }
+  GNUNET_assert (GNUNET_CONTAINER_slist_count (l) == 100);
   i = 99;
-  CHECK (GNUNET_CONTAINER_slist_contains (l, &i, sizeof (i)) == GNUNET_NO);
+  GNUNET_assert (GNUNET_CONTAINER_slist_contains (l, &i, sizeof (i)) ==
+                 GNUNET_NO);
   i = 198;
-  CHECK (GNUNET_CONTAINER_slist_contains (l, &i, sizeof (i)));
+  GNUNET_assert (GNUNET_CONTAINER_slist_contains (l, &i, sizeof (i)) ==
+                 GNUNET_YES);
 
   GNUNET_CONTAINER_slist_clear (l);
-  CHECK (GNUNET_CONTAINER_slist_count (l) == 0);
+  GNUNET_assert (GNUNET_CONTAINER_slist_count (l) == 0);
 
   for (i = 0; i < 100; i++)
-    GNUNET_CONTAINER_slist_add (l,
-                                GNUNET_CONTAINER_SLIST_DISPOSITION_TRANSIENT,
+    GNUNET_CONTAINER_slist_add (l, GNUNET_CONTAINER_SLIST_DISPOSITION_TRANSIENT,
                                 &i, sizeof (i));
+  /*check slist_append */
+  GNUNET_CONTAINER_slist_append (l, l);
+  GNUNET_assert (GNUNET_CONTAINER_slist_count (l) == 200);
+
+  GNUNET_CONTAINER_slist_destroy (l);
 
+  /*check slist_add_end */
+  l = GNUNET_CONTAINER_slist_create ();
+  for (i = 0; i < 100; i++)
+    GNUNET_CONTAINER_slist_add_end (l,
+                                    GNUNET_CONTAINER_SLIST_DISPOSITION_TRANSIENT,
+                                    &i, sizeof (i));
+
+  GNUNET_assert (GNUNET_CONTAINER_slist_count (l) == 100);
+
+  for (it = GNUNET_CONTAINER_slist_begin (l), i = 0;
+       GNUNET_CONTAINER_slist_end (&it) != GNUNET_YES;
+       GNUNET_CONTAINER_slist_next (&it), i++)
+  {
+    p = GNUNET_CONTAINER_slist_get (&it, &s);
+
+    if ((p == NULL) || (i != *(int *) p) || (s != sizeof (i)))
+    {
+      GNUNET_assert (0);
+    }
+  }
+  GNUNET_CONTAINER_slist_destroy (l);
+
+  /*check if disp = GNUNET_CONTAINER_SLIST_DISPOSITION_DYNAMIC */
+  l = GNUNET_CONTAINER_slist_create ();
+
+  for (i = 0; i < 100; i++)
+  {
+    ip = GNUNET_malloc (sizeof (int));
+    *ip = i;
+    GNUNET_CONTAINER_slist_add (l, GNUNET_CONTAINER_SLIST_DISPOSITION_DYNAMIC,
+                                ip, sizeof (int));
+  }
+  //creat_add
+  it = GNUNET_CONTAINER_slist_begin (l);
+  p = GNUNET_CONTAINER_slist_get (&it, &s);
+  GNUNET_assert (p != NULL);
+  //slist_erase
+  GNUNET_assert (GNUNET_CONTAINER_slist_next (&it) == GNUNET_YES);
+  GNUNET_CONTAINER_slist_erase (&it);
+  GNUNET_CONTAINER_slist_iter_destroy (&it);
+  GNUNET_assert (GNUNET_CONTAINER_slist_count (l) == 99);
+  //slist_clear
+  GNUNET_CONTAINER_slist_clear (l);
+  GNUNET_assert (GNUNET_CONTAINER_slist_count (l) == 0);
   GNUNET_CONTAINER_slist_destroy (l);
 
   return 0;