[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r23412 - gnunet/src/testbed
From: |
gnunet |
Subject: |
[GNUnet-SVN] r23412 - gnunet/src/testbed |
Date: |
Fri, 24 Aug 2012 17:46:24 +0200 |
Author: harsha
Date: 2012-08-24 17:46:24 +0200 (Fri, 24 Aug 2012)
New Revision: 23412
Modified:
gnunet/src/testbed/gnunet-service-testbed.c
gnunet/src/testbed/test_testbed_api_controllerlink.c
Log:
peer destroy forwarding with tests
Modified: gnunet/src/testbed/gnunet-service-testbed.c
===================================================================
--- gnunet/src/testbed/gnunet-service-testbed.c 2012-08-24 15:32:15 UTC (rev
23411)
+++ gnunet/src/testbed/gnunet-service-testbed.c 2012-08-24 15:46:24 UTC (rev
23412)
@@ -942,8 +942,8 @@
* @param msg the peer create success message
*/
static void
-forwarded_link_controllers_reply_relay (void *cls,
- const struct GNUNET_MessageHeader *msg)
+forwarded_operation_reply_relay (void *cls,
+ const struct GNUNET_MessageHeader *msg)
{
struct ForwardedOperationContext *fopc = cls;
struct GNUNET_MessageHeader *dup_msg;
@@ -955,7 +955,7 @@
queue_message (fopc->client, dup_msg);
GNUNET_SERVER_client_drop (fopc->client);
GNUNET_SCHEDULER_cancel (fopc->timeout_task);
- GNUNET_free (fopc);
+ GNUNET_free (fopc);
}
@@ -966,13 +966,14 @@
* @param tc the task context from scheduler
*/
static void
-forwarded_link_controllers_timeout (void *cls,
+forwarded_operation_timeout (void *cls,
const struct GNUNET_SCHEDULER_TaskContext
*tc)
{
struct ForwardedOperationContext *fopc = cls;
GNUNET_TESTBED_forward_operation_msg_cancel_ (fopc->opc);
+ send_operation_fail_msg (fopc->client, fopc->operation_id, "Timeout");
GNUNET_SERVER_client_drop (fopc->client);
GNUNET_free (fopc);
}
@@ -1034,11 +1035,11 @@
GNUNET_TESTBED_forward_operation_msg_ (lcf->gateway->controller,
lcf->operation_id,
&lcf->msg->header,
-
&forwarded_link_controllers_reply_relay,
+ &forwarded_operation_reply_relay,
fopc);
fopc->timeout_task =
GNUNET_SCHEDULER_add_delayed (TIMEOUT,
- &forwarded_link_controllers_timeout, fopc);
+ &forwarded_operation_timeout, fopc);
lcf->state = FINISHED;
lcf_proc_task_id = GNUNET_SCHEDULER_add_now (&lcf_proc_task, lcf);
break;
@@ -1717,6 +1718,7 @@
const struct GNUNET_MessageHeader *message)
{
const struct GNUNET_TESTBED_PeerDestroyMessage *msg;
+ struct ForwardedOperationContext *fopc;
struct Peer *peer;
uint32_t peer_id;
@@ -1727,7 +1729,7 @@
if ((peer_list_size <= peer_id) || (NULL == peer_list[peer_id]))
{
LOG (GNUNET_ERROR_TYPE_ERROR,
- "Asked for destroy when peer not created at us\n");
+ "Asked to destroy a non existent peer with id: %u\n", peer_id);
GNUNET_SERVER_receive_done (client, GNUNET_OK);
return;
}
@@ -1735,7 +1737,19 @@
if (GNUNET_YES == peer->is_remote)
{
/* Forward the destory message to sub controller */
- GNUNET_break (0);
+ fopc = GNUNET_malloc (sizeof (struct ForwardedOperationContext));
+ GNUNET_SERVER_client_keep (client);
+ fopc->client = client;
+ fopc->operation_id = GNUNET_ntohll (msg->operation_id);
+ fopc->opc =
+ GNUNET_TESTBED_forward_operation_msg_ (peer->details.remote.controller,
+ fopc->operation_id,
+ &msg->header,
+ &forwarded_operation_reply_relay,
+ fopc);
+ fopc->timeout_task =
+ GNUNET_SCHEDULER_add_delayed (TIMEOUT,
+ &forwarded_operation_timeout, fopc);
GNUNET_SERVER_receive_done (client, GNUNET_OK);
return;
}
Modified: gnunet/src/testbed/test_testbed_api_controllerlink.c
===================================================================
--- gnunet/src/testbed/test_testbed_api_controllerlink.c 2012-08-24
15:32:15 UTC (rev 23411)
+++ gnunet/src/testbed/test_testbed_api_controllerlink.c 2012-08-24
15:46:24 UTC (rev 23412)
@@ -83,8 +83,18 @@
SLAVE1_PEER_CREATE_SUCCESS,
/**
- * Test is successful
+ * Peer create on slave 2 successful
*/
+ SLAVE2_PEER_CREATE_SUCCESS,
+
+ /**
+ * Peer destroy on slave 1 successful
+ */
+ SLAVE1_PEER_DESTROY_SUCCESS,
+
+ /**
+ * Peer destory on slave 2 successful; Marks test as successful
+ */
SUCCESS
};
@@ -224,10 +234,11 @@
case SLAVE1_PEER_CREATE_SUCCESS:
GNUNET_assert (NULL != peer);
GNUNET_assert (NULL == emsg);
- result = SUCCESS;
+ result = SLAVE2_PEER_CREATE_SUCCESS;
slave2_peer = peer;
GNUNET_TESTBED_operation_done (op);
- GNUNET_SCHEDULER_add_now (&do_shutdown, NULL);
+ op = GNUNET_TESTBED_peer_destroy (slave1_peer);
+ GNUNET_assert (NULL != op);
break;
default:
GNUNET_assert (0);
@@ -236,6 +247,26 @@
/**
+ * Checks the event if it is an operation finished event and if indicates a
+ * successfull completion of operation
+ *
+ * @param event the event information to check
+ */
+static void
+check_operation_success (const struct GNUNET_TESTBED_EventInformation *event)
+{
+ GNUNET_assert (NULL != event);
+ GNUNET_assert (GNUNET_TESTBED_ET_OPERATION_FINISHED == event->type);
+ GNUNET_assert (event->details.operation_finished.operation == op);
+ GNUNET_assert (NULL == event->details.operation_finished.op_cls);
+ GNUNET_assert (NULL == event->details.operation_finished.emsg);
+ GNUNET_assert (GNUNET_TESTBED_PIT_GENERIC ==
+ event->details.operation_finished.pit);
+ GNUNET_assert (NULL == event->details.operation_finished.op_result.generic);
+}
+
+
+/**
* Signature of the event handler function called by the
* respective event controller.
*
@@ -248,14 +279,7 @@
switch (result)
{
case SLAVE2_REGISTERED:
- GNUNET_assert (NULL != event);
- GNUNET_assert (GNUNET_TESTBED_ET_OPERATION_FINISHED == event->type);
- GNUNET_assert (event->details.operation_finished.operation == op);
- GNUNET_assert (NULL == event->details.operation_finished.op_cls);
- GNUNET_assert (NULL == event->details.operation_finished.emsg);
- GNUNET_assert (GNUNET_TESTBED_PIT_GENERIC ==
- event->details.operation_finished.pit);
- GNUNET_assert (NULL ==
event->details.operation_finished.op_result.generic);
+ check_operation_success (event);
GNUNET_TESTBED_operation_done (op);
op = NULL;
result = SLAVE1_LINK_SUCCESS;
@@ -265,18 +289,25 @@
GNUNET_assert (NULL != op);
break;
case SLAVE1_LINK_SUCCESS:
- GNUNET_assert (GNUNET_TESTBED_ET_OPERATION_FINISHED == event->type);
- GNUNET_assert (event->details.operation_finished.operation == op);
- GNUNET_assert (NULL == event->details.operation_finished.op_cls);
- GNUNET_assert (NULL == event->details.operation_finished.emsg);
- GNUNET_assert (GNUNET_TESTBED_PIT_GENERIC ==
- event->details.operation_finished.pit);
- GNUNET_assert (NULL ==
event->details.operation_finished.op_result.generic);
+ check_operation_success (event);
GNUNET_TESTBED_operation_done (op);
op = NULL;
result = SLAVE2_LINK_SUCCESS;
op = GNUNET_TESTBED_peer_create (mc, slave, cfg, peer_create_cb, NULL);
GNUNET_assert (NULL != op);
+ break;
+ case SLAVE2_PEER_CREATE_SUCCESS:
+ check_operation_success (event);
+ GNUNET_TESTBED_operation_done (op);
+ result = SLAVE1_PEER_DESTROY_SUCCESS;
+ op = GNUNET_TESTBED_peer_destroy (slave2_peer);
+ GNUNET_assert (NULL != slave2_peer);
+ break;
+ case SLAVE1_PEER_DESTROY_SUCCESS:
+ check_operation_success (event);
+ GNUNET_TESTBED_operation_done (op);
+ result = SUCCESS;
+ GNUNET_SCHEDULER_add_now (&do_shutdown, NULL);
break;
default:
GNUNET_assert (0);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r23412 - gnunet/src/testbed,
gnunet <=