diff options
author | Sree Harsha Totakura <totakura@in.tum.de> | 2012-09-05 10:50:56 +0000 |
---|---|---|
committer | Sree Harsha Totakura <totakura@in.tum.de> | 2012-09-05 10:50:56 +0000 |
commit | 270a6392703fe1cb99f69ed8a35c1be0c864b11f (patch) | |
tree | 1c65d01fefab939684c58757880987d2a00fd060 /src/testbed/test_testbed_api_test.c | |
parent | c09edda8e8071c6e5ca6b76e7c75a7b8402010ed (diff) | |
download | gnunet-270a6392703fe1cb99f69ed8a35c1be0c864b11f.tar.gz gnunet-270a6392703fe1cb99f69ed8a35c1be0c864b11f.zip |
changed testbed API to include convenience callbacks
Diffstat (limited to 'src/testbed/test_testbed_api_test.c')
-rw-r--r-- | src/testbed/test_testbed_api_test.c | 64 |
1 files changed, 48 insertions, 16 deletions
diff --git a/src/testbed/test_testbed_api_test.c b/src/testbed/test_testbed_api_test.c index 43a5628ad..f552d1a78 100644 --- a/src/testbed/test_testbed_api_test.c +++ b/src/testbed/test_testbed_api_test.c | |||
@@ -63,6 +63,52 @@ do_shutdown (void *cls, const const struct GNUNET_SCHEDULER_TaskContext *tc) | |||
63 | 63 | ||
64 | 64 | ||
65 | /** | 65 | /** |
66 | * Callback to be called when the requested peer information is available | ||
67 | * | ||
68 | * @param cb_cls the closure from GNUNET_TETSBED_peer_get_information() | ||
69 | * @param op the operation this callback corresponds to | ||
70 | * @param pinfo the result; will be NULL if the operation has failed | ||
71 | * @param emsg error message if the operation has failed; will be NULL if the | ||
72 | * operation is successfull | ||
73 | */ | ||
74 | static void | ||
75 | peerinfo_cb (void *cb_cls, struct GNUNET_TESTBED_Operation *op_, | ||
76 | const struct GNUNET_TESTBED_PeerInformation *pinfo, | ||
77 | const char *emsg) | ||
78 | { | ||
79 | GNUNET_assert (op == op_); | ||
80 | GNUNET_assert (NULL == cb_cls); | ||
81 | GNUNET_assert (NULL == emsg); | ||
82 | GNUNET_assert (GNUNET_TESTBED_PIT_IDENTITY == pinfo->pit); | ||
83 | GNUNET_assert (NULL != pinfo->result.id); | ||
84 | GNUNET_TESTBED_operation_done (op); | ||
85 | result = GNUNET_OK; | ||
86 | GNUNET_SCHEDULER_add_now (&do_shutdown, NULL); | ||
87 | } | ||
88 | |||
89 | |||
90 | /** | ||
91 | * Callback to be called when an operation is completed | ||
92 | * | ||
93 | * @param cls the callback closure from functions generating an operation | ||
94 | * @param op the operation that has been finished | ||
95 | * @param emsg error message in case the operation has failed; will be NULL if | ||
96 | * operation has executed successfully. | ||
97 | */ | ||
98 | static void | ||
99 | op_comp_cb (void *cls, struct GNUNET_TESTBED_Operation *op_, const char *emsg) | ||
100 | { | ||
101 | GNUNET_assert (NULL == cls); | ||
102 | GNUNET_assert (op == op_); | ||
103 | GNUNET_assert (NULL == emsg); | ||
104 | GNUNET_TESTBED_operation_done (op); | ||
105 | op = GNUNET_TESTBED_peer_get_information (peers[0], | ||
106 | GNUNET_TESTBED_PIT_IDENTITY, | ||
107 | &peerinfo_cb, NULL); | ||
108 | } | ||
109 | |||
110 | |||
111 | /** | ||
66 | * Controller event callback | 112 | * Controller event callback |
67 | * | 113 | * |
68 | * @param cls NULL | 114 | * @param cls NULL |
@@ -76,21 +122,7 @@ controller_event_cb (void *cls, | |||
76 | { | 122 | { |
77 | case GNUNET_TESTBED_ET_CONNECT: | 123 | case GNUNET_TESTBED_ET_CONNECT: |
78 | GNUNET_assert (event->details.peer_connect.peer1 == peers[0]); | 124 | GNUNET_assert (event->details.peer_connect.peer1 == peers[0]); |
79 | GNUNET_assert (event->details.peer_connect.peer2 == peers[1]); | 125 | 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; | 126 | break; |
95 | default: | 127 | default: |
96 | GNUNET_assert (0); | 128 | GNUNET_assert (0); |
@@ -117,7 +149,7 @@ test_master (void *cls, unsigned int num_peers, | |||
117 | for (peer = 0; peer < num_peers; peer++) | 149 | for (peer = 0; peer < num_peers; peer++) |
118 | GNUNET_assert (NULL != peers_[peer]); | 150 | GNUNET_assert (NULL != peers_[peer]); |
119 | peers = peers_; | 151 | peers = peers_; |
120 | op = GNUNET_TESTBED_overlay_connect (NULL, peers[0], peers[1]); | 152 | op = GNUNET_TESTBED_overlay_connect (NULL, &op_comp_cb, NULL, peers[0], peers[1]); |
121 | } | 153 | } |
122 | 154 | ||
123 | 155 | ||