[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r22868 - gnunet/src/testbed
From: |
gnunet |
Subject: |
[GNUnet-SVN] r22868 - gnunet/src/testbed |
Date: |
Tue, 24 Jul 2012 14:39:39 +0200 |
Author: harsha
Date: 2012-07-24 14:39:39 +0200 (Tue, 24 Jul 2012)
New Revision: 22868
Modified:
gnunet/src/testbed/test_testbed_api.c
gnunet/src/testbed/testbed_api.c
gnunet/src/testbed/testbed_api_peers.c
gnunet/src/testbed/testbed_api_peers.h
Log:
testcases for peer get information
Modified: gnunet/src/testbed/test_testbed_api.c
===================================================================
--- gnunet/src/testbed/test_testbed_api.c 2012-07-24 11:40:07 UTC (rev
22867)
+++ gnunet/src/testbed/test_testbed_api.c 2012-07-24 12:39:39 UTC (rev
22868)
@@ -94,6 +94,32 @@
/**
+ * Enumeration of sub testcases
+ */
+enum Test
+ {
+ /**
+ * Test cases which are not covered by the below ones
+ */
+ OTHER,
+
+ /**
+ * Test where we get a peer config from controller
+ */
+ PEER_GETCONFIG,
+
+ /**
+ * Test where we get a peer's identity from controller
+ */
+ PEER_DESTROY,
+ };
+
+/**
+ * Testing status
+ */
+static enum Test sub_test;
+
+/**
* Shutdown nicely
*
* @param cls NULL
@@ -102,6 +128,7 @@
static void
do_shutdown (void *cls, const const struct GNUNET_SCHEDULER_TaskContext *tc)
{
+ LOG (GNUNET_ERROR_TYPE_DEBUG, "Shutting down...\n");
if (GNUNET_SCHEDULER_NO_TASK != abort_task)
GNUNET_SCHEDULER_cancel (abort_task);
if (NULL != reg_handle)
@@ -143,12 +170,32 @@
switch (event->type)
{
case GNUNET_TESTBED_ET_OPERATION_FINISHED:
- GNUNET_assert (event->details.operation_finished.operation == operation);
- 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);
+ switch(sub_test)
+ {
+ case PEER_GETCONFIG:
+ GNUNET_assert (event->details.operation_finished.operation == operation);
+ GNUNET_assert (NULL == event->details.operation_finished.op_cls);
+ GNUNET_assert (NULL == event->details.operation_finished.emsg);
+ GNUNET_assert (GNUNET_TESTBED_PIT_CONFIGURATION ==
+ event->details.operation_finished.pit);
+ GNUNET_assert (NULL != event->details.operation_finished.op_result.cfg);
+ sub_test = PEER_DESTROY;
+ operation = GNUNET_TESTBED_peer_destroy (peer);
+ break;
+ case PEER_DESTROY:
+ GNUNET_assert (event->details.operation_finished.operation == operation);
+ 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);
+ GNUNET_SCHEDULER_add_now (&do_shutdown, NULL);
+ break;
+ case OTHER:
+ GNUNET_assert (0);
+ break;
+ }
break;
case GNUNET_TESTBED_ET_PEER_START:
GNUNET_assert (event->details.peer_start.host == host);
@@ -157,8 +204,11 @@
break;
case GNUNET_TESTBED_ET_PEER_STOP:
GNUNET_assert (event->details.peer_stop.peer == peer);
- result = GNUNET_YES;
- GNUNET_SCHEDULER_add_now (&do_shutdown, NULL);
+ result = GNUNET_YES;
+ sub_test = PEER_GETCONFIG;
+ operation =
+ GNUNET_TESTBED_peer_get_information (peer,
+ GNUNET_TESTBED_PIT_CONFIGURATION);
break;
default:
GNUNET_assert (0); /* We should never reach this state */
Modified: gnunet/src/testbed/testbed_api.c
===================================================================
--- gnunet/src/testbed/testbed_api.c 2012-07-24 11:40:07 UTC (rev 22867)
+++ gnunet/src/testbed/testbed_api.c 2012-07-24 12:39:39 UTC (rev 22868)
@@ -410,6 +410,7 @@
{
struct GNUNET_TESTBED_Operation *op;
struct GNUNET_TESTBED_Peer *peer;
+ struct PeerInfoData *data;
struct GNUNET_TESTBED_EventInformation info;
uint64_t op_id;
@@ -424,12 +425,15 @@
LOG_DEBUG ("Operation not found");
return GNUNET_YES;
}
- peer = op->data;
+ data = op->data;
+ GNUNET_assert (NULL != data);
+ peer = data->peer;
GNUNET_assert (NULL != peer);
GNUNET_assert (ntohl (msg->peer_id) == peer->unique_id);
if (0 == (c->event_mask & (1L << GNUNET_TESTBED_ET_OPERATION_FINISHED)))
{
GNUNET_CONTAINER_DLL_remove (c->op_head, c->op_tail, op);
+ GNUNET_free (data);
GNUNET_free (op);
return GNUNET_YES;
}
@@ -437,8 +441,8 @@
info.details.operation_finished.operation = op;
info.details.operation_finished.op_cls = NULL;
info.details.operation_finished.emsg = NULL;
- info.details.operation_finished.pit = op->operation_id;
- switch (op->operation_id)
+ info.details.operation_finished.pit = data->pit;
+ switch (data->pit)
{
case GNUNET_TESTBED_PIT_IDENTITY:
{
@@ -467,7 +471,9 @@
cfg = GNUNET_CONFIGURATION_create ();
GNUNET_assert (GNUNET_OK ==
GNUNET_CONFIGURATION_deserialize (cfg, config,
- (size_t) config_size,
GNUNET_NO));
+ (size_t) config_size,
+ GNUNET_NO));
+ GNUNET_free (config);
info.details.operation_finished.op_result.cfg = cfg;
}
break;
@@ -477,6 +483,7 @@
}
c->cc (c->cc_cls, &info);
GNUNET_CONTAINER_DLL_remove (c->op_head, c->op_tail, op);
+ GNUNET_free (data);
GNUNET_free (op);
return GNUNET_YES;
}
Modified: gnunet/src/testbed/testbed_api_peers.c
===================================================================
--- gnunet/src/testbed/testbed_api_peers.c 2012-07-24 11:40:07 UTC (rev
22867)
+++ gnunet/src/testbed/testbed_api_peers.c 2012-07-24 12:39:39 UTC (rev
22868)
@@ -242,12 +242,16 @@
{
struct GNUNET_TESTBED_PeerGetConfigurationMessage *msg;
struct GNUNET_TESTBED_Operation *op;
+ struct PeerInfoData *data;
GNUNET_assert (GNUNET_TESTBED_PIT_GENERIC != pit);
+ data = GNUNET_malloc (sizeof (struct PeerInfoData));
+ data->peer = peer;
+ data->pit = pit;
op = GNUNET_malloc (sizeof (struct GNUNET_TESTBED_Operation));
op->type = OP_PEER_INFO;
op->operation_id = peer->controller->operation_counter++;
- op->data = peer;
+ op->data = data;
msg = GNUNET_malloc (sizeof (struct
GNUNET_TESTBED_PeerGetConfigurationMessage));
msg->header.size = htons
Modified: gnunet/src/testbed/testbed_api_peers.h
===================================================================
--- gnunet/src/testbed/testbed_api_peers.h 2012-07-24 11:40:07 UTC (rev
22867)
+++ gnunet/src/testbed/testbed_api_peers.h 2012-07-24 12:39:39 UTC (rev
22868)
@@ -116,6 +116,23 @@
/**
+ * Data for the OperationType OP_PEER_INFO
+ */
+struct PeerInfoData
+{
+ /**
+ * The peer whose information has been requested
+ */
+ struct GNUNET_TESTBED_Peer *peer;
+
+ /**
+ * The type of peer information requested
+ */
+ enum GNUNET_TESTBED_PeerInformationType pit;
+};
+
+
+/**
* Create the given peer at the specified host using the given
* controller. If the given controller is not running on the target
* host, it should find or create a controller at the target host and
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r22868 - gnunet/src/testbed,
gnunet <=