From: Christian Grothoff Date: Thu, 27 May 2010 10:54:00 +0000 (+0000) Subject: fixing mig test X-Git-Tag: initial-import-from-subversion-38251~21548 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=512de1fc705634737fbe776d8cd33249b61a897a;p=oweals%2Fgnunet.git fixing mig test --- diff --git a/src/fs/fs_test_lib.c b/src/fs/fs_test_lib.c index 766bb121b..9c6e6e05c 100644 --- a/src/fs/fs_test_lib.c +++ b/src/fs/fs_test_lib.c @@ -445,6 +445,19 @@ GNUNET_FS_TEST_daemons_connect (struct GNUNET_SCHEDULER_Handle *sched, } +/** + * 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. * @@ -458,9 +471,10 @@ GNUNET_FS_TEST_daemons_stop (struct GNUNET_SCHEDULER_Handle *sched, 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;ifs); @@ -468,6 +482,7 @@ GNUNET_FS_TEST_daemons_stop (struct GNUNET_SCHEDULER_Handle *sched, GNUNET_free (daemons[i]); daemons[i] = NULL; } + GNUNET_TESTING_daemons_stop (pg, GNUNET_TIME_relative_multiply(GNUNET_TIME_UNIT_SECONDS, 30)); } diff --git a/src/fs/fs_test_lib.h b/src/fs/fs_test_lib.h index a13de9874..62d78f8a2 100644 --- a/src/fs/fs_test_lib.h +++ b/src/fs/fs_test_lib.h @@ -81,6 +81,17 @@ GNUNET_FS_TEST_daemons_connect (struct GNUNET_SCHEDULER_Handle *sched, void *cont_cls); +/** + * 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); + + + /** * Stop daemons used for testing. * diff --git a/src/fs/test_gnunet_service_fs_migration.c b/src/fs/test_gnunet_service_fs_migration.c index 78cd3813a..94e959f14 100644 --- a/src/fs/test_gnunet_service_fs_migration.c +++ b/src/fs/test_gnunet_service_fs_migration.c @@ -25,8 +25,9 @@ */ #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. @@ -61,7 +62,7 @@ do_stop (void *cls, char *fancy; GNUNET_FS_TEST_daemons_stop (sched, - 1, + 2, daemons); if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_PREREQ_DONE)) { @@ -88,11 +89,21 @@ do_stop (void *cls, 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); @@ -106,6 +117,22 @@ do_download (void *cls, } +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) @@ -122,10 +149,12 @@ do_wait (void *cls, 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); }