aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2009-09-09 13:21:00 +0000
committerChristian Grothoff <christian@grothoff.org>2009-09-09 13:21:00 +0000
commit093b7df3e0e27981441946bc45b318463ef2ce31 (patch)
treecb8baaa5a7386197a0b87c96c56b7dd2efedb6c4
parentc2017c2ba13736ee1fe4dc9d811d49bee1641ca3 (diff)
downloadgnunet-093b7df3e0e27981441946bc45b318463ef2ce31.tar.gz
gnunet-093b7df3e0e27981441946bc45b318463ef2ce31.zip
more testing
-rw-r--r--src/datastore/perf_plugin_datastore.c2
-rw-r--r--src/datastore/test_datastore_api_management.c2
-rw-r--r--src/fs/Makefile.am2
-rw-r--r--src/fs/fs_directory.c14
-rw-r--r--src/fs/test_fs_directory.c45
-rw-r--r--src/fs/test_fs_uri.c1
-rw-r--r--src/include/gnunet_fs_service.h3
7 files changed, 47 insertions, 22 deletions
diff --git a/src/datastore/perf_plugin_datastore.c b/src/datastore/perf_plugin_datastore.c
index 26299830a..1a3f890d9 100644
--- a/src/datastore/perf_plugin_datastore.c
+++ b/src/datastore/perf_plugin_datastore.c
@@ -399,6 +399,7 @@ main (int argc, char *argv[])
399{ 399{
400 int ret; 400 int ret;
401 401
402 GNUNET_DISK_directory_remove ("/tmp/test-gnunetd-datastore");
402 GNUNET_log_setup ("perf-plugin-datastore", 403 GNUNET_log_setup ("perf-plugin-datastore",
403#if VERBOSE 404#if VERBOSE
404 "DEBUG", 405 "DEBUG",
@@ -407,6 +408,7 @@ main (int argc, char *argv[])
407#endif 408#endif
408 NULL); 409 NULL);
409 ret = check (); 410 ret = check ();
411 GNUNET_DISK_directory_remove ("/tmp/test-gnunetd-datastore");
410 412
411 return ret; 413 return ret;
412} 414}
diff --git a/src/datastore/test_datastore_api_management.c b/src/datastore/test_datastore_api_management.c
index cbefe9d09..fadb77131 100644
--- a/src/datastore/test_datastore_api_management.c
+++ b/src/datastore/test_datastore_api_management.c
@@ -369,7 +369,7 @@ main (int argc, char *argv[])
369#endif 369#endif
370 NULL); 370 NULL);
371 ret = check (); 371 ret = check ();
372 372 GNUNET_DISK_directory_remove ("/tmp/test-gnunetd-datastore");
373 return ret; 373 return ret;
374} 374}
375 375
diff --git a/src/fs/Makefile.am b/src/fs/Makefile.am
index abc3d989b..e2f2e6267 100644
--- a/src/fs/Makefile.am
+++ b/src/fs/Makefile.am
@@ -107,7 +107,7 @@ check_PROGRAMS = \
107 test_fs_getopt \ 107 test_fs_getopt \
108 test_fs_uri 108 test_fs_uri
109 109
110TESTS = test_fs_uri 110TESTS = test_fs_directory test_fs_uri
111 111
112# $(check_PROGRAMS) 112# $(check_PROGRAMS)
113 113
diff --git a/src/fs/fs_directory.c b/src/fs/fs_directory.c
index 89a016efd..00407ad3a 100644
--- a/src/fs/fs_directory.c
+++ b/src/fs/fs_directory.c
@@ -490,8 +490,9 @@ block_align (size_t start,
490 * @param bld directory to finish 490 * @param bld directory to finish
491 * @param rsize set to the number of bytes needed 491 * @param rsize set to the number of bytes needed
492 * @param rdata set to the encoded directory 492 * @param rdata set to the encoded directory
493 * @return GNUNET_OK on success
493 */ 494 */
494void 495int
495GNUNET_FS_directory_builder_finish (struct GNUNET_FS_DirectoryBuilder *bld, 496GNUNET_FS_directory_builder_finish (struct GNUNET_FS_DirectoryBuilder *bld,
496 size_t *rsize, 497 size_t *rsize,
497 void **rdata) 498 void **rdata)
@@ -541,7 +542,15 @@ GNUNET_FS_directory_builder_finish (struct GNUNET_FS_DirectoryBuilder *bld,
541 } 542 }
542 } 543 }
543 *rsize = size; 544 *rsize = size;
544 data = GNUNET_malloc (size); 545 data = GNUNET_malloc_large (size);
546 if (data == NULL)
547 {
548 GNUNET_log_strerror (GNUNET_ERROR_TYPE_ERROR,
549 "malloc");
550 *rsize = 0;
551 *rdata = NULL;
552 return GNUNET_SYSERR;
553 }
545 *rdata = data; 554 *rdata = data;
546 memcpy (data, GNUNET_DIRECTORY_MAGIC, 8); 555 memcpy (data, GNUNET_DIRECTORY_MAGIC, 8);
547 off = 8; 556 off = 8;
@@ -572,6 +581,7 @@ GNUNET_FS_directory_builder_finish (struct GNUNET_FS_DirectoryBuilder *bld,
572 GNUNET_assert (off == size); 581 GNUNET_assert (off == size);
573 GNUNET_CONTAINER_meta_data_destroy (bld->meta); 582 GNUNET_CONTAINER_meta_data_destroy (bld->meta);
574 GNUNET_free (bld); 583 GNUNET_free (bld);
584 return GNUNET_OK;
575} 585}
576 586
577 587
diff --git a/src/fs/test_fs_directory.c b/src/fs/test_fs_directory.c
index 9d0101078..31a9869f3 100644
--- a/src/fs/test_fs_directory.c
+++ b/src/fs/test_fs_directory.c
@@ -51,6 +51,8 @@ processor (void *cls,
51 struct PCLS *p = cls; 51 struct PCLS *p = cls;
52 int i; 52 int i;
53 53
54 if (NULL == uri)
55 return; /* ignore directory's meta data */
54 for (i = 0; i < p->max; i++) 56 for (i = 0; i < p->max; i++)
55 { 57 {
56 if (GNUNET_CONTAINER_meta_data_test_equal (p->md[i], 58 if (GNUNET_CONTAINER_meta_data_test_equal (p->md[i],
@@ -80,10 +82,16 @@ testDirectory (unsigned int i)
80 char uri[512]; 82 char uri[512];
81 char txt[128]; 83 char txt[128];
82 int ret = 0; 84 int ret = 0;
85 struct GNUNET_TIME_Absolute start;
86 char *s;
83 87
84 cls.max = i; 88 cls.max = i;
85 uris = GNUNET_malloc (sizeof (struct GNUNET_FS_Uri*) * i); 89 uris = GNUNET_malloc (sizeof (struct GNUNET_FS_Uri*) * i);
86 mds = GNUNET_malloc (sizeof (struct GNUNET_CONTAINER_MetaData*) * i); 90 mds = GNUNET_malloc (sizeof (struct GNUNET_CONTAINER_MetaData*) * i);
91 meta = GNUNET_CONTAINER_meta_data_create ();
92 GNUNET_CONTAINER_meta_data_insert (meta, EXTRACTOR_TITLE, "A title");
93 GNUNET_CONTAINER_meta_data_insert (meta, EXTRACTOR_AUTHOR, "An author");
94 db = GNUNET_FS_directory_builder_create (meta);
87 for (p = 0; p < i; p++) 95 for (p = 0; p < i; p++)
88 { 96 {
89 mds[p] = GNUNET_CONTAINER_meta_data_create (); 97 mds[p] = GNUNET_CONTAINER_meta_data_create ();
@@ -112,22 +120,27 @@ testDirectory (unsigned int i)
112 GNUNET_free (uris); 120 GNUNET_free (uris);
113 ABORT (); /* error in testcase */ 121 ABORT (); /* error in testcase */
114 } 122 }
123 GNUNET_FS_directory_builder_add (db, uris[p], mds[p], NULL);
115 } 124 }
116 meta = GNUNET_CONTAINER_meta_data_create (); 125 start = GNUNET_TIME_absolute_get ();
117 GNUNET_CONTAINER_meta_data_insert (meta, EXTRACTOR_TITLE, "A title");
118 GNUNET_CONTAINER_meta_data_insert (meta, EXTRACTOR_AUTHOR, "An author");
119 db = GNUNET_FS_directory_builder_create (meta);
120 for (p=0;p<i;p++)
121 GNUNET_FS_directory_builder_add (db, uris[i], mds[i], NULL);
122 GNUNET_FS_directory_builder_finish (db, 126 GNUNET_FS_directory_builder_finish (db,
123 &dlen, 127 &dlen,
124 (void**) &data); 128 (void**) &data);
125 cls.pos = 0; 129 s = GNUNET_STRINGS_relative_time_to_string (GNUNET_TIME_absolute_get_duration (start));
126 cls.uri = uris; 130 fprintf (stdout,
127 cls.md = mds; 131 "Creating directory with %u entires took %s\n",
128 GNUNET_FS_directory_list_contents (dlen, data, 0, 132 i,
129 &processor, &cls); 133 s);
130 GNUNET_assert (cls.pos == i); 134 GNUNET_free (s);
135 if (i < 1000)
136 {
137 cls.pos = 0;
138 cls.uri = uris;
139 cls.md = mds;
140 GNUNET_FS_directory_list_contents (dlen, data, 0,
141 &processor, &cls);
142 GNUNET_assert (cls.pos == i);
143 }
131 GNUNET_free (data); 144 GNUNET_free (data);
132 GNUNET_CONTAINER_meta_data_destroy (meta); 145 GNUNET_CONTAINER_meta_data_destroy (meta);
133 for (p = 0; p < i; p++) 146 for (p = 0; p < i; p++)
@@ -140,6 +153,7 @@ testDirectory (unsigned int i)
140 return ret; 153 return ret;
141} 154}
142 155
156
143int 157int
144main (int argc, char *argv[]) 158main (int argc, char *argv[])
145{ 159{
@@ -153,11 +167,8 @@ main (int argc, char *argv[])
153 "WARNING", 167 "WARNING",
154#endif 168#endif
155 NULL); 169 NULL);
156 for (i = 17; i < 2000; i *= 2) 170 for (i = 17; i < 10000; i *= 2)
157 { 171 failureCount += testDirectory (i);
158 fprintf (stderr, ".");
159 failureCount += testDirectory (i);
160 }
161 fprintf (stderr, "\n"); 172 fprintf (stderr, "\n");
162 173
163 if (failureCount != 0) 174 if (failureCount != 0)
diff --git a/src/fs/test_fs_uri.c b/src/fs/test_fs_uri.c
index ee587c92a..b6715cb14 100644
--- a/src/fs/test_fs_uri.c
+++ b/src/fs/test_fs_uri.c
@@ -269,6 +269,7 @@ main (int argc, char *argv[])
269 failureCount += testFile (i); 269 failureCount += testFile (i);
270 } 270 }
271 /* fprintf (stderr, "\n"); */ 271 /* fprintf (stderr, "\n"); */
272 GNUNET_DISK_directory_remove ("/tmp/gnunet-test-fs-uri");
272 if (failureCount != 0) 273 if (failureCount != 0)
273 return 1; 274 return 1;
274 return 0; 275 return 0;
diff --git a/src/include/gnunet_fs_service.h b/src/include/gnunet_fs_service.h
index 210455311..108c0c68f 100644
--- a/src/include/gnunet_fs_service.h
+++ b/src/include/gnunet_fs_service.h
@@ -2429,8 +2429,9 @@ GNUNET_FS_directory_builder_add (struct GNUNET_FS_DirectoryBuilder *bld,
2429 * @param bld directory to finish 2429 * @param bld directory to finish
2430 * @param size set to the number of bytes needed 2430 * @param size set to the number of bytes needed
2431 * @param data set to the encoded directory 2431 * @param data set to the encoded directory
2432 * @return GNUNET_OK on success
2432 */ 2433 */
2433void 2434int
2434GNUNET_FS_directory_builder_finish (struct GNUNET_FS_DirectoryBuilder *bld, 2435GNUNET_FS_directory_builder_finish (struct GNUNET_FS_DirectoryBuilder *bld,
2435 size_t *size, 2436 size_t *size,
2436 void **data); 2437 void **data);