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
struct GNUNET_FS_Uri **uri,
uint32_t *anonymity,
uint32_t *priority,
+ int *do_index,
struct GNUNET_TIME_Absolute *expirationTime,
void **client_info)
{
static void
run (void *cls,
- struct GNUNET_SCHEDULER_Handle *s,
char *const *args,
const char *cfgfile,
const struct GNUNET_CONFIGURATION_Handle *cfg)
struct GNUNET_FS_FileInformation *fi1;
struct GNUNET_FS_FileInformation *fi2;
struct GNUNET_FS_FileInformation *fidir;
+ struct GNUNET_FS_Handle *fs;
size_t i;
+ fs = GNUNET_FS_start (cfg, "test-fs-file-information", NULL, NULL,
+ GNUNET_FS_FLAGS_NONE,
+ GNUNET_FS_OPTIONS_END);
fn1 = GNUNET_DISK_mktemp ("gnunet-file_information-test-dst");
buf = GNUNET_malloc (FILESIZE);
for (i = 0; i < FILESIZE; i++)
meta = GNUNET_CONTAINER_meta_data_create ();
kuri = GNUNET_FS_uri_ksk_create_from_args (2, keywords);
- fi1 = GNUNET_FS_file_information_create_from_file ("file_information-context1",
+ fi1 = GNUNET_FS_file_information_create_from_file (fs,
+ "file_information-context1",
fn1,
kuri,
meta,
1,
42,
GNUNET_TIME_relative_to_absolute (LIFETIME));
- fi2 = GNUNET_FS_file_information_create_from_file ("file_information-context2",
+ GNUNET_assert (fi1 != NULL);
+ fi2 = GNUNET_FS_file_information_create_from_file (fs,
+ "file_information-context2",
fn2,
kuri,
meta,
1,
42,
GNUNET_TIME_relative_to_absolute (LIFETIME));
- fidir = GNUNET_FS_file_information_create_empty_directory ("file_information-context-dir",
+ GNUNET_assert (fi2 != NULL);
+ fidir = GNUNET_FS_file_information_create_empty_directory (fs,
+ "file_information-context-dir",
kuri,
meta,
1,
GNUNET_DISK_directory_remove (fn2);
GNUNET_free_non_null (fn1);
GNUNET_free_non_null (fn2);
+ GNUNET_FS_stop (fs);
}
+static int
+testThumbnail ()
+{
+ struct GNUNET_CONTAINER_MetaData *m;
+ struct GNUNET_CONTAINER_MetaData *d;
+ struct EXTRACTOR_PluginList *ex;
+ unsigned char *thumb;
+ size_t size;
+ char *date;
+
+ ex = EXTRACTOR_plugin_add_config (NULL, "thumbnailgtk", EXTRACTOR_OPTION_DEFAULT_POLICY);
+ if (ex == NULL)
+ {
+ fprintf (stderr,
+ "Test incomplete, have no GTK thumbnail extractor available.\n");
+ return 0; /* can not test, no thumbnailer */
+ }
+ ex = EXTRACTOR_plugin_add_config (ex, "mime", EXTRACTOR_OPTION_DEFAULT_POLICY);
+ m = GNUNET_CONTAINER_meta_data_create ();
+ if (3 != GNUNET_FS_meta_data_extract_from_file (m,
+ "test_fs_file_information_meta_data_image.jpg",
+ ex))
+ {
+ GNUNET_break (0);
+ EXTRACTOR_plugin_remove_all (ex);
+ GNUNET_CONTAINER_meta_data_destroy (m);
+ return 1;
+ }
+ 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)
+ {
+ 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_METATYPE_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);
+ return 0;
+}
+
+
+
int
main (int argc, char *argv[])
{
"WARNING",
#endif
NULL);
+ if (0 != testThumbnail ())
+ return 1;
GNUNET_PROGRAM_run ((sizeof (argvx) / sizeof (char *)) - 1,
argvx, "test-fs-file_information",
"nohelp", options, &run, NULL);