GNUnet  0.10.x
Typedefs | Functions
dht_test_lib.h File Reference

library for writing DHT tests More...

#include "gnunet_testbed_service.h"
#include "gnunet_dht_service.h"
Include dependency graph for dht_test_lib.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Typedefs

typedef void(* GNUNET_DHT_TEST_AppMain) (void *cls, struct GNUNET_DHT_TEST_Context *ctx, unsigned int num_peers, struct GNUNET_TESTBED_Peer **peers, struct GNUNET_DHT_Handle **dhts)
 Main function of a DHT test. More...
 

Functions

void GNUNET_DHT_TEST_run (const char *testname, const char *cfgname, unsigned int num_peers, GNUNET_DHT_TEST_AppMain tmain, void *tmain_cls)
 Run a test using the given name, configuration file and number of peers. More...
 
void GNUNET_DHT_TEST_cleanup (struct GNUNET_DHT_TEST_Context *ctx)
 Clean up the testbed. More...
 

Detailed Description

library for writing DHT tests

Author
Christian Grothoff

Definition in file dht_test_lib.h.

Typedef Documentation

◆ GNUNET_DHT_TEST_AppMain

typedef void(* GNUNET_DHT_TEST_AppMain) (void *cls, struct GNUNET_DHT_TEST_Context *ctx, unsigned int num_peers, struct GNUNET_TESTBED_Peer **peers, struct GNUNET_DHT_Handle **dhts)

Main function of a DHT test.

Parameters
clsclosure
ctxargument to give to GNUNET_DHT_TEST_cleanup on test end
num_peersnumber of peers that are running
peersarray of peers
dhtshandle to each of the DHTs of the peers

Definition at line 54 of file dht_test_lib.h.

Function Documentation

◆ GNUNET_DHT_TEST_run()

void GNUNET_DHT_TEST_run ( const char *  testname,
const char *  cfgname,
unsigned int  num_peers,
GNUNET_DHT_TEST_AppMain  tmain,
void *  tmain_cls 
)

Run a test using the given name, configuration file and number of peers.

Parameters
testnamename of the test (for logging)
cfgnamename of the configuration file
num_peersnumber of peers to start
tmainmain function to run once the testbed is ready
tmain_clsclosure for 'tmain'

Definition at line 193 of file dht_test_lib.c.

References GNUNET_DHT_TEST_Context::app_main, GNUNET_DHT_TEST_Context::app_main_cls, ctx, dht_test_run(), GNUNET_DHT_TEST_Context::dhts, GNUNET_new, GNUNET_new_array, GNUNET_TESTBED_test_run(), GNUNET_DHT_TEST_Context::num_peers, GNUNET_DHT_TEST_Context::ops, and tmain().

198 {
200 
201  ctx = GNUNET_new (struct GNUNET_DHT_TEST_Context);
202  ctx->num_peers = num_peers;
204  struct GNUNET_TESTBED_Operation *);
206  struct GNUNET_DHT_Handle *);
207  ctx->app_main = tmain;
208  ctx->app_main_cls = tmain_cls;
209  (void) GNUNET_TESTBED_test_run (testname,
210  cfgname,
211  num_peers,
212  0LL, NULL, NULL,
213  &dht_test_run, ctx);
214 }
static void dht_test_run(void *cls, struct GNUNET_TESTBED_RunHandle *h, unsigned int num_peers, struct GNUNET_TESTBED_Peer **peers, unsigned int links_succeeded, unsigned int links_failed)
Definition: dht_test_lib.c:159
int GNUNET_TESTBED_test_run(const char *testname, const char *cfg_filename, unsigned int num_peers, uint64_t event_mask, GNUNET_TESTBED_ControllerCallback cc, void *cc_cls, GNUNET_TESTBED_TestMaster test_master, void *test_master_cls)
Convenience method for running a "simple" test on the local system with a single call from 'main'...
unsigned int num_peers
Number of peers running, size of the arrays above.
Definition: dht_test_lib.c:61
#define GNUNET_new(type)
Allocate a struct or union of the given type.
Test context for a DHT Test.
Definition: dht_test_lib.c:31
static struct GNUNET_DNSSTUB_Context * ctx
Context for DNS resolution.
Connection to the DHT service.
Definition: dht_api.c:205
Opaque handle to an abstract operation to be executed by the testing framework.
static void tmain(void *cls, struct GNUNET_CADET_TEST_Context *ctx, unsigned int num_peers, struct GNUNET_TESTBED_Peer **testbed_peers, struct GNUNET_CADET_Handle **cadetes)
test main: start test when all peers are connected
#define GNUNET_new_array(n, type)
Allocate a size n array with structs or unions of the given type.
static unsigned int num_peers
struct GNUNET_DHT_Handle ** dhts
Array of handles to the DHT for each peer.
Definition: dht_test_lib.c:41
void * app_main_cls
Closure for 'app_main'.
Definition: dht_test_lib.c:56
struct GNUNET_TESTBED_Operation ** ops
Operation associated with the connection to the DHT.
Definition: dht_test_lib.c:46
GNUNET_DHT_TEST_AppMain app_main
Main function of the test to run once all DHTs are available.
Definition: dht_test_lib.c:51
Here is the call graph for this function:

◆ GNUNET_DHT_TEST_cleanup()

void GNUNET_DHT_TEST_cleanup ( struct GNUNET_DHT_TEST_Context ctx)

Clean up the testbed.

Parameters
ctxhandle for the testbed

Definition at line 147 of file dht_test_lib.c.

References GNUNET_DHT_TEST_Context::dhts, GNUNET_free, GNUNET_SCHEDULER_shutdown(), GNUNET_TESTBED_operation_done(), GNUNET_DHT_TEST_Context::num_peers, and GNUNET_DHT_TEST_Context::ops.

148 {
149  for (unsigned int i=0;i<ctx->num_peers;i++)
151  GNUNET_free (ctx->ops);
152  GNUNET_free (ctx->dhts);
153  GNUNET_free (ctx);
155 }
unsigned int num_peers
Number of peers running, size of the arrays above.
Definition: dht_test_lib.c:61
void GNUNET_SCHEDULER_shutdown(void)
Request the shutdown of a scheduler.
Definition: scheduler.c:524
void GNUNET_TESTBED_operation_done(struct GNUNET_TESTBED_Operation *operation)
This function is used to signal that the event information (struct GNUNET_TESTBED_EventInformation) f...
Definition: testbed_api.c:2046
struct GNUNET_DHT_Handle ** dhts
Array of handles to the DHT for each peer.
Definition: dht_test_lib.c:41
struct GNUNET_TESTBED_Operation ** ops
Operation associated with the connection to the DHT.
Definition: dht_test_lib.c:46
#define GNUNET_free(ptr)
Wrapper around free.
Here is the call graph for this function: