fixing double-adding of the 'die-task'
authorChristian Grothoff <christian@grothoff.org>
Thu, 1 Sep 2011 15:06:23 +0000 (15:06 +0000)
committerChristian Grothoff <christian@grothoff.org>
Thu, 1 Sep 2011 15:06:23 +0000 (15:06 +0000)
src/dht/test_dht_api.c
src/dht/test_dht_multipeer.c
src/dht/test_dht_twopeer.c

index f5bb05d8badcbae3372b4ac6b9f46e9fceef96ba..7605d849993a9615c124f9f54410a921edb87cf2 100644 (file)
@@ -96,7 +96,7 @@ struct RetryContext retry_context;
 
 static int ok;
 
-GNUNET_SCHEDULER_TaskIdentifier die_task;
+static GNUNET_SCHEDULER_TaskIdentifier die_task;
 
 #if VERBOSE
 #define OKPP do { ok++; fprintf (stderr, "Now at stage %u at %s:%u\n", ok, __FILE__, __LINE__); } while (0)
@@ -173,7 +173,7 @@ test_find_peer_stop (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
   {
     GNUNET_break (0);
     GNUNET_SCHEDULER_cancel (die_task);
-    GNUNET_SCHEDULER_add_now (&end_badly, NULL);
+    die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL);
     return;
   }
 
