X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=src%2Ftopology%2Ftest_gnunet_daemon_topology.c;h=7242fcf439b9e3feb33df2975ccc5c7c8d2b6962;hb=160ddfc67766446ba16bf9d9495d809b1e7a5c8d;hp=b86ee952fed5bbe6980cf61042e8d8f3f39c6be7;hpb=3375db1d8629eece440be696537179d812f2c3d7;p=oweals%2Fgnunet.git diff --git a/src/topology/test_gnunet_daemon_topology.c b/src/topology/test_gnunet_daemon_topology.c index b86ee952f..7242fcf43 100644 --- a/src/topology/test_gnunet_daemon_topology.c +++ b/src/topology/test_gnunet_daemon_topology.c @@ -1,10 +1,10 @@ /* This file is part of GNUnet. - (C) 2009 Christian Grothoff (and other contributing authors) + Copyright (C) 2009, 2012 GNUnet e.V. GNUnet is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published - by the Free Software Foundation; either version 2, or (at your + by the Free Software Foundation; either version 3, or (at your option) any later version. GNUnet is distributed in the hope that it will be useful, but @@ -14,170 +14,84 @@ You should have received a copy of the GNU General Public License along with GNUnet; see the file COPYING. If not, write to the - Free Software Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. + Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, + Boston, MA 02110-1301, USA. */ /** * @file topology/test_gnunet_daemon_topology.c * @brief testcase for topology maintenance code */ #include "platform.h" -#include "gnunet_testing_lib.h" +#include "gnunet_testbed_service.h" -#define VERBOSE GNUNET_YES -#define NUM_PEERS 2 +#define NUM_PEERS 8 /** * How long until we give up on connecting the peers? */ -#define TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 60) - -#define CONNECT_ATTEMPTS 3 +#define TIMEOUT GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 600) static int ok; -static int peers_left; - -static int connect_left; - -static struct GNUNET_TESTING_PeerGroup *pg; - -static struct GNUNET_TESTING_Daemon *first; - -static struct GNUNET_TESTING_Daemon *last; - -static struct GNUNET_SCHEDULER_Handle *sched; +static unsigned int connect_left; static void -clean_up_task (void *cls, - const struct GNUNET_SCHEDULER_TaskContext *tc) -{ - GNUNET_TESTING_daemons_stop (pg); - ok = 0; -} - - -static void -notify_connect_complete(void *cls, - const struct GNUNET_PeerIdentity *first, - const struct GNUNET_PeerIdentity *second, - const struct GNUNET_CONFIGURATION_Handle *first_cfg, - const struct GNUNET_CONFIGURATION_Handle *second_cfg, - struct GNUNET_TESTING_Daemon *first_daemon, - struct GNUNET_TESTING_Daemon *second_daemon, - const char *emsg) +notify_connect_complete (void *cls, + struct GNUNET_TESTBED_Operation *op, + const char *emsg) { + GNUNET_TESTBED_operation_done (op); if (NULL != emsg) - { - fprintf (stderr, - "Failed to connect two peers: %s\n", - emsg); - GNUNET_TESTING_daemons_stop (pg); - GNUNET_assert (0); - return; - } + { + FPRINTF (stderr, "Failed to connect two peers: %s\n", emsg); + GNUNET_SCHEDULER_shutdown (); + ok = 1; + return; + } connect_left--; - if (connect_left == 0) - { - /* FIXME: check that topology adds a few more links - in addition to those that were seeded */ - /* For now, sleep so we can have the daemon do some work */ - GNUNET_SCHEDULER_add_delayed (sched, - GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, 5), - &clean_up_task, - NULL); - } + if (0 == connect_left) + { + /* FIXME: check that topology adds a few more links + * in addition to those that were seeded */ + GNUNET_SCHEDULER_shutdown (); + } } -static void my_cb(void *cls, - const struct GNUNET_PeerIdentity *id, - const struct GNUNET_CONFIGURATION_Handle *cfg, - struct GNUNET_TESTING_Daemon *d, - const char *emsg) +static void +do_connect (void *cls, + struct GNUNET_TESTBED_RunHandle *h, + unsigned int num_peers, + struct GNUNET_TESTBED_Peer **peers, + unsigned int links_succeeded, + unsigned int links_failed) { - GNUNET_assert (id != NULL); - peers_left--; - if (first == NULL) - { - connect_left = NUM_PEERS; - first = d; - last = d; - return; - } - GNUNET_TESTING_daemons_connect (last, d, TIMEOUT, CONNECT_ATTEMPTS, - ¬ify_connect_complete, - NULL); - if (peers_left == 0) + unsigned int i; + + GNUNET_assert (NUM_PEERS == num_peers); + for (i=0;i