aboutsummaryrefslogtreecommitdiff
path: root/src/testbed/test_testbed_api_test.c
diff options
context:
space:
mode:
authorSree Harsha Totakura <totakura@in.tum.de>2012-09-03 10:45:57 +0000
committerSree Harsha Totakura <totakura@in.tum.de>2012-09-03 10:45:57 +0000
commit9ec9052c1cee478ab24f66a466774d6f63ace858 (patch)
tree78b7d2c1348c6e5658e994d03678ed3dc0b6f54d /src/testbed/test_testbed_api_test.c
parent2234e06e79ad0eb9106a6b7b75e79a040fe841b6 (diff)
downloadgnunet-9ec9052c1cee478ab24f66a466774d6f63ace858.tar.gz
gnunet-9ec9052c1cee478ab24f66a466774d6f63ace858.zip
controller callback added in GNUNET_TESTBED_test_run
Diffstat (limited to 'src/testbed/test_testbed_api_test.c')
-rw-r--r--src/testbed/test_testbed_api_test.c65
1 files changed, 58 insertions, 7 deletions
diff --git a/src/testbed/test_testbed_api_test.c b/src/testbed/test_testbed_api_test.c
index 83d18ce0c..43a5628ad 100644
--- a/src/testbed/test_testbed_api_test.c
+++ b/src/testbed/test_testbed_api_test.c
@@ -34,6 +34,16 @@
34#define NUM_PEERS 25 34#define NUM_PEERS 25
35 35
36/** 36/**
37 * Array of peers
38 */
39static struct GNUNET_TESTBED_Peer **peers;
40
41/**
42 * Operation handle
43 */
44static struct GNUNET_TESTBED_Operation *op;
45
46/**
37 * Testing result 47 * Testing result
38 */ 48 */
39static int result; 49static int result;
@@ -53,6 +63,42 @@ do_shutdown (void *cls, const const struct GNUNET_SCHEDULER_TaskContext *tc)
53 63
54 64
55/** 65/**
66 * Controller event callback
67 *
68 * @param cls NULL
69 * @param event the controller event
70 */
71static void
72controller_event_cb (void *cls,
73 const struct GNUNET_TESTBED_EventInformation *event)
74{
75 switch (event->type)
76 {
77 case GNUNET_TESTBED_ET_CONNECT:
78 GNUNET_assert (event->details.peer_connect.peer1 == peers[0]);
79 GNUNET_assert (event->details.peer_connect.peer2 == peers[1]);
80 GNUNET_TESTBED_operation_done (op);
81 op = GNUNET_TESTBED_peer_get_information (peers[0],
82 GNUNET_TESTBED_PIT_IDENTITY);
83 break;
84 case GNUNET_TESTBED_ET_OPERATION_FINISHED:
85 GNUNET_assert (event->details.operation_finished.operation == op);
86 GNUNET_assert (NULL == event->details.operation_finished.op_cls);
87 GNUNET_assert (NULL == event->details.operation_finished.emsg);
88 GNUNET_assert (GNUNET_TESTBED_PIT_IDENTITY ==
89 event->details.operation_finished.pit);
90 GNUNET_assert (NULL != event->details.operation_finished.op_result.pid);
91 GNUNET_TESTBED_operation_done (op);
92 result = GNUNET_OK;
93 GNUNET_SCHEDULER_add_now (&do_shutdown, NULL);
94 break;
95 default:
96 GNUNET_assert (0);
97 }
98}
99
100
101/**
56 * Signature of a main function for a testcase. 102 * Signature of a main function for a testcase.
57 * 103 *
58 * @param cls closure 104 * @param cls closure
@@ -61,18 +107,17 @@ do_shutdown (void *cls, const const struct GNUNET_SCHEDULER_TaskContext *tc)
61 */ 107 */
62static void 108static void
63test_master (void *cls, unsigned int num_peers, 109test_master (void *cls, unsigned int num_peers,
64 struct GNUNET_TESTBED_Peer **peers) 110 struct GNUNET_TESTBED_Peer **peers_)
65{ 111{
66 unsigned int peer; 112 unsigned int peer;
67 113
68 GNUNET_assert (NULL == cls); 114 GNUNET_assert (NULL == cls);
69 GNUNET_assert (NUM_PEERS == num_peers); 115 GNUNET_assert (NUM_PEERS == num_peers);
70 GNUNET_assert (NULL != peers); 116 GNUNET_assert (NULL != peers_);
71 for (peer = 0; peer < num_peers; peer++) 117 for (peer = 0; peer < num_peers; peer++)
72 GNUNET_assert (NULL != peers[peer]); 118 GNUNET_assert (NULL != peers_[peer]);
73 result = GNUNET_OK; 119 peers = peers_;
74 /* Artificial delay for shutdown */ 120 op = GNUNET_TESTBED_overlay_connect (NULL, peers[0], peers[1]);
75 GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_UNIT_SECONDS, &do_shutdown, NULL);
76} 121}
77 122
78 123
@@ -82,9 +127,15 @@ test_master (void *cls, unsigned int num_peers,
82int 127int
83main (int argc, char **argv) 128main (int argc, char **argv)
84{ 129{
130 uint64_t event_mask;
131
85 result = GNUNET_SYSERR; 132 result = GNUNET_SYSERR;
133 event_mask = 0;
134 event_mask |= (1LL << GNUNET_TESTBED_ET_CONNECT);
135 event_mask |= (1LL << GNUNET_TESTBED_ET_OPERATION_FINISHED);
86 GNUNET_TESTBED_test_run ("test_testbed_api_test", "test_testbed_api.conf", 136 GNUNET_TESTBED_test_run ("test_testbed_api_test", "test_testbed_api.conf",
87 NUM_PEERS, &test_master, NULL); 137 NUM_PEERS, event_mask, &controller_event_cb, NULL,
138 &test_master, NULL);
88 if (GNUNET_OK != result) 139 if (GNUNET_OK != result)
89 return 1; 140 return 1;
90 return 0; 141 return 0;