X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Ffs%2Ftest_fs_test_lib.c;h=7678c657bd004c261e2ad8af4654a256b1480c42;hb=ed51bc86aad5044b88ce4fc3641cc920c8186863;hp=011ee1a6a83f5b6b355236884f9baa22a5410d42;hpb=15d78567a6dfa9f4644321e094c8b0eec717ec4e;p=oweals%2Fgnunet.git diff --git a/src/fs/test_fs_test_lib.c b/src/fs/test_fs_test_lib.c index 011ee1a6a..7678c657b 100644 --- a/src/fs/test_fs_test_lib.c +++ b/src/fs/test_fs_test_lib.c @@ -1,6 +1,6 @@ /* This file is part of GNUnet. - (C) 2010, 2012 Christian Grothoff (and other contributing authors) + Copyright (C) 2010, 2012 Christian Grothoff (and other contributing authors) GNUnet is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -50,6 +50,8 @@ static int ret; static void do_stop (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) { + char *fn = cls; + if (0 == (tc->reason & GNUNET_SCHEDULER_REASON_PREREQ_DONE)) { GNUNET_break (0); @@ -60,12 +62,18 @@ do_stop (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc) GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Finished download, shutting down\n", (unsigned long long) FILESIZE); } + if (NULL != fn) + { + GNUNET_DISK_directory_remove (fn); + GNUNET_free (fn); + } GNUNET_SCHEDULER_shutdown (); } static void -do_download (void *cls, const struct GNUNET_FS_Uri *uri) +do_download (void *cls, const struct GNUNET_FS_Uri *uri, + const char *fn) { if (NULL == uri) { @@ -77,15 +85,16 @@ do_download (void *cls, const struct GNUNET_FS_Uri *uri) GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Downloading %llu bytes\n", (unsigned long long) FILESIZE); GNUNET_FS_TEST_download (the_peers[0], TIMEOUT, 1, SEED, uri, VERBOSE, &do_stop, - NULL); + (NULL == fn) ? NULL : GNUNET_strdup (fn)); } static void -do_publish (void *cls, +do_publish (void *cls, struct GNUNET_TESTBED_Operation *op, const char *emsg) { + GNUNET_TESTBED_operation_done (op); if (NULL != emsg) { GNUNET_log (GNUNET_ERROR_TYPE_ERROR, "Failed to connect peers: %s\n", emsg); @@ -94,7 +103,6 @@ do_publish (void *cls, GNUNET_SCHEDULER_shutdown (); return; } - GNUNET_TESTBED_operation_done (op); GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Publishing %llu bytes\n", (unsigned long long) FILESIZE); GNUNET_FS_TEST_publish (the_peers[0], TIMEOUT, 1, GNUNET_NO, FILESIZE, SEED, @@ -105,18 +113,26 @@ do_publish (void *cls, /** * Actual main function for the test. - * + * * @param cls closure + * @param h the run handle * @param num_peers number of peers in 'peers' * @param peers handle to peers run in the testbed + * @param links_succeeded the number of overlay link connection attempts that + * succeeded + * @param links_failed the number of overlay link connection attempts that + * failed */ static void -run (void *cls, +run (void *cls, + struct GNUNET_TESTBED_RunHandle *h, unsigned int num_peers, - struct GNUNET_TESTBED_Peer **peers) + struct GNUNET_TESTBED_Peer **peers, + unsigned int links_succeeded, + unsigned int links_failed) { unsigned int i; - + GNUNET_assert (NUM_DAEMONS == num_peers); for (i=0;i