summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorschodet2010-07-01 08:12:49 +0000
committerschodet2010-07-01 08:12:49 +0000
commit4f96a857dd0711521153c8c75ff16e10ab69bbe6 (patch)
tree1c02e9d0bc9d8d871b2adde5c4ae7a056857efbe
parent71352f23232b19190b810f3a3cfcfe2fc18a4c9d (diff)
cesar/mac/ca/test/ca: test workaround, refs #1655 & #1276
git-svn-id: svn+ssh://pessac/svn/cesar/trunk@7264 017c9cb6-072f-447c-8318-d5b54f68fe89
-rw-r--r--cesar/mac/ca/test/ca/Config1
-rw-r--r--cesar/mac/ca/test/ca/src/test_backoff.c15
2 files changed, 9 insertions, 7 deletions
diff --git a/cesar/mac/ca/test/ca/Config b/cesar/mac/ca/test/ca/Config
index de9272a3dd..76d5011b2b 100644
--- a/cesar/mac/ca/test/ca/Config
+++ b/cesar/mac/ca/test/ca/Config
@@ -1,4 +1,3 @@
CONFIG_DEBUG_FATAL_CATCH = y
CONFIG_TRACE = y
CONFIG_RESTRACK = y
-CONFIG_CA_BACKOFF_MINIMUM = 0
diff --git a/cesar/mac/ca/test/ca/src/test_backoff.c b/cesar/mac/ca/test/ca/src/test_backoff.c
index ed56d12e4a..7eab12e8b3 100644
--- a/cesar/mac/ca/test/ca/src/test_backoff.c
+++ b/cesar/mac/ca/test/ca/src/test_backoff.c
@@ -16,6 +16,8 @@
#include "lib/test.h"
+#include "config/ca/backoff/minimum.h"
+
#define NB_ITER 1000000
static void
@@ -54,23 +56,25 @@ backoff_basic_test_case (test_t t)
if (!lib_rnd_flip_coin (&rnd, same_cap_ratio))
cap = lib_rnd32 (&rnd) % 4;
ca_backoff_new (&ca, cap);
+ uint bc = ca.backoff.bc - CONFIG_CA_BACKOFF_MINIMUM;
/* Test unused backoff. */
for (j = lib_rnd_uniform (&rnd, 3); j; j--)
{
if (!lib_rnd_flip_coin (&rnd, same_cap_ratio))
cap = lib_rnd32 (&rnd) % 4;
ca_backoff_new (&ca, cap);
+ bc = ca.backoff.bc - CONFIG_CA_BACKOFF_MINIMUM;
}
/* Check backoff. Throw some general rules... */
test_verbose_print ("cap = %d, bpc = %d, cw = %2d, bc = %2d, "
"dc = %2d ", cap, ca.backoff.bpc,
- ca.backoff.cw, ca.backoff.bc, ca.backoff.dc);
+ ca.backoff.cw, bc, ca.backoff.dc);
test_verbose_print ("last_success = %d, last_bpc = %d, "
"last_bc = %2d, slot_count = %2d",
last_success, last_bpc, last_bc, slot_count);
bpcm = MIN (3u, ca.backoff.bpc - 1);
test_fail_unless (ca.backoff.cw == cw_table[cap][bpcm]);
- test_fail_unless (ca.backoff.bc <= ca.backoff.cw);
+ test_fail_unless (bc <= ca.backoff.cw);
test_fail_unless ((last_success && ca.backoff.bpc == 1)
|| !last_success);
test_fail_unless
@@ -88,7 +92,7 @@ backoff_basic_test_case (test_t t)
last_cap = cap;
last_bpc = ca.backoff.bpc;
last_cw = ca.backoff.cw;
- last_bc = ca.backoff.bc;
+ last_bc = bc;
last_dc = ca.backoff.dc;
/* Defer or success? */
last_success = lib_rnd_flip_coin (&rnd, success_ratio);
@@ -101,9 +105,8 @@ backoff_basic_test_case (test_t t)
else
{
uint slot_count_taken;
- slot_count = lib_rnd_uniform (&rnd, ca.backoff.bc * 2 + 1);
- slot_count_taken = slot_count >= ca.backoff.bc ? ca.backoff.bc
- : slot_count;
+ slot_count = lib_rnd_uniform (&rnd, bc * 2 + 1);
+ slot_count_taken = slot_count >= bc ? bc : slot_count;
ca_backoff_deferred (&ca, slot_count);
slot_count = slot_count_taken;
}