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
return 0;
}
-
-static int
-testThumbnail ()
+int
+check()
{
- struct GNUNET_CONTAINER_MetaData *m;
- struct GNUNET_CONTAINER_MetaData *d;
- struct EXTRACTOR_PluginList *ex;
- unsigned char *thumb;
- size_t size;
- char *date;
+ struct GNUNET_CONTAINER_MetaData *meta;
+ struct GNUNET_CONTAINER_MetaData *meta2;
+ int q;
+ int i = 100;
+ char txt[128];
+ char *str;
+ unsigned char* thumb;
- ex = EXTRACTOR_plugin_add_config (NULL, "thumbnailgtk", EXTRACTOR_OPTION_DEFAULT_POLICY);
- if (ex == NULL)
+ meta = GNUNET_CONTAINER_meta_data_create ();
+ meta2 = GNUNET_CONTAINER_meta_data_create ();
+ for (q = 0; q <= i; q++)
{
- fprintf (stderr,
- "Test incomplete, have no GTK thumbnail extractor available.\n");
- return 0; /* can not test, no thumbnailer */
+ GNUNET_snprintf (txt, 128, "%u -- %u\n", i, q);
+ GNUNET_CONTAINER_meta_data_insert (meta,
+ "<test>",
+ EXTRACTOR_METATYPE_UNKNOWN,
+ EXTRACTOR_METAFORMAT_UTF8,
+ "text/plain",
+ "TestTitle",
+ strlen ("TestTitle")+1);
+ GNUNET_CONTAINER_meta_data_insert (meta2,
+ "<test>",
+ EXTRACTOR_METATYPE_UNKNOWN,
+ EXTRACTOR_METAFORMAT_UTF8,
+ "text/plain",
+ "TestTitle",
+ strlen ("TestTitle")+1);
}
- ex = EXTRACTOR_plugin_add_config (ex, "mime", EXTRACTOR_OPTION_DEFAULT_POLICY);
- m = GNUNET_CONTAINER_meta_data_create ();
- if (3 != GNUNET_CONTAINER_meta_data_extract_from_file (m,
- "test_container_meta_data_image.jpg",
- ex))
+
+ //check meta_data_test_equal
+ if (GNUNET_YES != GNUNET_CONTAINER_meta_data_test_equal(meta,meta2))
+ {
+ GNUNET_CONTAINER_meta_data_destroy(meta2);
+ ABORT(meta);
+ }
+
+ //check meta_data_clear
+ GNUNET_CONTAINER_meta_data_clear(meta2);
+ if (0 != GNUNET_CONTAINER_meta_data_iterate(meta2,NULL,NULL))
{
- GNUNET_break (0);
- EXTRACTOR_plugin_remove_all (ex);
- GNUNET_CONTAINER_meta_data_destroy (m);
- return 1;
+ GNUNET_CONTAINER_meta_data_destroy(meta2);
+ ABORT(meta);
}
- EXTRACTOR_plugin_remove_all (ex);
- d = GNUNET_CONTAINER_meta_data_duplicate (m);
- GNUNET_CONTAINER_meta_data_destroy (m);
- thumb = NULL;
- size = GNUNET_CONTAINER_meta_data_get_thumbnail (d, &thumb);
- if (size == 0)
+ //check equal branch in meta_data_test_equal
+ if (GNUNET_YES != GNUNET_CONTAINER_meta_data_test_equal(meta,meta))
+ {
+ GNUNET_CONTAINER_meta_data_destroy(meta2);
+ ABORT(meta);
+ }
+ //check "count" branch in meta_data_test_equal
+ if (GNUNET_NO != GNUNET_CONTAINER_meta_data_test_equal(meta,meta2))
+ {
+ GNUNET_CONTAINER_meta_data_destroy(meta2);
+ ABORT(meta);
+ }
+
+ //check meta_data_add_publication_date
+ GNUNET_CONTAINER_meta_data_add_publication_date(meta2);
+
+ //check meta_data_merge
+ GNUNET_CONTAINER_meta_data_clear(meta2);
+ GNUNET_CONTAINER_meta_data_merge(meta2,meta);
+ if (100 == GNUNET_CONTAINER_meta_data_iterate(meta2,NULL,NULL))
+ {
+ GNUNET_CONTAINER_meta_data_destroy(meta2);
+ ABORT(meta);
+ }
+
+ //check meta_data_get_by_type
+ GNUNET_CONTAINER_meta_data_clear(meta2);
+ if (NULL != (str = GNUNET_CONTAINER_meta_data_get_by_type(meta2,EXTRACTOR_METATYPE_UNKNOWN)))
+ {
+ GNUNET_CONTAINER_meta_data_destroy(meta2);
+ GNUNET_free (str);
+ ABORT(meta);
+ }
+
+ str = GNUNET_CONTAINER_meta_data_get_by_type(meta,EXTRACTOR_METATYPE_UNKNOWN);
+ GNUNET_assert (NULL != str);
+ if (str[0] != 'T')
{
- GNUNET_break (0);
- GNUNET_CONTAINER_meta_data_destroy (d);
- return 1;
+ GNUNET_CONTAINER_meta_data_destroy(meta2);
+ ABORT(meta);
+ }
+ //check branch
+ if (NULL != (str = GNUNET_CONTAINER_meta_data_get_by_type(meta,EXTRACTOR_METATYPE_PUBLICATION_DATE)))
+ {
+ GNUNET_free (str);
+ GNUNET_CONTAINER_meta_data_destroy(meta2);
+ ABORT(meta);
+ }
+
+ //check meta_data_get_first_by_types
+ str = GNUNET_CONTAINER_meta_data_get_first_by_types(meta,
+ EXTRACTOR_METATYPE_UNKNOWN,
+ -1);
+ GNUNET_assert (NULL != str);
+ if (str[0] != 'T')
+ {
+ GNUNET_CONTAINER_meta_data_destroy(meta2);
+ GNUNET_free (str);
+ ABORT(meta);
+ }
+ GNUNET_free (str);
+
+ //check meta_data_get_thumbnail
+
+ if (GNUNET_CONTAINER_meta_data_get_thumbnail(meta, &thumb) != 0)
+ {
+ GNUNET_free (thumb);
+ GNUNET_CONTAINER_meta_data_destroy(meta2);
+ ABORT(meta);
}
- GNUNET_free (thumb);
- GNUNET_CONTAINER_meta_data_add_publication_date (d);
- date = GNUNET_CONTAINER_meta_data_get_by_type (d,
- EXTRACTOR_METATYPE_PUBLICATION_DATE);
- if (date == NULL)
+
+ //check meta_data_duplicate
+ GNUNET_CONTAINER_meta_data_duplicate(meta);
+ if (200 == GNUNET_CONTAINER_meta_data_iterate(meta,NULL,NULL))
{
- GNUNET_break (0);
- GNUNET_CONTAINER_meta_data_destroy (d);
- return 1;
+ GNUNET_CONTAINER_meta_data_destroy(meta2);
+ ABORT(meta);
}
- GNUNET_free (date);
- GNUNET_CONTAINER_meta_data_destroy (d);
- return 0;
+ return 0;
}
for (i = 1; i < 255; i++)
failureCount += testMetaMore (i);
failureCount += testMetaLink ();
- failureCount += testThumbnail ();
+
+ int ret = check();
+ if ( ret == 1)
+ return 1;
if (failureCount != 0)
return 1;