#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(); }
+#define CHECK(c) do { if (! (c)) { fprintf(stderr, "Error at %s:%d\n", __FILE__, __LINE__); GNUNET_CONTAINER_slist_destroy (l); return 1; } } while (0)
int
main (int argc, char *argv[])
struct GNUNET_CONTAINER_SList *l;
struct GNUNET_CONTAINER_SList_Iterator *it;
unsigned int i;
+ int *ip;
unsigned int j;
size_t s;
const void *p;
GNUNET_CONTAINER_slist_next (it), i--)
{
p = GNUNET_CONTAINER_slist_get (it, &s);
- CHECK (p != NULL);
- j = *(int *) p;
- CHECK (i == j);
- CHECK (s == sizeof (i));
+ if ( (p == NULL) ||
+ (i != (j = *(int *) p)) ||
+ (s != sizeof (i)) )
+ {
+ GNUNET_CONTAINER_slist_iter_destroy (it);
+ CHECK (0);
+ }
j *= 2;
GNUNET_CONTAINER_slist_insert (it,
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);
+ CHECK (GNUNET_CONTAINER_slist_count (l) == 200);
+
+ 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);
+ CHECK (p != NULL);
+ //slist_erase
+ CHECK (GNUNET_CONTAINER_slist_next (it) == GNUNET_YES);
+ GNUNET_CONTAINER_slist_erase (it);
+ GNUNET_CONTAINER_slist_iter_destroy (it);
+ CHECK (GNUNET_CONTAINER_slist_count (l) == 99);
+ //slist_clear
+ GNUNET_CONTAINER_slist_clear(l);
+ CHECK (GNUNET_CONTAINER_slist_count (l) == 0);
GNUNET_CONTAINER_slist_destroy (l);
return 0;