added counter to avoid single measurements failing to break the whole test
authorMatthias Wachs <wachs@net.in.tum.de>
Tue, 14 Dec 2010 10:37:04 +0000 (10:37 +0000)
committerMatthias Wachs <wachs@net.in.tum.de>
Tue, 14 Dec 2010 10:37:04 +0000 (10:37 +0000)
src/transport/test_quota_compliance.c

index e4b728007a0f727a69aafd703ac166954d02f605..56d3cb5a4fc10e4a7777b1335c5dcab4ce527f79 100644 (file)
@@ -361,6 +361,7 @@ measurement_end (void *cls,
           const struct GNUNET_SCHEDULER_TaskContext *tc)
 {
   static int strike_counter;
+  static int failed_measurement_counter;
   unsigned long long  quota_allowed = 0;
   int delta = 0;
 
@@ -408,7 +409,10 @@ measurement_end (void *cls,
                          (total_bytes_sent/(duration.rel_value / 1000)/1024),
                          total_bytes_sent/(duration.rel_value / 1000));
          ok = 1;
-         end();
+         failed_measurement_counter--;
+         if (failed_measurement_counter < 0)
+                 end();
+         return;
   }
 
   /* Throughput is bigger than allowed quota + some extra*/
@@ -424,7 +428,9 @@ measurement_end (void *cls,
                          (total_bytes_sent/(duration.rel_value / 1000)/1024), 
                          total_bytes_sent/(duration.rel_value / 1000));
          ok = 1;
-         end();
+         failed_measurement_counter--;
+         if (failed_measurement_counter < 0)
+                 end();
          return;
   }
   else
@@ -433,12 +439,15 @@ measurement_end (void *cls,
                          "\nQuota compliance ok: \n"\
                          "Quota allowed: %10llu kB/s\n"\
                          "Throughput   : %10llu kB/s\n", (quota_allowed / (1024)) , (total_bytes_sent/(duration.rel_value / 1000)/1024));
+         if (failed_measurement_counter < 2)
+                 failed_measurement_counter++;
          ok = 0;
   }
 
   if ((quota_allowed) > (2 *(total_bytes_sent/(duration.rel_value / 1000))))
   {
-         strike_counter++;
+         if (failed_measurement_counter < 2)
+                 failed_measurement_counter++;
          if (strike_counter == 2)
          {
                  GNUNET_log (GNUNET_ERROR_TYPE_INFO,
@@ -457,7 +466,6 @@ measurement_end (void *cls,
          end();
          return;
   }
-
   if (is_asymmetric_send_constant == GNUNET_YES)
   {
    if ((quota_allowed * 2) < MEASUREMENT_MAX_QUOTA)