GNUnet  0.10.x
Data Structures | Macros | Functions | Variables
testbed_test.c File Reference
#include <unistd.h>
#include <gnunet/platform.h>
#include <gnunet/gnunet_util_lib.h>
#include <gnunet/gnunet_testbed_service.h>
#include <gnunet/gnunet_dht_service.h>
Include dependency graph for testbed_test.c:

Go to the source code of this file.

Data Structures

struct  MyContext
 

Macros

#define NUM_PEERS   20
 

Functions

static void shutdown_task (void *cls)
 
static void service_connect_comp (void *cls, struct GNUNET_TESTBED_Operation *op, void *ca_result, const char *emsg)
 
static void * dht_ca (void *cls, const struct GNUNET_CONFIGURATION_Handle *cfg)
 
static void dht_da (void *cls, void *op_result)
 
static void test_master (void *cls, struct GNUNET_TESTBED_RunHandle *h, unsigned int num_peers, struct GNUNET_TESTBED_Peer **peers, unsigned int links_succeeded, unsigned int links_failed)
 
int main (int argc, char **argv)
 

Variables

static struct GNUNET_TESTBED_Operationdht_op
 
static struct GNUNET_DHT_Handledht_handle
 
struct MyContext ctxt
 
static int result
 

Macro Definition Documentation

◆ NUM_PEERS

#define NUM_PEERS   20

Definition at line 7 of file testbed_test.c.

Referenced by main().

Function Documentation

◆ shutdown_task()

static void shutdown_task ( void *  cls)
static

Definition at line 24 of file testbed_test.c.

References GNUNET_OK, GNUNET_TESTBED_operation_done(), and result.

Referenced by test_master().

25 {
26  if (NULL != dht_op)
27  {
29  dht_op = NULL;
30  dht_handle = NULL;
31  }
32  result = GNUNET_OK;
33 }
static struct GNUNET_TESTBED_Operation * dht_op
Definition: testbed_test.c:9
#define GNUNET_OK
Named constants for return values.
Definition: gnunet_common.h:75
static struct GNUNET_DHT_Handle * dht_handle
Definition: testbed_test.c:11
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:2037
static int result
Definition: testbed_test.c:20
Here is the call graph for this function:
Here is the caller graph for this function:

◆ service_connect_comp()

static void service_connect_comp ( void *  cls,
struct GNUNET_TESTBED_Operation op,
void *  ca_result,
const char *  emsg 
)
static

Definition at line 37 of file testbed_test.c.

References GNUNET_assert, and GNUNET_SCHEDULER_shutdown().

Referenced by test_master().

41 {
42  GNUNET_assert (op == dht_op);
43  dht_handle = ca_result;
44  // Do work here...
46 }
static struct GNUNET_TESTBED_Operation * dht_op
Definition: testbed_test.c:9
#define GNUNET_assert(cond)
Use this for fatal errors that cannot be handled.
void GNUNET_SCHEDULER_shutdown(void)
Request the shutdown of a scheduler.
Definition: scheduler.c:517
static struct GNUNET_DHT_Handle * dht_handle
Definition: testbed_test.c:11
Here is the call graph for this function:
Here is the caller graph for this function:

◆ dht_ca()

static void* dht_ca ( void *  cls,
const struct GNUNET_CONFIGURATION_Handle cfg 
)
static

Definition at line 50 of file testbed_test.c.

References ctxt, dht_handle, GNUNET_DHT_connect(), and MyContext::ht_len.

Referenced by test_master().

51 {
52  struct MyContext *ctxt = cls;
53 
54  dht_handle = GNUNET_DHT_connect (cfg, ctxt->ht_len);
55  return dht_handle;
56 }
struct MyContext ctxt
static struct GNUNET_DHT_Handle * dht_handle
Definition: testbed_test.c:11
struct GNUNET_DHT_Handle * GNUNET_DHT_connect(const struct GNUNET_CONFIGURATION_Handle *cfg, unsigned int ht_len)
Initialize the connection with the DHT service.
Definition: dht_api.c:885
Here is the call graph for this function:
Here is the caller graph for this function:

◆ dht_da()

static void dht_da ( void *  cls,
void *  op_result 
)
static

Definition at line 60 of file testbed_test.c.

References ctxt, and GNUNET_DHT_disconnect().

Referenced by test_master().

