- ex = EXTRACTOR_loadConfigLibraries (NULL, "libextractor_thumbnail");
- if (ex == NULL)
- {
- fprintf (stderr,
- "Test incomplete, have no thumbnail extractor available.\n");
- return 0; /* can not test, no thumbnailer */
- }
- ex = EXTRACTOR_loadConfigLibraries (ex, "libextractor_mime");
- m = GNUNET_CONTAINER_meta_data_create ();
- if (3 != GNUNET_CONTAINER_meta_data_extract_from_file (m,
- "test_container_meta_data_image.jpg",
- ex))
- {
- GNUNET_break (0);
- EXTRACTOR_removeAll (ex);
- GNUNET_CONTAINER_meta_data_destroy (m);
- return 1;
- }
- EXTRACTOR_removeAll (ex);
- d = GNUNET_CONTAINER_meta_data_duplicate (m);
- GNUNET_CONTAINER_meta_data_destroy (m);
- size = GNUNET_CONTAINER_meta_data_get_thumbnail (d, &thumb);
- if (size == 0)
- {
- GNUNET_break (0);
- GNUNET_CONTAINER_meta_data_destroy (d);
- return 1;
- }
- GNUNET_free (thumb);
- GNUNET_CONTAINER_meta_data_add_publication_date (d);
- date = GNUNET_CONTAINER_meta_data_get_by_type (d,
- EXTRACTOR_PUBLICATION_DATE);
- if (date == NULL)
- {
- GNUNET_break (0);
- GNUNET_CONTAINER_meta_data_destroy (d);
- return 1;
- }
- GNUNET_free (date);
- GNUNET_CONTAINER_meta_data_destroy (d);
+ meta = GNUNET_CONTAINER_meta_data_create ();
+ meta2 = GNUNET_CONTAINER_meta_data_create ();
+ for (q = 0; q <= i; q++)
+ {
+ 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);
+ }
+
+ //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_CONTAINER_meta_data_destroy (meta2);
+ ABORT (meta);
+ }
+ // 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_CONTAINER_meta_data_destroy (meta2);
+ GNUNET_free (str);
+ ABORT (meta);
+ }
+ GNUNET_free (str);
+
+ // 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_CONTAINER_meta_data_destroy (meta2);
+ //check meta_data_duplicate
+ meta2 = GNUNET_CONTAINER_meta_data_duplicate (meta);
+ if (200 == GNUNET_CONTAINER_meta_data_iterate (meta2, NULL, NULL))
+ {
+ GNUNET_CONTAINER_meta_data_destroy (meta2);
+ ABORT (meta);
+ }
+ GNUNET_CONTAINER_meta_data_destroy (meta2);
+ GNUNET_CONTAINER_meta_data_destroy (meta);