From e4768ee7644595f63774b202919113bb6f05f159 Mon Sep 17 00:00:00 2001 From: laranjeiro Date: Thu, 20 May 2010 12:26:15 +0000 Subject: cesar/mac/sar: add test for measure statistics git-svn-id: svn+ssh://pessac/svn/cesar/trunk@7122 017c9cb6-072f-447c-8318-d5b54f68fe89 --- cesar/mac/sar/test/unit_test/ecos/src/stats.c | 8 ++++++++ cesar/mac/sar/test/unit_test/ecos/src/tests.c | 21 +++++++++++++++++++-- cesar/mac/sar/test/unit_test/ecos/tests.h | 9 +++++++++ 3 files changed, 36 insertions(+), 2 deletions(-) (limited to 'cesar') 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 */ -- cgit v1.2.3