test_reclaim_attribute.c 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #include "platform.h"
  2. #include "gnunet_common.h"
  3. #include "gnunet_reclaim_lib.h"
  4. #include "gnunet_container_lib.h"
  5. int
  6. main (int argc, char *argv[])
  7. {
  8. struct GNUNET_RECLAIM_AttributeList *al;
  9. struct GNUNET_RECLAIM_AttributeList *al_two;
  10. struct GNUNET_RECLAIM_AttributeListEntry *ale;
  11. char attrname[100];
  12. char attrdata[100];
  13. size_t ser_len_claimed;
  14. size_t ser_len_actual;
  15. char *ser_data;
  16. int count = 0;
  17. al = GNUNET_new (struct GNUNET_RECLAIM_AttributeList);
  18. for (int i = 0; i < 12; i++)
  19. {
  20. memset (attrname, 0, 100);
  21. memset (attrdata, 0, 100);
  22. sprintf (attrname, "attr%d", i);
  23. sprintf (attrdata, "%d", i);
  24. ale = GNUNET_new (struct GNUNET_RECLAIM_AttributeListEntry);
  25. ale->attribute = GNUNET_RECLAIM_attribute_new (attrname,
  26. &GNUNET_RECLAIM_ID_ZERO,
  27. GNUNET_RECLAIM_ATTRIBUTE_TYPE_STRING,
  28. attrdata,
  29. strlen (attrdata));
  30. GNUNET_CONTAINER_DLL_insert (al->list_head,
  31. al->list_tail,
  32. ale);
  33. }
  34. ser_len_claimed = GNUNET_RECLAIM_attribute_list_serialize_get_size (al);
  35. ser_data = GNUNET_malloc (ser_len_claimed);
  36. ser_len_actual = GNUNET_RECLAIM_attribute_list_serialize (al,
  37. ser_data);
  38. GNUNET_assert (ser_len_claimed == ser_len_actual);
  39. al_two = GNUNET_RECLAIM_attribute_list_deserialize (ser_data,
  40. ser_len_actual);
  41. for (ale = al_two->list_head; NULL != ale; ale = ale->next)
  42. count++;
  43. GNUNET_assert (12 == count);
  44. //GNUNET_assert (-1 != deser_len);
  45. GNUNET_free (ser_data);
  46. GNUNET_RECLAIM_attribute_list_destroy (al);
  47. }