}
+/**
+ * Obtain peer group used for testing.
+ *
+ * @param daemons array with the daemons (must contain at least one)
+ * @return peer group
+ */
+struct GNUNET_TESTING_PeerGroup *
+GNUNET_FS_TEST_get_group (struct GNUNET_FS_TestDaemon **daemons)
+{
+ return daemons[0]->group;
+}
+
+
/**
* Stop daemons used for testing.
*
struct GNUNET_FS_TestDaemon **daemons)
{
unsigned int i;
+ struct GNUNET_TESTING_PeerGroup *pg;
GNUNET_assert (total > 0);
- GNUNET_TESTING_daemons_stop (daemons[0]->group, GNUNET_TIME_relative_multiply(GNUNET_TIME_UNIT_SECONDS, 30));
+ pg = daemons[0]->group;
for (i=0;i<total;i++)
{
GNUNET_FS_stop (daemons[i]->fs);
GNUNET_free (daemons[i]);
daemons[i] = NULL;
}
+ GNUNET_TESTING_daemons_stop (pg, GNUNET_TIME_relative_multiply(GNUNET_TIME_UNIT_SECONDS, 30));
}
*/
#include "platform.h"
#include "fs_test_lib.h"
+#include "gnunet_testing_lib.h"
-#define VERBOSE GNUNET_NO
+#define VERBOSE GNUNET_YES
/**
* File-size we use for testing.
char *fancy;
GNUNET_FS_TEST_daemons_stop (sched,
- 1,
+ 2,
daemons);
if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_PREREQ_DONE))
{
static void
do_download (void *cls,
- const struct GNUNET_SCHEDULER_TaskContext *tc)
+ const char *emsg)
{
struct GNUNET_FS_Uri *uri = cls;
- GNUNET_FS_TEST_daemons_stop (sched, 1, &daemons[1]);
+ if (emsg != NULL)
+ {
+ GNUNET_FS_TEST_daemons_stop (sched,
+ 2,
+ daemons);
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ "Failed to stop source daemon: %s\n",
+ emsg);
+ ok = 1;
+ return;
+ }
GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
"Downloading %llu bytes\n",
(unsigned long long) FILESIZE);
}
+static void
+stop_source_peer (void *cls,
+ const struct GNUNET_SCHEDULER_TaskContext *tc)
+{
+ struct GNUNET_FS_Uri *uri = cls;
+ struct GNUNET_TESTING_PeerGroup *pg;
+
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ "Stopping source peer\n");
+ pg = GNUNET_FS_TEST_get_group (daemons);
+ GNUNET_TESTING_daemons_vary (pg, 1, GNUNET_NO, TIMEOUT,
+ &do_download,
+ uri);
+}
+
+
static void
do_wait (void *cls,
const struct GNUNET_FS_Uri *uri)
ok = 1;
return;
}
+ GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
+ "Waiting to allow content to migrate\n");
d = GNUNET_FS_uri_dup (uri);
GNUNET_SCHEDULER_add_delayed (sched,
MIGRATION_DELAY,
- &do_download,
+ &stop_source_peer,
d);
}