gnunet-svn
[Top][All Lists]
Advanced

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

[GNUnet-SVN] r26474 - in gnunet/src: include testbed


From: gnunet
Subject: [GNUnet-SVN] r26474 - in gnunet/src: include testbed
Date: Mon, 18 Mar 2013 14:11:36 +0100

Author: harsha
Date: 2013-03-18 14:11:36 +0100 (Mon, 18 Mar 2013)
New Revision: 26474

Modified:
   gnunet/src/include/gnunet_testbed_service.h
   gnunet/src/testbed/gnunet-service-testbed.c
   gnunet/src/testbed/test_testbed_api.c
   gnunet/src/testbed/test_testbed_api_2peers_1controller.c
   gnunet/src/testbed/test_testbed_api_3peers_3controllers.c
   gnunet/src/testbed/test_testbed_api_controllerlink.c
   gnunet/src/testbed/test_testbed_api_testbed_run.c
   gnunet/src/testbed/testbed_api.c
   gnunet/src/testbed/testbed_api_peers.c
   gnunet/src/testbed/testbed_api_services.c
   gnunet/src/testbed/testbed_api_testbed.c
Log:
expose Operation and associated closure in every event



Modified: gnunet/src/include/gnunet_testbed_service.h
===================================================================
--- gnunet/src/include/gnunet_testbed_service.h 2013-03-18 12:11:12 UTC (rev 
26473)
+++ gnunet/src/include/gnunet_testbed_service.h 2013-03-18 13:11:36 UTC (rev 
26474)
@@ -252,11 +252,6 @@
    */
   GNUNET_TESTBED_ET_OPERATION_FINISHED = 4,
 
-  /**
-   * The 'GNUNET_TESTBED_run' operation has been completed
-   */
-  GNUNET_TESTBED_ET_TESTBED_ONLINE = 5
-
 };
 
 
@@ -306,6 +301,16 @@
   enum GNUNET_TESTBED_EventType type;
 
   /**
+   * Handle for the corresponding operation that generated this event
+   */
+  struct GNUNET_TESTBED_Operation *op;
+
+  /**
+   * Closure given while creating the above operation
+   */
+  void *op_cls;
+
+  /**
    * Details about the event.
    */
   union
@@ -381,19 +386,7 @@
      */
     struct
     {
-
       /**
-       * Handle for the operation that was finished.
-       */
-      struct GNUNET_TESTBED_Operation *operation;
-
-      /**
-       * Closure that was passed in when the event was
-       * requested.
-       */
-      void *op_cls;
-
-      /**
        * Error message for the operation, NULL on success.
        */
       const char *emsg;
@@ -406,32 +399,6 @@
 
     } operation_finished;
 
-    /**
-     * Details about an testbed run completed event.
-     */
-    struct
-    {
-
-      /**
-       * Error message for the operation, NULL on success.
-       */
-      const char *emsg;
-
-      /**
-       * Array of peers now running (valid until
-       * 'GNUNET_TESTBED_testbed_stop' is called).  Note that it is
-       * not allowed to call 'GNUNET_TESTBED_peer_destroy' on peers
-       * from this array.
-       */
-      struct GNUNET_TESTBED_Peer **peers;
-
-      /**
-       * Size of the 'peers' array.
-       */
-      unsigned int num_peers;
-
-    } testbed_run_finished;
-
   } details;
 
 };
@@ -787,8 +754,8 @@
 /**
  * Start the given peer.
  *
- * @param op_cls the closure for this operation; will be set in
- *          event->details.operation_finished.op_cls when this operation fails.
+ * @param op_cls the closure for this operation; will be set in the event
+ *          information
  * @param peer peer to start
  * @param pcc function to call upon completion
  * @param pcc_cls closure for 'pcc'
@@ -806,13 +773,16 @@
  * "GNUNET_TESTBED_peer_destroy" to fully clean up the
  * state of the peer).
  *
+ * @param op_cls the closure for this operation; will be set in the event
+ *          information
  * @param peer peer to stop
  * @param pcc function to call upon completion
  * @param pcc_cls closure for 'pcc'
  * @return handle to the operation
  */
 struct GNUNET_TESTBED_Operation *
