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