fix
[oweals/gnunet.git] / src / fs / fs_test_lib.c
index f83f8c21132cc51113bb1a4a7fe1dda1cc77cf07..fba44eaeb6fdcbaf2271e727d1cfcc6da6124c6f 100644 (file)
@@ -30,6 +30,7 @@
 #include "fs_test_lib.h"
 #include "gnunet_testing_lib.h"
 
+#define CONNECT_ATTEMPTS 4
 
 /**
  * Handle for a daemon started for testing FS.
@@ -207,6 +208,9 @@ progress_cb (void *cls,
                                         daemon,
                                         GNUNET_SCHEDULER_REASON_PREREQ_DONE);
       break;
+    case GNUNET_FS_STATUS_DOWNLOAD_ACTIVE:
+    case GNUNET_FS_STATUS_DOWNLOAD_INACTIVE:
+      break;
       /* FIXME: monitor data correctness during download progress */
       /* FIXME: do performance reports given sufficient verbosity */
       /* FIXME: advance timeout task to "immediate" on error */
@@ -285,7 +289,7 @@ start_timeout (void *cls,
   struct StartContext *sctx = cls;
   unsigned int i;
 
-  GNUNET_TESTING_daemons_stop (sctx->group);
+  GNUNET_TESTING_daemons_stop (sctx->group, GNUNET_TIME_relative_multiply(GNUNET_TIME_UNIT_SECONDS, 30));
   for (i=0;i<sctx->total;i++)
     {
       if (i < sctx->have)
@@ -350,6 +354,9 @@ GNUNET_FS_TEST_daemons_start (struct GNUNET_SCHEDULER_Handle *sched,
   sctx->group = GNUNET_TESTING_daemons_start (sched,
                                              sctx->cfg,
                                              total,
+                                             timeout,
+                                             NULL,
+                                             NULL,
                                              &notify_running,
                                              sctx,
                                              NULL, NULL,
@@ -423,6 +430,7 @@ GNUNET_FS_TEST_daemons_connect (struct GNUNET_SCHEDULER_Handle *sched,
   GNUNET_TESTING_daemons_connect (daemon1->daemon,
                                  daemon2->daemon,
                                  timeout,
+                                 CONNECT_ATTEMPTS,
                                  &notify_connection,
                                  ncc);
 }
@@ -443,7 +451,7 @@ GNUNET_FS_TEST_daemons_stop (struct GNUNET_SCHEDULER_Handle *sched,
   unsigned int i;
 
   GNUNET_assert (total > 0);
-  GNUNET_TESTING_daemons_stop (daemons[0]->group);
+  GNUNET_TESTING_daemons_stop (daemons[0]->group, GNUNET_TIME_relative_multiply(GNUNET_TIME_UNIT_SECONDS, 30));
   for (i=0;i<total;i++)
     {
       GNUNET_FS_stop (daemons[i]->fs);
@@ -481,9 +489,15 @@ file_generator (void *cls,
   struct GNUNET_FS_TestDaemon *daemon = cls;
   uint64_t pos;
   uint8_t *cbuf = buf;
+  int mod;
 
   for (pos=0;pos<max;pos++)
-    cbuf[pos] = (uint8_t) ((offset * daemon->publish_seed) % (255 - (offset / 1024 / 32)));  
+    {
+      mod = (255 - (offset / 1024 / 32));
+      if (mod == 0)
+       mod = 1;
+      cbuf[pos] = (uint8_t) ((offset * daemon->publish_seed) % mod);  
+    }
   return max;
 }
 
@@ -525,7 +539,8 @@ GNUNET_FS_TEST_publish (struct GNUNET_SCHEDULER_Handle *sched,
   daemon->publish_seed = seed;
   daemon->verbose = verbose;
   daemon->publish_sched = sched;
-  fi = GNUNET_FS_file_information_create_from_reader (daemon,
+  fi = GNUNET_FS_file_information_create_from_reader (daemon->fs,
+                                                     daemon,                                                 
                                                      size,
                                                      &file_generator,
                                                      daemon,
@@ -553,6 +568,8 @@ download_timeout (void *cls,
   struct GNUNET_FS_TestDaemon *daemon = cls;
 
   daemon->download_timeout_task = GNUNET_SCHEDULER_NO_TASK;
+  GNUNET_FS_download_stop (daemon->download_context, GNUNET_YES);
+  daemon->download_context = NULL;
   GNUNET_SCHEDULER_add_continuation (daemon->download_sched,
                                     daemon->download_cont,
                                     daemon->download_cont_cls,
@@ -598,7 +615,7 @@ GNUNET_FS_TEST_download (struct GNUNET_SCHEDULER_Handle *sched,
   daemon->download_seed = seed;  
   daemon->download_context = GNUNET_FS_download_start (daemon->fs,
                                                       uri,
-                                                      NULL,
+                                                      NULL, NULL,
                                                       NULL,
                                                       0,
                                                       size,