gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r22561 - gnunet/src/testbed


From: gnunet
Subject: [GNUnet-SVN] r22561 - gnunet/src/testbed
Date: Mon, 9 Jul 2012 13:35:19 +0200

Author: harsha
Date: 2012-07-09 13:35:19 +0200 (Mon, 09 Jul 2012)
New Revision: 22561

Modified:
   gnunet/src/testbed/gnunet-service-testbed.c
   gnunet/src/testbed/test_testbed_api.c
   gnunet/src/testbed/test_testbed_api.conf
   gnunet/src/testbed/testbed_api.c
   gnunet/src/testbed/testbed_api_peers.c
Log:
-peer create bug fixes and test case

Modified: gnunet/src/testbed/gnunet-service-testbed.c
===================================================================
--- gnunet/src/testbed/gnunet-service-testbed.c 2012-07-09 11:23:49 UTC (rev 
22560)
+++ gnunet/src/testbed/gnunet-service-testbed.c 2012-07-09 11:35:19 UTC (rev 
22561)
@@ -1085,8 +1085,9 @@
   struct GNUNET_CONFIGURATION_Handle *cfg;
   char *config;
   size_t dest_size;
+  int ret;
+  uint32_t config_size;
   uint16_t msize;
-  uint16_t config_size;
   
 
   msize = ntohs (message->size);
@@ -1097,23 +1098,24 @@
     return;
   }
   msg = (const struct GNUNET_TESTBED_PeerCreateMessage *) message;