@@ -279,7 +279,7 @@ retry_find_peer (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
   {
     GNUNET_break (0);
     GNUNET_SCHEDULER_cancel (die_task);
-    GNUNET_SCHEDULER_add_now (&end_badly, &p1);
+    die_task = GNUNET_SCHEDULER_add_now (&end_badly, &p1);
     return;
   }
   retry_ctx->retry_task =
@@ -339,7 +339,7 @@ test_find_peer (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
   {
     GNUNET_break (0);
     GNUNET_SCHEDULER_cancel (die_task);
-    GNUNET_SCHEDULER_add_now (&end_badly, &p1);
+    die_task = GNUNET_SCHEDULER_add_now (&end_badly, &p1);
     return;
   }
   retry_context.retry_task =
@@ -363,7 +363,7 @@ test_get_stop (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
   {
     GNUNET_break (0);
     GNUNET_SCHEDULER_cancel (die_task);
-    GNUNET_SCHEDULER_add_now (&end_badly, NULL);
+    die_task = GNUNET_SCHEDULER_add_now (&end_badly, NULL);
     return;
   }
   GNUNET_assert (peer->dht_handle != NULL);
@@ -416,7 +416,7 @@ test_get (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
   {
     GNUNET_break (0);
     GNUNET_SCHEDULER_cancel (die_task);
-    GNUNET_SCHEDULER_add_now (&end_badly, &p1);
+    die_task = GNUNET_SCHEDULER_add_now (&end_badly, &p1);
     return;
   }
 
index 47d78ef4025ae8d911d910b716a51c6fb9b66822..30e30eedb0a7d2404266b1232acb28836c5c3493 100644 (file)
@@ -211,7 +211,7 @@ static unsigned int failed_connections;
 enum GNUNET_DHT_RouteOption route_option;
 
 /* Task handle to use to schedule test failure */
-GNUNET_SCHEDULER_TaskIdentifier die_task;
+static GNUNET_SCHEDULER_TaskIdentifier die_task;
 
 static char *blacklist_transports;
 
@@ -347,12 +347,13 @@ get_stop_finished (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
   {
     GNUNET_SCHEDULER_cancel (die_task);
     //GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_multiply(GNUNET_TIME_UNIT_MINUTES, 5), &get_topology, NULL);
-    GNUNET_SCHEDULER_add_now (&finish_testing, NULL);
+    die_task = GNUNET_SCHEDULER_add_now (&finish_testing, NULL);
   }
   else if ((gets_completed + gets_failed == num_gets) && (outstanding_gets == 0))       /* Had some failures */
   {
     GNUNET_SCHEDULER_cancel (die_task);
-    GNUNET_SCHEDULER_add_now (&end_badly, "not all gets succeeded!\n");
+    die_task =
+        GNUNET_SCHEDULER_add_now (&end_badly, "not all gets succeeded!\n");
   }
 }
 
@@ -645,7 +646,6 @@ topology_callback (void *cls, const struct GNUNET_PeerIdentity *first,
     die_task =
         GNUNET_SCHEDULER_add_delayed (TIMEOUT, &end_badly,
                                       "from setup puts/gets");
-
     GNUNET_SCHEDULER_add_delayed (GNUNET_TIME_relative_multiply
                                   (GNUNET_TIME_UNIT_SECONDS, 2),
                                   &setup_puts_and_gets, NULL);
@@ -685,7 +685,6 @@ peers_started_callback (void *cls, const struct GNUNET_PeerIdentity *id,
     GNUNET_log (GNUNET_ERROR_TYPE_DEBUG,
                 "All %d daemons started, now connecting peers!\n", num_peers);
 #endif
-    GNUNET_SCHEDULER_cancel (die_task);
 
     expected_connections = -1;
     if ((pg != NULL) && (peers_left == 0))
@@ -701,17 +700,19 @@ peers_started_callback (void *cls, const struct GNUNET_PeerIdentity *id,
 #endif
     }
 
+    GNUNET_SCHEDULER_cancel (die_task);
     if (expected_connections == GNUNET_SYSERR)
     {
       die_task =
           GNUNET_SCHEDULER_add_now (&end_badly,
                                     "from connect topology (bad return)");
     }
-
-    die_task =
-        GNUNET_SCHEDULER_add_delayed (TIMEOUT, &end_badly,
-                                      "from connect topology (timeout)");
-
+    else
+    {
+      die_task =
+          GNUNET_SCHEDULER_add_delayed (TIMEOUT, &end_badly,
+                                        "from connect topology (timeout)");
+    }
     ok = 0;
   }
 }
@@ -720,6 +721,7 @@ static void
 create_topology ()
 {
   peers_left = num_peers;       /* Reset counter */
+  GNUNET_SCHEDULER_cancel (die_task);
   if (GNUNET_TESTING_create_topology
       (pg, topology, blacklist_topology, blacklist_transports) != GNUNET_SYSERR)
   {
@@ -728,18 +730,16 @@ create_topology ()
                 "Topology set up, now starting peers!\n");
 #endif
     GNUNET_TESTING_daemons_continue_startup (pg);
+    die_task =
+        GNUNET_SCHEDULER_add_delayed (TIMEOUT, &end_badly,
+                                      "from continue startup (timeout)");
   }
   else
   {
-    GNUNET_SCHEDULER_cancel (die_task);
     die_task =
         GNUNET_SCHEDULER_add_now (&end_badly,
                                   "from create topology (bad return)");
   }
-  GNUNET_SCHEDULER_cancel (die_task);
-  die_task =
-      GNUNET_SCHEDULER_add_delayed (TIMEOUT, &end_badly,
-                                    "from continue startup (timeout)");
 }
 
 /**
index 63f200e7df03e0986166555989f67103d247cfbf..df95555cf7a767ce25f3c7d560f3626151336b54 100644 (file)
@@ -72,7 +72,7 @@ static unsigned int total_connections;
 
 static unsigned int failed_connections;
 
-GNUNET_SCHEDULER_TaskIdentifier die_task;
+static GNUNET_SCHEDULER_TaskIdentifier die_task;
 
 static int ok;
 
@@ -105,7 +105,9 @@ finish_testing (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
   GNUNET_assert (peer2dht != NULL);
   GNUNET_DHT_disconnect (peer1dht);
   GNUNET_DHT_disconnect (peer2dht);
+  fprintf (stderr, "Testing STOP! - finished\n");
   GNUNET_TESTING_daemons_stop (pg, TIMEOUT, &shutdown_callback, NULL);
+  pg = NULL;
   ok = 0;
 }
 
@@ -118,8 +120,12 @@ end_badly_cont (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
   if (peer2dht != NULL)
     GNUNET_DHT_disconnect (peer2dht);
 
+  fprintf (stderr, "Testing STOP - Badly!\n");
   if (pg != NULL)
+  {
     GNUNET_TESTING_daemons_stop (pg, TIMEOUT, &shutdown_callback, NULL);
+    pg = NULL;
+  }
 
   if (curr_get_ctx.retry_task != GNUNET_SCHEDULER_NO_TASK)
     GNUNET_SCHEDULER_cancel (curr_get_ctx.retry_task);
@@ -170,7 +176,9 @@ get_result_iterator (void *cls, struct GNUNET_TIME_Absolute exp,
     GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
                 "Key returned is not the same key as was searched for!\n");
     GNUNET_SCHEDULER_cancel (die_task);
-    GNUNET_SCHEDULER_add_now (&end_badly, "key mismatch in get response!\n");
+    die_task =
+        GNUNET_SCHEDULER_add_now (&end_badly,
+                                  "key mismatch in get response!\n");
     return;
   }
 
@@ -195,7 +203,7 @@ get_result_iterator (void *cls, struct GNUNET_TIME_Absolute exp,
                 "Received second correct GET request response!\n");
     GNUNET_SCHEDULER_cancel (die_task);
     GNUNET_DHT_get_stop (get_context->get_handle);
-    GNUNET_SCHEDULER_add_now (&finish_testing, NULL);
+    die_task = GNUNET_SCHEDULER_add_now (&finish_testing, NULL);
   }
 
 }
@@ -218,7 +226,9 @@ get_stop_finished (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
                 "Too many attempts failed, ending test!\n",
                 get_context->get_attempts);
     GNUNET_SCHEDULER_cancel (die_task);
-    GNUNET_SCHEDULER_add_now (&end_badly, "key mismatch in get response!\n");
+    die_task =
+        GNUNET_SCHEDULER_add_now (&end_badly,
+                                  "key mismatch in get response!\n");
     return;
   }
   get_context->get_attempts++;
@@ -340,11 +350,10 @@ connect_topology (void *cls, const struct GNUNET_SCHEDULER_TaskContext *tc)
     die_task =
         GNUNET_SCHEDULER_add_now (&end_badly,
                                   "from connect topology (bad return)");
-
-
-  die_task =
-      GNUNET_SCHEDULER_add_delayed (TIMEOUT, &end_badly,
-                                    "from connect topology (timeout)");
+  else
+    die_task =
+        GNUNET_SCHEDULER_add_delayed (TIMEOUT, &end_badly,
+                                      "from connect topology (timeout)");
 }
 
 static void
@@ -366,7 +375,8 @@ peers_started_callback (void *cls, const struct GNUNET_PeerIdentity *id,
     if (peer1dht == NULL)
     {
       GNUNET_SCHEDULER_cancel (die_task);
-      GNUNET_SCHEDULER_add_now (&end_badly, "Failed to get dht handle!\n");
+      die_task =
+          GNUNET_SCHEDULER_add_now (&end_badly, "Failed to get dht handle!\n");
     }
   }
   else
@@ -376,7 +386,8 @@ peers_started_callback (void *cls, const struct GNUNET_PeerIdentity *id,
     if (peer2dht == NULL)
     {
       GNUNET_SCHEDULER_cancel (die_task);
-      GNUNET_SCHEDULER_add_now (&end_badly, "Failed to get dht handle!\n");
+      die_task =
+          GNUNET_SCHEDULER_add_now (&end_badly, "Failed to get dht handle!\n");
     }
   }