summaryrefslogtreecommitdiff
path: root/cesar
diff options
context:
space:
mode:
authorlaranjeiro2010-05-20 12:26:15 +0000
committerlaranjeiro2010-05-20 12:26:15 +0000
commite4768ee7644595f63774b202919113bb6f05f159 (patch)
treec51975fa4f7b3a16127b19626aa27a9e84cb9cb9 /cesar
parent818e51f418ca0c2acd6f4411f576525565d1bc5c (diff)
cesar/mac/sar: add test for measure statistics
git-svn-id: svn+ssh://pessac/svn/cesar/trunk@7122 017c9cb6-072f-447c-8318-d5b54f68fe89
Diffstat (limited to 'cesar')
-rw-r--r--cesar/mac/sar/test/unit_test/ecos/src/stats.c8
-rw-r--r--cesar/mac/sar/test/unit_test/ecos/src/tests.c21
-rw-r--r--cesar/mac/sar/test/unit_test/ecos/tests.h9
3 files changed, 36 insertions, 2 deletions
diff --git a/cesar/mac/sar/test/unit_test/ecos/src/stats.c b/cesar/mac/sar/test/unit_test/ecos/src/stats.c
index 81cabcf062..7b230d807c 100644
--- a/cesar/mac/sar/test/unit_test/ecos/src/stats.c
+++ b/cesar/mac/sar/test/unit_test/ecos/src/stats.c
@@ -331,6 +331,14 @@ test_sar_stats_rx_do (test_t test, bool bcast)
test_fail_unless (mfs->stats.num_mpdus == stats.num_mpdus);
test_fail_unless (mfs->stats.num_bursts == stats.num_bursts);
}
+ /* Check SAR statistics. */
+ sar_stats_t sar_stats;
+ sar_test_sar_stats_compute (pb_final_first, &sar_stats);
+ test_fail_unless (sar_stats.rx_pb_count
+ == t.sar->stats.rx_pb_count);
+ test_fail_unless (sar_stats.rx_pb_crc_error_count
+ == t.sar->stats.rx_pb_crc_error_count);
+ test_fail_unless (sar_stats.ber_sum == t.sar->stats.ber_sum);
}
test_end;
blk_release_desc_range ((blk_t*) pb_final_first,
diff --git a/cesar/mac/sar/test/unit_test/ecos/src/tests.c b/cesar/mac/sar/test/unit_test/ecos/src/tests.c
index 59cc7e8d5f..a0f4f7193e 100644
--- a/cesar/mac/sar/test/unit_test/ecos/src/tests.c
+++ b/cesar/mac/sar/test/unit_test/ecos/src/tests.c
@@ -403,8 +403,8 @@ sar_test_duplicate_pb (pb_t **first, pb_t **last,
pb = pb->next, pb_old_chain = pb_old_chain->next)
{
pb->header = pb_old_chain->header;
- pb->phy_pb.pb_rx.pb_measurement.crc_error =
- pb_old_chain->phy_pb.pb_rx.pb_measurement.crc_error;
+ pb->phy_pb.pb_rx.pb_measurement =
+ pb_old_chain->phy_pb.pb_rx.pb_measurement;
memcpy (pb->data, pb_old_chain->data, BLK_SIZE);
}
(*last)->next = NULL;
@@ -490,6 +490,7 @@ sar_test_create_pb_from_msdu (uint mf_payload_size, sar_mf_type_t type,
pb->header.opsf = false;
pb->header.spc_encrypted = true;
pb->phy_pb.pb_rx.pb_measurement.crc_error = false;
+ pb->phy_pb.pb_rx.pb_measurement.ber = ssn - 1;
}
/* Store in PBs. */
pb = *first;
@@ -513,3 +514,19 @@ sar_test_create_pb_from_msdu (uint mf_payload_size, sar_mf_type_t type,
bitstream_write (&stream, SAR_MF_TYPE_NONE, 2);
return pb_nb;
}
+
+void
+sar_test_sar_stats_compute (pb_t *pb, sar_stats_t *stats)
+{
+ stats->rx_pb_count = 0;
+ stats->rx_pb_crc_error_count = 0;
+ stats->ber_sum = 0;
+ for (; pb; pb = pb->next)
+ {
+ if (pb->phy_pb.pb_rx.pb_measurement.crc_error)
+ stats->rx_pb_crc_error_count++;
+ else
+ stats->ber_sum += pb->phy_pb.pb_rx.pb_measurement.ber;
+ stats->rx_pb_count++;
+ }
+}
diff --git a/cesar/mac/sar/test/unit_test/ecos/tests.h b/cesar/mac/sar/test/unit_test/ecos/tests.h
index dade7f900a..db33ad54e5 100644
--- a/cesar/mac/sar/test/unit_test/ecos/tests.h
+++ b/cesar/mac/sar/test/unit_test/ecos/tests.h
@@ -313,6 +313,15 @@ sar_test_create_pb_from_msdu (uint mf_payload_size, sar_mf_type_t type,
u32 mf_ssn, pb_t **first, pb_t **last, u16 ssn,
u32 seed);
+
+/**
+ * Compute the stats using the PB list provided.
+ * \param pb the first PB list.
+ * \param stats the SAR stats structure to fill to compare with the SAR one.
+ */
+void
+sar_test_sar_stats_compute (pb_t *pb, sar_stats_t *stats);
+
END_DECLS
#endif /* mac_sar_test_unit_test_ecos_tests_h */