summaryrefslogtreecommitdiff
path: root/src/fs/test_fs.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/fs/test_fs.c')
-rw-r--r--src/fs/test_fs.c247
1 files changed, 125 insertions, 122 deletions
diff --git a/src/fs/test_fs.c b/src/fs/test_fs.c
index e88bacf59..73de7b204 100644
--- a/src/fs/test_fs.c
+++ b/src/fs/test_fs.c
@@ -30,19 +30,20 @@
30 30
31#define DEBUG_VERBOSE GNUNET_NO 31#define DEBUG_VERBOSE GNUNET_NO
32 32
33#define CHECK(a) if (!(a)) { ok = GNUNET_NO; GNUNET_GE_BREAK(NULL, 0); goto FAILURE; } 33#define CHECK(a) if (! (a)) { ok = GNUNET_NO; GNUNET_GE_BREAK (NULL, 0); \
34 goto FAILURE; }
34 35
35static char * 36static char *
36makeName(unsigned int i) 37makeName (unsigned int i)
37{ 38{
38 char *fn; 39 char *fn;
39 40
40 fn = GNUNET_malloc(strlen("/tmp/gnunet-basic_fsui_test/BASIC_FSUI_TEST") + 41 fn = GNUNET_malloc (strlen ("/tmp/gnunet-basic_fsui_test/BASIC_FSUI_TEST")
41 14); 42 + 14);
42 GNUNET_snprintf(fn, 43 GNUNET_snprintf (fn,
43 strlen("/tmp/gnunet-basic_fsui_test/BASIC_FSUI_TEST") + 14, 44 strlen ("/tmp/gnunet-basic_fsui_test/BASIC_FSUI_TEST") + 14,
44 "/tmp/gnunet-basic_fsui_test/BASIC_FSUI_TEST%u", i); 45 "/tmp/gnunet-basic_fsui_test/BASIC_FSUI_TEST%u", i);
45 GNUNET_disk_directory_create_for_file(NULL, fn); 46 GNUNET_disk_directory_create_for_file (NULL, fn);
46 return fn; 47 return fn;
47} 48}
48 49
@@ -55,47 +56,47 @@ static struct GNUNET_ECRS_URI *search_uri;
55static struct GNUNET_FSUI_Context *ctx; 56static struct GNUNET_FSUI_Context *ctx;
56 57
57static void * 58static void *
58eventCallback(void *cls, const GNUNET_FSUI_Event * event) 59eventCallback (void *cls, const GNUNET_FSUI_Event *event)
59{ 60{
60 static char unused; 61 static char unused;
61 62
62 switch (event->type) 63 switch (event->type)
63 { 64 {
64 case GNUNET_FSUI_search_resumed: 65 case GNUNET_FSUI_search_resumed:
65 case GNUNET_FSUI_download_resumed: 66 case GNUNET_FSUI_download_resumed:
66 case GNUNET_FSUI_upload_resumed: 67 case GNUNET_FSUI_upload_resumed:
67 case GNUNET_FSUI_unindex_resumed: 68 case GNUNET_FSUI_unindex_resumed:
68 return &unused; 69 return &unused;
69 70
70 case GNUNET_FSUI_search_result: 71 case GNUNET_FSUI_search_result:
71#if DEBUG_VERBOSE 72#if DEBUG_VERBOSE
72 printf("Received search result\n"); 73 printf ("Received search result\n");
73#endif 74#endif
74 search_uri = GNUNET_ECRS_uri_duplicate(event->data.SearchResult.fi.uri); 75 search_uri = GNUNET_ECRS_uri_duplicate (event->data.SearchResult.fi.uri);
75 search_meta = GNUNET_meta_data_duplicate(event->data.SearchResult.fi.meta); 76 search_meta = GNUNET_meta_data_duplicate (event->data.SearchResult.fi.meta);
76 break; 77 break;
77 78
78 case GNUNET_FSUI_upload_completed: 79 case GNUNET_FSUI_upload_completed:
79#if DEBUG_VERBOSE 80#if DEBUG_VERBOSE
80 printf("Upload complete.\n"); 81 printf ("Upload complete.\n");
81#endif 82#endif
82 break; 83 break;
83 84
84 case GNUNET_FSUI_download_completed: 85 case GNUNET_FSUI_download_completed:
85#if DEBUG_VERBOSE 86#if DEBUG_VERBOSE
86 printf("Download complete.\n"); 87 printf ("Download complete.\n");
87#endif 88#endif
88 break; 89 break;
89 90
90 case GNUNET_FSUI_unindex_completed: 91 case GNUNET_FSUI_unindex_completed:
91#if DEBUG_VERBOSE 92#if DEBUG_VERBOSE
92 printf("Unindex complete.\n"); 93 printf ("Unindex complete.\n");
93#endif 94#endif
94 break; 95 break;
95 96
96 default: 97 default:
97 break; 98 break;
98 } 99 }
99 lastEvent = event->type; 100 lastEvent = event->type;
100 return NULL; 101 return NULL;
101} 102}
@@ -103,7 +104,7 @@ eventCallback(void *cls, const GNUNET_FSUI_Event * event)
103#define START_DAEMON 1 104#define START_DAEMON 1
104 105
105int 106int
106main(int argc, char *argv[]) 107main (int argc, char *argv[])
107{ 108{
108#if START_DAEMON 109#if START_DAEMON
109 struct GNUNET_OS_Process *daemon; 110 struct GNUNET_OS_Process *daemon;
@@ -127,128 +128,130 @@ main(int argc, char *argv[])
127 struct GNUNET_FSUI_UnindexList *unindex = NULL; 128 struct GNUNET_FSUI_UnindexList *unindex = NULL;
128 struct GNUNET_FSUI_DownloadList *download = NULL; 129 struct GNUNET_FSUI_DownloadList *download = NULL;
129 130
130 cfg = GNUNET_GC_create(); 131 cfg = GNUNET_GC_create ();
131 if (-1 == GNUNET_GC_parse_configuration(cfg, "check.conf")) 132 if (-1 == GNUNET_GC_parse_configuration (cfg, "check.conf"))
132 { 133 {
133 GNUNET_GC_free(cfg); 134 GNUNET_GC_free (cfg);
134 return -1; 135 return -1;
135 } 136 }
136#if START_DAEMON 137#if START_DAEMON
137 daemon = GNUNET_daemon_start(NULL, cfg, "peer.conf", GNUNET_NO); 138 daemon = GNUNET_daemon_start (NULL, cfg, "peer.conf", GNUNET_NO);
138 GNUNET_GE_ASSERT(NULL, daemon != NULL); 139 GNUNET_GE_ASSERT (NULL, daemon != NULL);
139 CHECK(GNUNET_OK == 140 CHECK (GNUNET_OK ==
140 GNUNET_wait_for_daemon_running(NULL, cfg, 60 * GNUNET_CRON_SECONDS)); 141 GNUNET_wait_for_daemon_running (NULL, cfg, 60 * GNUNET_CRON_SECONDS));
141#endif 142#endif
142 GNUNET_thread_sleep(5 * GNUNET_CRON_SECONDS); /* give apps time to start */ 143 GNUNET_thread_sleep (5 * GNUNET_CRON_SECONDS); /* give apps time to start */
143 ok = GNUNET_YES; 144 ok = GNUNET_YES;
144 145
145 /* ACTUAL TEST CODE */ 146 /* ACTUAL TEST CODE */
146 ctx = GNUNET_FSUI_start(NULL, cfg, "basic_fsui_test", 32, /* thread pool size */ 147 ctx = GNUNET_FSUI_start (NULL, cfg, "basic_fsui_test", 32, /* thread pool size */
147 GNUNET_NO, /* no resume */ 148 GNUNET_NO, /* no resume */
148 &eventCallback, NULL); 149 &eventCallback, NULL);
149 CHECK(ctx != NULL); 150 CHECK (ctx != NULL);
150 filename = makeName(42); 151 filename = makeName (42);
151 GNUNET_disk_file_write(NULL, filename, "foo bar test!", 152 GNUNET_disk_file_write (NULL, filename, "foo bar test!",
152 strlen("foo bar test!"), "600"); 153 strlen ("foo bar test!"), "600");
153 meta = GNUNET_meta_data_create(); 154 meta = GNUNET_meta_data_create ();
154 kuri = 155 kuri =
155 GNUNET_ECRS_keyword_command_line_to_uri(NULL, 2, 156 GNUNET_ECRS_keyword_command_line_to_uri (NULL, 2,
156 (const char **)keywords); 157 (const char **) keywords);
157 /* upload */ 158 /* upload */
158 upload = GNUNET_FSUI_upload_start(ctx, filename, (GNUNET_FSUI_DirectoryScanCallback) & GNUNET_disk_directory_scan, NULL, 0, /* anonymity */ 159 upload = GNUNET_FSUI_upload_start (ctx, filename,
159 0, /* priority */ 160 (GNUNET_FSUI_DirectoryScanCallback)
160 GNUNET_YES, GNUNET_NO, GNUNET_NO, 161 & GNUNET_disk_directory_scan, NULL, 0, /* anonymity */
161 GNUNET_get_time() + 5 * GNUNET_CRON_HOURS, 162 0, /* priority */
162 meta, kuri, kuri); 163 GNUNET_YES, GNUNET_NO, GNUNET_NO,
163 CHECK(upload != NULL); 164 GNUNET_get_time () + 5 * GNUNET_CRON_HOURS,
164 GNUNET_ECRS_uri_destroy(kuri); 165 meta, kuri, kuri);
165 GNUNET_meta_data_destroy(meta); 166 CHECK (upload != NULL);
167 GNUNET_ECRS_uri_destroy (kuri);
168 GNUNET_meta_data_destroy (meta);
166 prog = 0; 169 prog = 0;
167 while (lastEvent != GNUNET_FSUI_upload_completed) 170 while (lastEvent != GNUNET_FSUI_upload_completed)
168 { 171 {
169 prog++; 172 prog++;
170 CHECK(prog < 10000) GNUNET_thread_sleep(50 * GNUNET_CRON_MILLISECONDS); 173 CHECK (prog < 10000) GNUNET_thread_sleep (50 * GNUNET_CRON_MILLISECONDS);
171 if (GNUNET_shutdown_test() == GNUNET_YES) 174 if (GNUNET_shutdown_test () == GNUNET_YES)
172 break; 175 break;
173 } 176 }
174 177
175 /* search */ 178 /* search */
176 GNUNET_snprintf(keyword, 40, "+%s +%s", keywords[0], keywords[1]); 179 GNUNET_snprintf (keyword, 40, "+%s +%s", keywords[0], keywords[1]);
177 uri = GNUNET_ECRS_keyword_string_to_uri(NULL, keyword); 180 uri = GNUNET_ECRS_keyword_string_to_uri (NULL, keyword);
178 search = GNUNET_FSUI_search_start(ctx, 0, uri); 181 search = GNUNET_FSUI_search_start (ctx, 0, uri);
179 GNUNET_ECRS_uri_destroy(uri); 182 GNUNET_ECRS_uri_destroy (uri);
180 CHECK(search != NULL); 183 CHECK (search != NULL);
181 prog = 0; 184 prog = 0;
182 while (lastEvent != GNUNET_FSUI_search_result) 185 while (lastEvent != GNUNET_FSUI_search_result)
183 { 186 {
184 prog++; 187 prog++;
185 CHECK(prog < 10000); 188 CHECK (prog < 10000);
186 GNUNET_thread_sleep(50 * GNUNET_CRON_MILLISECONDS); 189 GNUNET_thread_sleep (50 * GNUNET_CRON_MILLISECONDS);
187 if (GNUNET_shutdown_test() == GNUNET_YES) 190 if (GNUNET_shutdown_test () == GNUNET_YES)
188 break; 191 break;
189 } 192 }
190 GNUNET_FSUI_search_abort(search); 193 GNUNET_FSUI_search_abort (search);
191 GNUNET_FSUI_search_stop(search); 194 GNUNET_FSUI_search_stop (search);
192 195
193 /* download */ 196 /* download */
194 fn = makeName(43); 197 fn = makeName (43);
195 download = 198 download =
196 GNUNET_FSUI_download_start(ctx, 0, GNUNET_NO, search_uri, search_meta, 199 GNUNET_FSUI_download_start (ctx, 0, GNUNET_NO, search_uri, search_meta,
197 fn, NULL, NULL); 200 fn, NULL, NULL);
198 GNUNET_free(fn); 201 GNUNET_free (fn);
199 prog = 0; 202 prog = 0;
200 while (lastEvent != GNUNET_FSUI_download_completed) 203 while (lastEvent != GNUNET_FSUI_download_completed)
201 { 204 {
202 prog++; 205 prog++;
203 CHECK(prog < 10000); 206 CHECK (prog < 10000);
204 GNUNET_thread_sleep(50 * GNUNET_CRON_MILLISECONDS); 207 GNUNET_thread_sleep (50 * GNUNET_CRON_MILLISECONDS);
205 if (GNUNET_shutdown_test() == GNUNET_YES) 208 if (GNUNET_shutdown_test () == GNUNET_YES)
206 break; 209 break;
207 } 210 }
208 GNUNET_FSUI_download_stop(download); 211 GNUNET_FSUI_download_stop (download);
209 download = NULL; 212 download = NULL;
210 GNUNET_ECRS_uri_destroy(search_uri); 213 GNUNET_ECRS_uri_destroy (search_uri);
211 GNUNET_meta_data_destroy(search_meta); 214 GNUNET_meta_data_destroy (search_meta);
212 /* unindex */ 215 /* unindex */
213 unindex = GNUNET_FSUI_unindex_start(ctx, filename); 216 unindex = GNUNET_FSUI_unindex_start (ctx, filename);
214 prog = 0; 217 prog = 0;
215 while (lastEvent != GNUNET_FSUI_unindex_completed) 218 while (lastEvent != GNUNET_FSUI_unindex_completed)
216 { 219 {
217 prog++; 220 prog++;
218 CHECK(prog < 10000); 221 CHECK (prog < 10000);
219 GNUNET_thread_sleep(50 * GNUNET_CRON_MILLISECONDS); 222 GNUNET_thread_sleep (50 * GNUNET_CRON_MILLISECONDS);
220 if (GNUNET_shutdown_test() == GNUNET_YES) 223 if (GNUNET_shutdown_test () == GNUNET_YES)
221 break; 224 break;
222 } 225 }
223 if (lastEvent != GNUNET_FSUI_unindex_completed) 226 if (lastEvent != GNUNET_FSUI_unindex_completed)
224 GNUNET_FSUI_unindex_abort(unindex); 227 GNUNET_FSUI_unindex_abort (unindex);
225 GNUNET_FSUI_unindex_stop(unindex); 228 GNUNET_FSUI_unindex_stop (unindex);
226 229
227 230
228 /* END OF TEST CODE */ 231 /* END OF TEST CODE */
229FAILURE: 232FAILURE:
230 if (ctx != NULL) 233 if (ctx != NULL)
231 GNUNET_FSUI_stop(ctx); 234 GNUNET_FSUI_stop (ctx);
232 if (filename != NULL) 235 if (filename != NULL)
233 { 236 {
234 unlink(filename); 237 unlink (filename);
235 GNUNET_free(filename); 238 GNUNET_free (filename);
236 } 239 }
237 if (download != NULL) 240 if (download != NULL)
238 { 241 {
239 GNUNET_FSUI_download_abort(download); 242 GNUNET_FSUI_download_abort (download);
240 GNUNET_FSUI_download_stop(download); 243 GNUNET_FSUI_download_stop (download);
241 } 244 }
242 filename = makeName(43); 245 filename = makeName (43);
243 /* TODO: verify file 'filename(42)' == file 'filename(43)' */ 246 /* TODO: verify file 'filename(42)' == file 'filename(43)' */
244 unlink(filename); 247 unlink (filename);
245 GNUNET_free(filename); 248 GNUNET_free (filename);
246 249
247#if START_DAEMON 250#if START_DAEMON
248 GNUNET_GE_ASSERT(NULL, GNUNET_OK == GNUNET_daemon_stop(NULL, daemon)); 251 GNUNET_GE_ASSERT (NULL, GNUNET_OK == GNUNET_daemon_stop (NULL, daemon));
249 GNUNET_OS_process_destroy(daemon); 252 GNUNET_OS_process_destroy (daemon);
250#endif 253#endif
251 GNUNET_GC_free(cfg); 254 GNUNET_GC_free (cfg);
252 255
253 return (ok == GNUNET_YES) ? 0 : 1; 256 return (ok == GNUNET_YES) ? 0 : 1;
254} 257}