-  if (ntohs (msg->host_id) == master_context->host_id)
+  if (ntohl (msg->host_id) == master_context->host_id)
   {
     struct Peer *peer;
     char *emsg;
     
-    /* We are responsidble for this peer */
+    /* We are responsible for this peer */
     msize -= sizeof (struct GNUNET_TESTBED_PeerCreateMessage);
     config_size = ntohl (msg->config_size);    
-    config = GNUNET_malloc (msg->config_size);
-    if (Z_OK != uncompress ((Bytef *) config, (uLongf *) &dest_size,
-                            (const Bytef *) &msg[1], (uLong) msize))
+    config = GNUNET_malloc (config_size);
+    dest_size = config_size;
+    if (Z_OK != (ret = uncompress ((Bytef *) config, (uLongf *) &dest_size,
+                                   (const Bytef *) &msg[1], (uLong) msize)))
     {
       GNUNET_break (0);           /* uncompression error */
       GNUNET_SERVER_receive_done (client, GNUNET_SYSERR);
       return;
     }
-    if (config_size == dest_size)
+    if (config_size != dest_size)
     {
       GNUNET_break (0);/* Uncompressed config size mismatch */
       GNUNET_free (config);
@@ -1133,6 +1135,7 @@
     peer = GNUNET_malloc (sizeof (struct Peer));
     peer->cfg = cfg;
     peer->id = ntohl (msg->peer_id);
+    LOG_DEBUG ("Creating peer with id: %u\n", peer->id);
     peer->peer = GNUNET_TESTING_peer_configure (test_system, peer->cfg,
                                                 peer->id,
                                                 NULL /* Peer id */,

Modified: gnunet/src/testbed/test_testbed_api.c
===================================================================
--- gnunet/src/testbed/test_testbed_api.c       2012-07-09 11:23:49 UTC (rev 
22560)
+++ gnunet/src/testbed/test_testbed_api.c       2012-07-09 11:35:19 UTC (rev 
22561)
@@ -36,6 +36,11 @@
 #define LOG(kind,...)                          \
   GNUNET_log (kind, __VA_ARGS__)
 
+/**
+ * Relative time seconds shorthand
+ */
+#define TIME_REL_SECS(sec) \
+  GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_SECONDS, sec)
 
 /**
  * Our localhost
@@ -45,7 +50,7 @@
 /**
  * The controller handle
  */
-static struct GNUNET_TESTBED_Controller *c;
+static struct GNUNET_TESTBED_Controller *controller;
 
 /**
  * A neighbouring host
@@ -58,11 +63,31 @@
 static struct GNUNET_TESTBED_HostRegistrationHandle *reg_handle;
 
 /**
+ * Handle for a peer
+ */
+static struct GNUNET_TESTBED_Peer *peer;
+
+/**
+ * Handle to configuration
+ */
+static const struct GNUNET_CONFIGURATION_Handle *cfg;
+
+/**
+ * Handle to operation
+ */
+static struct GNUNET_TESTBED_Operation *operation;
+
+/**
  * Abort task identifier
  */
-static GNUNET_SCHEDULER_TaskIdentifier abort_task_id;
+static GNUNET_SCHEDULER_TaskIdentifier abort_task;
 
 /**
+ * Peer destroy task identifier
+ */
+static GNUNET_SCHEDULER_TaskIdentifier peer_destroy_task;
+
+/**
  * The testing result
  */
 static int result;
@@ -77,11 +102,11 @@
 static void
 do_shutdown (void *cls, const const struct GNUNET_SCHEDULER_TaskContext *tc)
 {
-  if (GNUNET_SCHEDULER_NO_TASK != abort_task_id)
-    GNUNET_SCHEDULER_cancel (abort_task_id);
+  if (GNUNET_SCHEDULER_NO_TASK != abort_task)
+    GNUNET_SCHEDULER_cancel (abort_task);
   if (NULL != reg_handle)
     GNUNET_TESTBED_cancel_registration (reg_handle);
-  GNUNET_TESTBED_controller_disconnect (c);
+  GNUNET_TESTBED_controller_disconnect (controller);
   GNUNET_TESTBED_host_destroy (neighbour);
   GNUNET_TESTBED_host_destroy (host);
 }
@@ -97,7 +122,9 @@
 do_abort (void *cls, const const struct GNUNET_SCHEDULER_TaskContext *tc)
 {
   LOG (GNUNET_ERROR_TYPE_WARNING, "Test timedout -- Aborting\n");
-  abort_task_id = GNUNET_SCHEDULER_NO_TASK;
+  abort_task = GNUNET_SCHEDULER_NO_TASK;
+  if (GNUNET_SCHEDULER_NO_TASK != peer_destroy_task)
+    GNUNET_SCHEDULER_cancel (peer_destroy_task);
   do_shutdown (cls, tc);
 }
 
@@ -112,11 +139,35 @@
 static void 
 controller_cb(void *cls, const struct GNUNET_TESTBED_EventInformation *event)
 {
-  GNUNET_break (0);
+  GNUNET_assert (GNUNET_TESTBED_ET_OPERATION_FINISHED == event->type);
+  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);
+  result = GNUNET_YES;  
+  GNUNET_SCHEDULER_add_now (&do_shutdown, NULL);
 }
 
 
 /**
+ * Task for destroying the peer
+ *
+ * @param cls NULL
+ * @param tc the task context
+ */
+static void
+do_peer_destroy (void *cls,
+                 const const struct GNUNET_SCHEDULER_TaskContext *tc)
+{
+  peer_destroy_task = GNUNET_SCHEDULER_NO_TASK;
+  operation = GNUNET_TESTBED_peer_destroy (peer);
+  GNUNET_assert (NULL != operation);
+}
+
+
+/**
  * Callback which will be called to after a host registration succeeded or 
failed
  *
  * @param cls the host which has been registered
@@ -126,9 +177,11 @@
 registration_comp (void *cls, const char *emsg)
 {
   GNUNET_assert (cls == neighbour);
-  reg_handle = NULL;
-  result = GNUNET_YES;
-  GNUNET_SCHEDULER_add_now (&do_shutdown, NULL);
+  reg_handle = NULL;  
+  peer = GNUNET_TESTBED_peer_create (controller, host, cfg);
+  GNUNET_assert (NULL != peer);
+  peer_destroy_task = 
+    GNUNET_SCHEDULER_add_now (&do_peer_destroy, NULL);
 }
 
 
@@ -137,27 +190,29 @@
  */
 static void
 run (void *cls,
-     const struct GNUNET_CONFIGURATION_Handle *cfg,
+     const struct GNUNET_CONFIGURATION_Handle *config,
      struct GNUNET_TESTING_Peer *peer)
 {
   uint64_t event_mask;
 
+  cfg = config;
   host = GNUNET_TESTBED_host_create (NULL, NULL, 0);
   GNUNET_assert (NULL != host);
   event_mask ^= event_mask;    /* NULL out */
   event_mask |= (1L << GNUNET_TESTBED_ET_PEER_START);
   event_mask |= (1L << GNUNET_TESTBED_ET_PEER_STOP);
   event_mask |= (1L << GNUNET_TESTBED_ET_CONNECT);
-  c = GNUNET_TESTBED_controller_connect (cfg, host, event_mask,
-                                        &controller_cb, NULL);
-  GNUNET_assert (NULL != c);
+  event_mask |= (1L << GNUNET_TESTBED_ET_OPERATION_FINISHED);
+  controller = GNUNET_TESTBED_controller_connect (config, host, event_mask,
+                                                  &controller_cb, NULL);
+  GNUNET_assert (NULL != controller);
   neighbour = GNUNET_TESTBED_host_create ("localhost", NULL, 0);
   GNUNET_assert (NULL != neighbour);
   reg_handle = 
-    GNUNET_TESTBED_register_host (c, neighbour, &registration_comp, neighbour);
-  GNUNET_assert (NULL != reg_handle);
-  
-  abort_task_id = GNUNET_SCHEDULER_add_delayed 
+    GNUNET_TESTBED_register_host (controller, neighbour, &registration_comp,
+                                  neighbour);
+  GNUNET_assert (NULL != reg_handle);  
+  abort_task = GNUNET_SCHEDULER_add_delayed 
     (GNUNET_TIME_relative_multiply (GNUNET_TIME_UNIT_MINUTES, 30), &do_abort, 
NULL);
 }
 
@@ -168,10 +223,10 @@
 int main (int argc, char **argv)
 {
   result = GNUNET_SYSERR;
-  if (0 != GNUNET_TESTING_service_run ("test_testbed_api",
-                                      "testbed",
-                                      "test_testbed_api.conf",
-                                      &run, NULL))
+  if (0 != GNUNET_TESTING_peer_run ("test_testbed_api",
+                                    //                                "arm",
+                                    "test_testbed_api.conf",
+                                    &run, NULL))
     return 1;
   else return (GNUNET_OK == result) ? 0 : 1;
 }

Modified: gnunet/src/testbed/test_testbed_api.conf
===================================================================
--- gnunet/src/testbed/test_testbed_api.conf    2012-07-09 11:23:49 UTC (rev 
22560)
+++ gnunet/src/testbed/test_testbed_api.conf    2012-07-09 11:35:19 UTC (rev 
22561)
@@ -40,7 +40,7 @@
 PORT = 12092
 
 [arm]
-DEFAULTSERVICES =
+DEFAULTSERVICES = core testbed
 PORT = 12366
 DEBUG = NO
 

Modified: gnunet/src/testbed/testbed_api.c
===================================================================
--- gnunet/src/testbed/testbed_api.c    2012-07-09 11:23:49 UTC (rev 22560)
+++ gnunet/src/testbed/testbed_api.c    2012-07-09 11:35:19 UTC (rev 22561)
@@ -277,6 +277,7 @@
   {
     if (NULL != c->cc)
       c->cc (c->cc_cls, event);
+    GNUNET_free (event);
   }
   GNUNET_CONTAINER_DLL_remove (c->op_head, c->op_tail, op);
   GNUNET_free (op);
@@ -316,6 +317,7 @@
       handle_opsuccess (c, (const struct
                             GNUNET_TESTBED_GenericOperationSuccessEventMessage
                             *) msg);
+    break;
   default:
     GNUNET_break (0);
   }

Modified: gnunet/src/testbed/testbed_api_peers.c
===================================================================
--- gnunet/src/testbed/testbed_api_peers.c      2012-07-09 11:23:49 UTC (rev 
22560)
+++ gnunet/src/testbed/testbed_api_peers.c      2012-07-09 11:35:19 UTC (rev 
22561)
@@ -97,7 +97,7 @@
   GNUNET_free (config);
   msize = xc_size + sizeof (struct GNUNET_TESTBED_PeerCreateMessage);
   msg = GNUNET_realloc (xconfig, msize);
-  memmove (&msg[1], msg, sizeof (struct GNUNET_TESTBED_PeerCreateMessage));
+  memmove (&msg[1], msg, xc_size); /* Move the compressed config */
   msg->header.size = htons (msize);
   msg->header.type = htons (GNUNET_MESSAGE_TYPE_TESTBED_CREATEPEER);
   msg->host_id = htonl (GNUNET_TESTBED_host_get_id_ (peer->host));




reply via email to

[Prev in Thread] Current Thread [Next in Thread]