-GNUNET_TESTBED_peer_stop (struct GNUNET_TESTBED_Peer *peer,
+GNUNET_TESTBED_peer_stop (void *op_cls,
+                          struct GNUNET_TESTBED_Peer *peer,
                           GNUNET_TESTBED_PeerChurnCallback pcc,
                           void *pcc_cls);
 

Modified: gnunet/src/testbed/gnunet-service-testbed.c
===================================================================
--- gnunet/src/testbed/gnunet-service-testbed.c 2013-03-18 12:11:12 UTC (rev 
26473)
+++ gnunet/src/testbed/gnunet-service-testbed.c 2013-03-18 13:11:36 UTC (rev 
26474)
@@ -861,10 +861,10 @@
   /* We currently only get here when working on RegisteredHostContexts and
      LCFContexts */
   GNUNET_assert (GNUNET_TESTBED_ET_OPERATION_FINISHED == event->type);
-  rhc = event->details.operation_finished.op_cls;
+  rhc = event->op_cls;
   if (CLOSURE_TYPE_RHC == rhc->type)
   {
-    GNUNET_assert (rhc->sub_op == event->details.operation_finished.operation);
+    GNUNET_assert (rhc->sub_op == event->op);
     switch (rhc->state)
     {
     case RHC_GET_CFG:
@@ -889,10 +889,10 @@
     }
     return;
   }
-  lcf = event->details.operation_finished.op_cls;
+  lcf = event->op_cls;
   if (CLOSURE_TYPE_LCF == lcf->type)
   {    
-    GNUNET_assert (lcf->op == event->details.operation_finished.operation);
+    GNUNET_assert (lcf->op == event->op);
     GNUNET_assert (FINISHED == lcf->state);
     GNUNET_assert (GNUNET_SCHEDULER_NO_TASK != lcf->timeout_task);
     GNUNET_SCHEDULER_cancel (lcf->timeout_task);

Modified: gnunet/src/testbed/test_testbed_api.c
===================================================================
--- gnunet/src/testbed/test_testbed_api.c       2013-03-18 12:11:12 UTC (rev 
26473)
+++ gnunet/src/testbed/test_testbed_api.c       2013-03-18 13:11:36 UTC (rev 
26474)
@@ -223,7 +223,7 @@
   dht_handle = NULL;
   FAIL_TEST (PEER_SERVICE_CONNECT == sub_test, return);
   FAIL_TEST (NULL != operation, return);
-  operation = GNUNET_TESTBED_peer_stop (peer, NULL, NULL);
+  operation = GNUNET_TESTBED_peer_stop (NULL, peer, NULL, NULL);
   FAIL_TEST (NULL != operation, return);
 }
 
@@ -307,16 +307,16 @@
     switch (sub_test)
     {
     case PEER_DESTROY:
-      FAIL_TEST (event->details.operation_finished.operation == operation, 
return);
-      FAIL_TEST (NULL == event->details.operation_finished.op_cls, return);
+      FAIL_TEST (event->op == operation, return);
+      FAIL_TEST (NULL == event->op_cls, return);
       FAIL_TEST (NULL == event->details.operation_finished.emsg, return);
       FAIL_TEST (NULL == event->details.operation_finished.generic, return);
       GNUNET_TESTBED_operation_done (operation);
       GNUNET_SCHEDULER_add_now (&do_shutdown, NULL);
       break;
     case PEER_SERVICE_CONNECT:
-      FAIL_TEST (event->details.operation_finished.operation == operation, 
return);
-      FAIL_TEST (NULL == event->details.operation_finished.op_cls, return);
+      FAIL_TEST (event->op == operation, return);
+      FAIL_TEST (NULL == event->op_cls, return);
       FAIL_TEST (NULL == event->details.operation_finished.emsg, return);
       FAIL_TEST (NULL != dht_handle, return);
       FAIL_TEST (event->details.operation_finished.generic == dht_handle, 
return);

Modified: gnunet/src/testbed/test_testbed_api_2peers_1controller.c
===================================================================
--- gnunet/src/testbed/test_testbed_api_2peers_1controller.c    2013-03-18 
12:11:12 UTC (rev 26473)
+++ gnunet/src/testbed/test_testbed_api_2peers_1controller.c    2013-03-18 
13:11:36 UTC (rev 26474)
@@ -294,16 +294,16 @@
   {
   case GNUNET_TESTBED_ET_OPERATION_FINISHED:   /* Will be reached when we 
destroy peers */
     FAIL_TEST (PEERS_STOPPED == result);
-    FAIL_TEST (NULL == event->details.operation_finished.op_cls);
+    FAIL_TEST (NULL == event->op_cls);
     FAIL_TEST (NULL == event->details.operation_finished.emsg);
     FAIL_TEST (NULL == event->details.operation_finished.generic);
-    if (event->details.operation_finished.operation == peer1.operation)
+    if (event->op == peer1.operation)
     {
       GNUNET_TESTBED_operation_done (peer1.operation);
       peer1.operation = NULL;
       peer1.peer = NULL;
     }
-    else if (event->details.operation_finished.operation == peer2.operation)
+    else if (event->op == peer2.operation)
     {
       GNUNET_TESTBED_operation_done (peer2.operation);
       peer2.operation = NULL;
@@ -386,8 +386,8 @@
       common_operation = NULL;
       result = PEERS_CONNECTED_2;
       LOG (GNUNET_ERROR_TYPE_DEBUG, "Peers connected again\n");
-      peer1.operation = GNUNET_TESTBED_peer_stop (peer1.peer, NULL, NULL);
-      peer2.operation = GNUNET_TESTBED_peer_stop (peer2.peer, NULL, NULL);
+      peer1.operation = GNUNET_TESTBED_peer_stop (NULL, peer1.peer, NULL, 
NULL);
+      peer2.operation = GNUNET_TESTBED_peer_stop (NULL, peer2.peer, NULL, 
NULL);
       break;
     default:
       FAIL_TEST (0);

Modified: gnunet/src/testbed/test_testbed_api_3peers_3controllers.c
===================================================================
--- gnunet/src/testbed/test_testbed_api_3peers_3controllers.c   2013-03-18 
12:11:12 UTC (rev 26473)
+++ gnunet/src/testbed/test_testbed_api_3peers_3controllers.c   2013-03-18 
13:11:36 UTC (rev 26474)
@@ -456,7 +456,7 @@
   switch (event->type)
   {
   case GNUNET_TESTBED_ET_OPERATION_FINISHED:
-    if ((NULL != event->details.operation_finished.op_cls) ||
+    if ((NULL != event->op_cls) ||
         (NULL != event->details.operation_finished.emsg))
     {
       GNUNET_break (0);
@@ -472,19 +472,19 @@
         abort_test ();
         return;
       }
-      if (event->details.operation_finished.operation == peer1.operation)
+      if (event->op == peer1.operation)
       {
         GNUNET_TESTBED_operation_done (peer1.operation);
         peer1.operation = NULL;
         peer1.peer = NULL;
       }
-      else if (event->details.operation_finished.operation == peer2.operation)
+      else if (event->op == peer2.operation)
       {
         GNUNET_TESTBED_operation_done (peer2.operation);
         peer2.operation = NULL;
         peer2.peer = NULL;
       }
-      else if (event->details.operation_finished.operation == peer3.operation)
+      else if (event->op == peer3.operation)
       {
         GNUNET_TESTBED_operation_done (peer3.operation);
         peer3.operation = NULL;
@@ -706,9 +706,9 @@
       common_operation = NULL;
       result = PEERS_CONNECTED_2;
       LOG (GNUNET_ERROR_TYPE_DEBUG, "Peers connected again\n");
-      peer1.operation = GNUNET_TESTBED_peer_stop (peer1.peer, NULL, NULL);
-      peer2.operation = GNUNET_TESTBED_peer_stop (peer2.peer, NULL, NULL);
-      peer3.operation = GNUNET_TESTBED_peer_stop (peer3.peer, NULL, NULL);
+      peer1.operation = GNUNET_TESTBED_peer_stop (NULL, peer1.peer, NULL, 
NULL);
+      peer2.operation = GNUNET_TESTBED_peer_stop (NULL, peer2.peer, NULL, 
NULL);
+      peer3.operation = GNUNET_TESTBED_peer_stop (NULL, peer3.peer, NULL, 
NULL);
       break;
     default:
       GNUNET_break (0);

Modified: gnunet/src/testbed/test_testbed_api_controllerlink.c
===================================================================
--- gnunet/src/testbed/test_testbed_api_controllerlink.c        2013-03-18 
12:11:12 UTC (rev 26473)
+++ gnunet/src/testbed/test_testbed_api_controllerlink.c        2013-03-18 
13:11:36 UTC (rev 26474)
@@ -363,11 +363,11 @@
   switch (result)
   {
   case SLAVE2_PEER_CREATE_SUCCESS:
-    op = GNUNET_TESTBED_peer_stop (slave1_peer, NULL, NULL);
+    op = GNUNET_TESTBED_peer_stop (NULL, slave1_peer, NULL, NULL);
     FAIL_TEST (NULL != op);
     break;
   case MASTER_SLAVE2_PEERS_CONNECTED:
-    op = GNUNET_TESTBED_peer_stop (slave2_peer, NULL, NULL);
+    op = GNUNET_TESTBED_peer_stop (NULL, slave2_peer, NULL, NULL);
     FAIL_TEST (NULL != op);
     break;
   default:
@@ -432,8 +432,8 @@
 {
   FAIL_TEST (NULL != event);
   FAIL_TEST (GNUNET_TESTBED_ET_OPERATION_FINISHED == event->type);
-  FAIL_TEST (event->details.operation_finished.operation == op);
-  FAIL_TEST (NULL == event->details.operation_finished.op_cls);
+  FAIL_TEST (event->op == op);
+  FAIL_TEST (NULL == event->op_cls);
   FAIL_TEST (NULL == event->details.operation_finished.emsg);
   FAIL_TEST (NULL == event->details.operation_finished.generic);
 }
@@ -562,8 +562,8 @@
   case SLAVE3_STARTED:
     FAIL_TEST (NULL != event);
     FAIL_TEST (GNUNET_TESTBED_ET_OPERATION_FINISHED == event->type);
-    FAIL_TEST (event->details.operation_finished.operation == op);
-    FAIL_TEST (NULL == event->details.operation_finished.op_cls);
+    FAIL_TEST (event->op == op);
+    FAIL_TEST (NULL == event->op_cls);
     FAIL_TEST (NULL == event->details.operation_finished.emsg);
     cfg3 = GNUNET_CONFIGURATION_dup 
(event->details.operation_finished.generic);
     GNUNET_TESTBED_operation_done (op);

Modified: gnunet/src/testbed/test_testbed_api_testbed_run.c
===================================================================
--- gnunet/src/testbed/test_testbed_api_testbed_run.c   2013-03-18 12:11:12 UTC 
(rev 26473)
+++ gnunet/src/testbed/test_testbed_api_testbed_run.c   2013-03-18 13:11:36 UTC 
(rev 26474)
@@ -102,7 +102,7 @@
 {
   result = GNUNET_OK;
   GNUNET_assert (NULL != peers[0]);
-  op = GNUNET_TESTBED_peer_stop (peers[0], NULL, NULL);
+  op = GNUNET_TESTBED_peer_stop (NULL, peers[0], NULL, NULL);
   GNUNET_assert (NULL != op);
 }
 

Modified: gnunet/src/testbed/testbed_api.c
===================================================================
--- gnunet/src/testbed/testbed_api.c    2013-03-18 12:11:12 UTC (rev 26473)
+++ gnunet/src/testbed/testbed_api.c    2013-03-18 13:11:36 UTC (rev 26474)
@@ -240,8 +240,8 @@
     return GNUNET_YES;
   }
   event.type = GNUNET_TESTBED_ET_OPERATION_FINISHED;
-  event.details.operation_finished.operation = opc->op;
-  event.details.operation_finished.op_cls = opc->op_cls;
+  event.op = opc->op;
+  event.op_cls = opc->op_cls;
   event.details.operation_finished.emsg = NULL;
   event.details.operation_finished.generic = NULL;
   switch (opc->type)
@@ -385,6 +385,8 @@
   peer = data->peer;
   GNUNET_assert (NULL != peer);
   event.type = (enum GNUNET_TESTBED_EventType) ntohl (msg->event_type);
+  event.op = opc->op;
+  event.op_cls = opc->op_cls;
   switch (event.type)
   {
   case GNUNET_TESTBED_ET_PEER_START:
@@ -455,6 +457,8 @@
   GNUNET_assert ((ntohl (msg->peer1) == data->p1->unique_id) &&
                  (ntohl (msg->peer2) == data->p2->unique_id));
   event.type = (enum GNUNET_TESTBED_EventType) ntohl (msg->event_type);
+  event.op = opc->op;
+  event.op_cls = opc->op_cls;
   switch (event.type)
   {
   case GNUNET_TESTBED_ET_CONNECT:
@@ -604,12 +608,12 @@
       (NULL != c->cc))
   {
     event.type = GNUNET_TESTBED_ET_OPERATION_FINISHED;
-    event.details.operation_finished.operation = opc->op;
-    event.details.operation_finished.op_cls = opc->op_cls;
+    event.op = opc->op;
+    event.op_cls = opc->op_cls;
     event.details.operation_finished.emsg = emsg;
     event.details.operation_finished.generic = NULL;
     c->cc (c->cc_cls, &event);
-    if (event.details.operation_finished.operation == last_finished_operation)
+    if (event.op == last_finished_operation)
       return GNUNET_YES;
   }
   switch (opc->type)
@@ -731,9 +735,9 @@
   {
     opc->data = GNUNET_TESTBED_extract_config_ (&msg->header);
     event.type = GNUNET_TESTBED_ET_OPERATION_FINISHED;
+    event.op = opc->op;
+    event.op_cls = opc->op_cls;
     event.details.operation_finished.generic = opc->data;
-    event.details.operation_finished.operation = opc->op;
-    event.details.operation_finished.op_cls = opc->op_cls;
     event.details.operation_finished.emsg = NULL;
     c->cc (c->cc_cls, &event);
   }
@@ -787,8 +791,8 @@
   GNUNET_free (data);
   opc->data = NULL;
   event.type = GNUNET_TESTBED_ET_OPERATION_FINISHED;
-  event.details.operation_finished.operation = opc->op;
-  event.details.operation_finished.op_cls = opc->op_cls;
+  event.op = opc->op;
+  event.op_cls = opc->op_cls;
   event.details.operation_finished.emsg = NULL;
   event.details.operation_finished.generic = NULL;
   emsg = NULL;

Modified: gnunet/src/testbed/testbed_api_peers.c
===================================================================
--- gnunet/src/testbed/testbed_api_peers.c      2013-03-18 12:11:12 UTC (rev 
26473)
+++ gnunet/src/testbed/testbed_api_peers.c      2013-03-18 13:11:36 UTC (rev 
26474)
@@ -563,13 +563,16 @@
  * "GNUNET_TESTBED_peer_destroy" to fully clean up the
  * state of the peer).
  *
+ * @param op_cls the closure for this operation; will be set in the event
+ *          information
  * @param peer peer to stop
  * @param pcc function to call upon completion
  * @param pcc_cls closure for 'pcc'
  * @return handle to the operation
  */
 struct GNUNET_TESTBED_Operation *
-GNUNET_TESTBED_peer_stop (struct GNUNET_TESTBED_Peer *peer,
+GNUNET_TESTBED_peer_stop (void *op_cls,
+                          struct GNUNET_TESTBED_Peer *peer,
                           GNUNET_TESTBED_PeerChurnCallback pcc, void *pcc_cls)
 {
   struct OperationContext *opc;
@@ -582,6 +585,7 @@
   opc = GNUNET_malloc (sizeof (struct OperationContext));
   opc->c = peer->controller;
   opc->data = data;
+  opc->op_cls = op_cls;
   opc->id = GNUNET_TESTBED_get_next_op_id (opc->c);
   opc->type = OP_PEER_STOP;
   opc->op =

Modified: gnunet/src/testbed/testbed_api_services.c
===================================================================
--- gnunet/src/testbed/testbed_api_services.c   2013-03-18 12:11:12 UTC (rev 
26473)
+++ gnunet/src/testbed/testbed_api_services.c   2013-03-18 13:11:36 UTC (rev 
26474)
@@ -144,8 +144,8 @@
   mtype = ntohs (msg->type);
   emsg = NULL;
   info.type = GNUNET_TESTBED_ET_OPERATION_FINISHED;
-  info.details.operation_finished.operation = data->operation;
-  info.details.operation_finished.op_cls = data->op_cls;
+  info.op = data->operation;
+  info.op_cls = data->op_cls;
   if (GNUNET_MESSAGE_TYPE_TESTBED_OPERATION_FAIL_EVENT == mtype)
   {
     emsg =

Modified: gnunet/src/testbed/testbed_api_testbed.c
===================================================================
--- gnunet/src/testbed/testbed_api_testbed.c    2013-03-18 12:11:12 UTC (rev 
26473)
+++ gnunet/src/testbed/testbed_api_testbed.c    2013-03-18 13:11:36 UTC (rev 
26474)
@@ -602,7 +602,7 @@
     switch (event->type)
     {
     case GNUNET_TESTBED_ET_OPERATION_FINISHED:
-      dll_op = event->details.operation_finished.op_cls;
+      dll_op = event->op_cls;
       if (NULL != event->details.operation_finished.emsg)
       {
         LOG (GNUNET_ERROR_TYPE_ERROR, _("Linking controllers failed. 
Exiting"));
@@ -610,7 +610,7 @@
       }
       else
         rc->reg_hosts++;
-      GNUNET_assert (event->details.operation_finished.operation == 
dll_op->op);
+      GNUNET_assert (event->op == dll_op->op);
       GNUNET_CONTAINER_DLL_remove (rc->dll_op_head, rc->dll_op_tail, dll_op);
       GNUNET_TESTBED_operation_done (dll_op->op);
       GNUNET_free (dll_op);
@@ -629,7 +629,7 @@
   for (dll_op = rc->dll_op_head; NULL != dll_op; dll_op = dll_op->next)
   {
     if ((GNUNET_TESTBED_ET_OPERATION_FINISHED == event->type) &&
-        (event->details.operation_finished.operation == dll_op->op))
+        (event->op == dll_op->op))
       break;
   }
   if (NULL == dll_op)




reply via email to

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