summaryrefslogtreecommitdiff
path: root/cesar/bsu/test
diff options
context:
space:
mode:
authorNélio Laranjeiro2010-12-03 09:11:06 +0100
committerNélio Laranjeiro2011-01-11 15:39:43 +0100
commitc6a459052635a62ebf4745a75d72dd091a57068c (patch)
tree2178782237d3086921d9458dfdd9cbaac51a1c10 /cesar/bsu/test
parent224594457d46d928d94ee26990a510db3e301f9e (diff)
cesar/{cp, bsu, interface}: provide a decoded beacon to CP, closes #2127
Diffstat (limited to 'cesar/bsu/test')
-rw-r--r--cesar/bsu/test/utest/src/bsu.c1
-rw-r--r--cesar/bsu/test/utest/src/bsut.c20
-rw-r--r--cesar/bsu/test/utest/src/interface.c30
-rw-r--r--cesar/bsu/test/utest/src/sar.c1
-rw-r--r--cesar/bsu/test/utest/src/schedules.c14
-rw-r--r--cesar/bsu/test/utest/src/tests.c7
-rw-r--r--cesar/bsu/test/utest/tests.h4
7 files changed, 29 insertions, 48 deletions
diff --git a/cesar/bsu/test/utest/src/bsu.c b/cesar/bsu/test/utest/src/bsu.c
index 0a8f78e0ab..af2762b5ab 100644
--- a/cesar/bsu/test/utest/src/bsu.c
+++ b/cesar/bsu/test/utest/src/bsu.c
@@ -39,4 +39,3 @@ main (int argc, char **argv)
test_result (test);
return test_nb_failed (test) == 0 ? 0 : 1;
}
-
diff --git a/cesar/bsu/test/utest/src/bsut.c b/cesar/bsu/test/utest/src/bsut.c
index 948c1d699d..57bcd23009 100644
--- a/cesar/bsu/test/utest/src/bsut.c
+++ b/cesar/bsu/test/utest/src/bsut.c
@@ -61,6 +61,7 @@ test_case_bsu_process (test_t test)
&bpneighbour_tx);
bneighbour->phy_pb.pb_rx.pb_measurement.crc_error = true;
bsu_beacon_process (t.bsu, bneighbour, &bpneighbour_rx);
+ blk_release_desc ((blk_t*) bneighbour);
/* Central beacon processed ? */
test_fail_unless (t.bsu->avlns[0].snid == 0);
test_fail_unless (t.bsu->avlns[0].beacon.vf.nid == 0);
@@ -107,6 +108,7 @@ test_case_bsu_process (test_t test)
test_fail_unless (t.bsu->sta_avln->beacon.vf.nid == t.bsu->nid_track);
test_fail_unless (t.bsu->beacon_nb_recv [BSU_BEACON_TYPE_CENTRAL]
== 2);
+ blk_release_desc ((blk_t*) b);
/* NTB called ? */
test_fail_unless (t.bsu->sta_avln->sync.init == false);
bp_rx.snid = 0x4;
@@ -155,10 +157,10 @@ test_case_bsu_process (test_t test)
test_fail_unless (t.bsu->beacon_nb_recv [BSU_BEACON_TYPE_CENTRAL]
== 5);
/* Upper layer receives it ? */
- test_fail_unless (t.ul.beacon == t.sar.beacon);
+ test_fail_unless (t.ul.beacon);
test_fail_unless (t.ul.beacon->next);
- blk_release_desc ((blk_t*) t.ul.beacon->next);
- blk_release_desc ((blk_t*) t.ul.beacon);
+ blk_release ((blk_t*) t.ul.beacon->next);
+ blk_release ((blk_t*) t.ul.beacon);
}
test_end;
test_begin (test, "Discover beacon: associated do not track discover")
@@ -213,6 +215,7 @@ test_case_bsu_process (test_t test)
test_fail_unless (avln == NULL);
avln = bsu_avln_get (t.bsu, 0x3, 0x4);
test_fail_unless (avln == NULL);
+ blk_release_desc ((blk_t*) beacon);
/* Our AVLN. */
beacon = (pb_beacon_t*) blk_alloc_desc ();
memset (beacon->data, 0, BLK_SIZE);
@@ -226,6 +229,7 @@ test_case_bsu_process (test_t test)
t.bsu->is_sta = BSU_UPDATE_STA_TYPE_STA;
avln = bsu_beacon_process (t.bsu, beacon, &bp_rx);
test_fail_unless (avln == NULL);
+ blk_release_desc ((blk_t*) beacon);
}
test_end;
bsu_test_uninit (&t);
@@ -411,10 +415,9 @@ test_case_bsu_timer_event_cco_ucco (test_t test, bsu_test_t *t,
cmp_avln.beacon.vf.nm = BSU_BEACON_NM_UNCOORDINATED;
bsu_timer_event_process (t->bsu);
test_fail_unless (t->ul.beacon != INVALID_PTR);
- test_fail_unless (t->ul.bparams != INVALID_PTR);
test_fail_unless (t->ul.beacon->next == NULL);
/* Release the reference handled by the CP. */
- blk_release_desc ((blk_t*) t->ul.beacon);
+ blk_release (t->ul.beacon);
mfs = mac_store_mfs_get (t->mac_store, true, true, false,
lid, MAC_TEI_BCAST);
mfs->tx.head = NULL;
@@ -431,8 +434,7 @@ test_case_bsu_timer_event_cco_ucco (test_t test, bsu_test_t *t,
bsu_avln_schedules_decrease_countdown (t->bsu, &cmp_avln);
bsu_timer_event_process (t->bsu);
test_fail_unless (t->ul.beacon != INVALID_PTR);
- test_fail_unless (t->ul.bparams != INVALID_PTR);
- blk_release_desc ((blk_t*) t->ul.beacon);
+ blk_release (t->ul.beacon);
for (j = 0; j < cmp_avln.beacon.bmis.ps.nb; j++)
{
test_fail_unless (cmp_avln.beacon.bmis.ps.ps[j].pscd
@@ -519,8 +521,8 @@ test_case_bsu_timer_event (test_t test)
bsu_timer_event_process (t.bsu);
test_fail_unless (t.ul.beacon);
test_fail_unless (t.ul.beacon->next);
- blk_release_desc ((blk_t*) t.ul.beacon->next);
- blk_release_desc ((blk_t*) t.ul.beacon);
+ blk_release (t.ul.beacon->next);
+ blk_release (t.ul.beacon);
mfs = mac_store_mfs_get (t.mac_store, true, true, false,
MAC_LID_SPC_CENTRAL, MAC_TEI_BCAST);
test_fail_unless (mfs != NULL);
diff --git a/cesar/bsu/test/utest/src/interface.c b/cesar/bsu/test/utest/src/interface.c
index f9d07fe40e..b39aed9da5 100644
--- a/cesar/bsu/test/utest/src/interface.c
+++ b/cesar/bsu/test/utest/src/interface.c
@@ -59,22 +59,10 @@ test_case_bsu_interface_tx (test_t t, bsu_beacon_type_t type)
test.bsu->avlns[0].sync.fe = 0.34;
test.bsu->sta_avln = &test.bsu->avlns[0];
bsu_beacon_send (test.bsu, type, beacon, &params);
- test_fail_unless (test.sar.beacon == beacon);
- test_fail_unless (test.sar.mfs->beacon == true);
if (type == BSU_BEACON_TYPE_CENTRAL)
test_fail_unless (test.sar.mfs->cap == 0x3);
else
test_fail_unless (test.sar.mfs->cap == 0x2);
- test_fail_unless (test.ul.beacon == beacon);
- test_fail_unless (test.ul.bparams->direction
- == BSU_BEACON_DIRECTION_TO_PLC);
- test_fail_unless (test.ul.bparams->frequency_error
- == FIXED(test.bsu->avlns[0].sync.fe,
- BSU_NTB_FIXED_POINT));
- test_fail_unless (test.ul.bparams->ntb_offset_tck
- == test.bsu->avlns[0].sync.ntb_offset_tck);
- /* Free the beacon. */
- blk_release_desc ((blk_t*) beacon);
/* Remove the MFS from the store. */
mac_store_mfs_remove (test.mac_store,
PARENT_OF (mfs_t, tx, test.sar.mfs));
@@ -107,22 +95,26 @@ test_case_bsu_interface_rx (test_t t)
beacon->phy_pb.pb_rx.pb_measurement.crc_error = false;
rx_params.snid = 0x1;
bsu_beacon_recv (test.bsu, beacon, &rx_params);
- test_fail_unless (test.ul.beacon == beacon);
- test_fail_unless (test.ul.bparams->direction
+ test_fail_unless (test.ul.beacon != INVALID_PTR);
+ test_fail_unless (test.ul.beacon->params.direction
== BSU_BEACON_DIRECTION_FROM_PLC);
bsu_avln_t *avln = bsu_avln_get (test.bsu, bbeacon.vf.nid,
rx_params.snid);
test_fail_unless (avln != NULL);
- test_fail_unless (test.ul.bparams->frequency_error
+ test_fail_unless (test.ul.beacon->params.frequency_error
== FIXED(avln->sync.fe,
BSU_NTB_FIXED_POINT));
- test_fail_unless (test.ul.bparams->ntb_offset_tck
+ test_fail_unless (test.ul.beacon->params.ntb_offset_tck
== avln->sync.ntb_offset_tck);
- memset (&test.ul, 0, sizeof (bsu_test_ul_t));
+ blk_release (test.ul.beacon);
+ bsu_test_upper_layer_beacon_received_init (&test);
+ beacon = bsu_beacon_write (&bbeacon,
+ BSU_BEACON_TYPE_CENTRAL,
+ &test.mac_config,
+ &tx_params);
beacon->phy_pb.pb_rx.pb_measurement.crc_error = true;
bsu_beacon_recv (test.bsu, beacon, &rx_params);
- test_fail_unless (test.ul.beacon == NULL);
- test_fail_unless (test.ul.bparams == NULL);
+ test_fail_unless (test.ul.beacon == INVALID_PTR);
bsu_test_uninit (&test);
}
test_end;
diff --git a/cesar/bsu/test/utest/src/sar.c b/cesar/bsu/test/utest/src/sar.c
index ed46c08b58..ab6988d161 100644
--- a/cesar/bsu/test/utest/src/sar.c
+++ b/cesar/bsu/test/utest/src/sar.c
@@ -23,7 +23,6 @@ sar_beacon_send (sar_t *sar, pb_beacon_t *beacon, mfs_tx_t *beacon_mfs,
ctx->sar.beacon = beacon;
ctx->sar.mfs = beacon_mfs;
ctx->sar.bto_bpsto = bto_bpsto;
- /* release the beacon. */
blk_release_desc ((blk_t*) beacon);
}
diff --git a/cesar/bsu/test/utest/src/schedules.c b/cesar/bsu/test/utest/src/schedules.c
index a4beaa8d22..5aaa217f20 100644
--- a/cesar/bsu/test/utest/src/schedules.c
+++ b/cesar/bsu/test/utest/src/schedules.c
@@ -164,10 +164,8 @@ test_case_bsu_schedules_countdowns (test_t t)
bparamsrx.snid = 0;
pbbeacon->phy_pb.pb_rx.pb_measurement.crc_error = false;
bsu_beacon_recv (ctx.bsu, pbbeacon, &bparamsrx);
- /* Clear memory. */
- blk_release_desc ((blk_t*) pbbeacon);
- ctx.ul.beacon = INVALID_PTR;
- ctx.ul.bparams = NULL;
+ blk_release (ctx.ul.beacon);
+ bsu_test_upper_layer_beacon_received_init (&ctx);
/* Continue the test. */
bsu_track_avln (beacon.vf.nid, 0x0, ctx.mac_config.tei);
ctx.bsu->track_new = false;
@@ -206,6 +204,8 @@ test_case_bsu_schedules_countdowns (test_t t)
/* On beacon reception only schedules are read and CA is
* programmed with the current data. */
bsu_beacon_recv (ctx.bsu, b, &bparamsrx);
+ blk_release (ctx.ul.beacon);
+ bsu_test_upper_layer_beacon_received_init (&ctx);
}
/* On timer event the snid change, NEK and hybrid mode are changed
* in the lower layers. */
@@ -227,12 +227,6 @@ test_case_bsu_schedules_countdowns (test_t t)
}
cas[0] = cas[1];
cas[1] = cas[2];
- if (i != 1)
- {
- /* Release beacon. */
- blk_release_desc ((blk_t*) ctx.ul.beacon);
- ctx.ul.beacon = INVALID_PTR;
- }
beacon.bmis.change_snid.snidccd --;
beacon.bmis.change_snid.present =
beacon.bmis.change_snid.snidccd != 0;
diff --git a/cesar/bsu/test/utest/src/tests.c b/cesar/bsu/test/utest/src/tests.c
index deb64ad81c..58011eb76c 100644
--- a/cesar/bsu/test/utest/src/tests.c
+++ b/cesar/bsu/test/utest/src/tests.c
@@ -27,8 +27,7 @@ bsu_trace_buffer_dbg_dump_callback (void *user, const char *text,
static void
-bsu_test_upper_layer_beacon_received (void *ctx, pb_beacon_t *beacon,
- bsu_params_t *bparams)
+bsu_test_upper_layer_beacon_received (void *ctx, bsu_beacon_t *beacon)
{
bsu_test_t *test = (bsu_test_t*) ctx;
dbg_assert (ctx);
@@ -37,7 +36,6 @@ bsu_test_upper_layer_beacon_received (void *ctx, pb_beacon_t *beacon,
test->ul.beacon = beacon;
else
test->ul.beacon->next = beacon;
- test->ul.bparams = bparams;
}
void
@@ -45,7 +43,6 @@ bsu_test_upper_layer_beacon_received_init (bsu_test_t *ctx)
{
dbg_assert (ctx);
ctx->ul.beacon = INVALID_PTR;
- ctx->ul.bparams = INVALID_PTR;
}
void
@@ -147,7 +144,6 @@ bsu_test_create_beacon (bsu_test_t *ctx, bsu_beacon_t *beacon)
beacon->vf.rtsbf = false;
beacon->vf.nm = BSU_BEACON_NM_CSMA_ONLY;
beacon->vf.ccocap = 0;
- beacon->vf.rsvd = 0;
/* Regions. */
beacon->bmis.region.nb = 2;
beacon->bmis.region.region[0].rt = BSU_BEACON_REGION_BEACON;
@@ -199,6 +195,7 @@ bsu_test_create_beacon (bsu_test_t *ctx, bsu_beacon_t *beacon)
beacon->bmis.change_snid.new_snid = 0xf;
/* Mac address. */
beacon->bmis.mac_address_present.present = true;
+ beacon->bmis.mac_address_present.mac_address = 0x123456789abcull;
/* Number of beacon entries. */
beacon->bmis.nbe = 14;
}
diff --git a/cesar/bsu/test/utest/tests.h b/cesar/bsu/test/utest/tests.h
index ff59576c09..aa5c9be8b0 100644
--- a/cesar/bsu/test/utest/tests.h
+++ b/cesar/bsu/test/utest/tests.h
@@ -51,9 +51,7 @@ typedef struct bsu_test_sar_t bsu_test_sar_t;
struct bsu_test_ul_t
{
/** Beacon sent. */
- pb_beacon_t *beacon;
- /** BSU beacon params. */
- bsu_params_t *bparams;
+ bsu_beacon_t *beacon;
};
typedef struct bsu_test_ul_t bsu_test_ul_t;