61 {
62  struct MyContext *ctxt = cls;
63 
65  dht_handle = NULL;
66 }
static int op_result(struct GNUNET_OP_Handle *h, uint64_t op_id, int64_t result_code, const void *data, uint16_t data_size, void **ctx, uint8_t cancel)
Remove an operation, and call its result callback (unless it was cancelled).
Definition: op.c:243
struct MyContext ctxt
Connection to the DHT service.
Definition: dht_api.c:198
static struct GNUNET_DHT_Handle * dht_handle
Definition: testbed_test.c:11
void GNUNET_DHT_disconnect(struct GNUNET_DHT_Handle *handle)
Shutdown connection with the DHT service.
Definition: dht_api.c:913
Here is the call graph for this function:
Here is the caller graph for this function:

◆ test_master()

static void test_master ( void *  cls,
struct GNUNET_TESTBED_RunHandle h,
unsigned int  num_peers,
struct GNUNET_TESTBED_Peer **  peers,
unsigned int  links_succeeded,
unsigned int  links_failed 
)
static

Definition at line 70 of file testbed_test.c.

References ctxt, dht_ca(), dht_da(), GNUNET_SCHEDULER_add_shutdown(), GNUNET_TESTBED_service_connect(), MyContext::ht_len, service_connect_comp(), and shutdown_task().

Referenced by main().

76 {
77  ctxt.ht_len = 10;
79  (NULL, peers[0], "dht",
80  &service_connect_comp, NULL,
81  &dht_ca, &dht_da, &ctxt);
83 }
static struct GNUNET_TESTBED_Operation * dht_op
Definition: testbed_test.c:9
static void * dht_ca(void *cls, const struct GNUNET_CONFIGURATION_Handle *cfg)
Definition: testbed_test.c:50
struct GNUNET_SCHEDULER_Task * GNUNET_SCHEDULER_add_shutdown(GNUNET_SCHEDULER_TaskCallback task, void *task_cls)
Schedule a new task to be run on shutdown, that is when a CTRL-C signal is received, or when GNUNET_SCHEDULER_shutdown() is being invoked.
Definition: scheduler.c:1284
struct MyContext ctxt
static void service_connect_comp(void *cls, struct GNUNET_TESTBED_Operation *op, void *ca_result, const char *emsg)
Definition: testbed_test.c:37
struct GNUNET_TESTBED_Operation * GNUNET_TESTBED_service_connect(void *op_cls, struct GNUNET_TESTBED_Peer *peer, const char *service_name, GNUNET_TESTBED_ServiceConnectCompletionCallback cb, void *cb_cls, GNUNET_TESTBED_ConnectAdapter ca, GNUNET_TESTBED_DisconnectAdapter da, void *cada_cls)
Connect to a service offered by the given peer.
static void dht_da(void *cls, void *op_result)
Definition: testbed_test.c:60
static void shutdown_task(void *cls)
Definition: testbed_test.c:24
Here is the call graph for this function:
Here is the caller graph for this function:

◆ main()

int main ( int  argc,
char **  argv 
)

Definition at line 87 of file testbed_test.c.

References GNUNET_OK, GNUNET_SYSERR, GNUNET_TESTBED_test_run(), NUM_PEERS, result, ret, and test_master().

88 {
89  int ret;
90 
93  ("awesome-test", "template.conf",
94  NUM_PEERS, 0LL,
95  NULL, NULL, &test_master, NULL);
96  if ( (GNUNET_OK != ret) || (GNUNET_OK != result) )
97  return 1;
98  return 0;
99 }
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 &#39;main&#39;...
static void test_master(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: testbed_test.c:70
#define GNUNET_OK
Named constants for return values.
Definition: gnunet_common.h:75
static int ret
Final status code.
Definition: gnunet-arm.c:89
#define GNUNET_SYSERR
Definition: gnunet_common.h:76
#define NUM_PEERS
Definition: testbed_test.c:7
static int result
Definition: testbed_test.c:20
Here is the call graph for this function:

Variable Documentation

◆ dht_op

struct GNUNET_TESTBED_Operation* dht_op
static

Definition at line 9 of file testbed_test.c.

◆ dht_handle

struct GNUNET_DHT_Handle* dht_handle
static

Definition at line 11 of file testbed_test.c.

Referenced by dht_ca().

◆ ctxt

struct MyContext ctxt

Referenced by dht_ca(), dht_da(), and test_master().

◆ result

int result
static

Definition at line 20 of file testbed_test.c.

Referenced by main(), and shutdown_task().