On 12 September 2016 at 16:48, Bill Fischofer <[email protected]> wrote:
> Resolve Bug https://bugs.linaro.org/show_bug.cgi?id=2405 by removing > todos in packet validation test. Add additional tests for todos that can > be resolved within current ODP API set and remove the rest to be deferred > for latest updates. > > Signed-off-by: Bill Fischofer <[email protected]> > Reviewed-by: Mike Holmes <[email protected]> > --- > test/common_plat/validation/api/packet/packet.c | 56 > ++++++++++++------------- > 1 file changed, 28 insertions(+), 28 deletions(-) > > diff --git a/test/common_plat/validation/api/packet/packet.c > b/test/common_plat/validation/api/packet/packet.c > index a4426e2..c75cde9 100644 > --- a/test/common_plat/validation/api/packet/packet.c > +++ b/test/common_plat/validation/api/packet/packet.c > @@ -32,6 +32,28 @@ static struct udata_struct { > "abcdefg", > }; > > +static void _packet_compare_data(odp_packet_t pkt1, odp_packet_t pkt2) > +{ > + uint32_t len = odp_packet_len(pkt1); > + uint32_t offset = 0; > + uint32_t seglen1, seglen2, cmplen; > + > + CU_ASSERT_FATAL(len == odp_packet_len(pkt2)); > + > + while (len > 0) { > + void *pkt1map = odp_packet_offset(pkt1, offset, &seglen1, > NULL); > + void *pkt2map = odp_packet_offset(pkt2, offset, &seglen2, > NULL); > + > + CU_ASSERT_PTR_NOT_NULL_FATAL(pkt1map); > + CU_ASSERT_PTR_NOT_NULL_FATAL(pkt2map); > + cmplen = seglen1 < seglen2 ? seglen1 : seglen2; > + CU_ASSERT(!memcmp(pkt1map, pkt2map, cmplen)); > + > + offset += cmplen; > + len -= cmplen; > + } > +} > + > int packet_suite_init(void) > { > odp_pool_param_t params; > @@ -298,7 +320,8 @@ void packet_test_event_conversion(void) > > tmp_pkt = odp_packet_from_event(ev); > CU_ASSERT_FATAL(tmp_pkt != ODP_PACKET_INVALID); > - /** @todo: Need an API to compare packets */ > + CU_ASSERT(tmp_pkt == pkt); > + _packet_compare_data(tmp_pkt, pkt); > } > > void packet_test_basic_metadata(void) > @@ -502,7 +525,7 @@ void packet_test_headroom(void) > > seg_data_len = odp_packet_seg_len(pkt); > CU_ASSERT(seg_data_len >= 1); > - /** @todo: should be len - 1 */ > + > pull_val = seg_data_len / 2; > push_val = room; > > @@ -625,7 +648,7 @@ void packet_test_tailroom(void) > > seg_data_len = odp_packet_seg_data_len(pkt, segment); > CU_ASSERT(seg_data_len >= 1); > - /** @todo: should be len - 1 */ > + > pull_val = seg_data_len / 2; > /* Leave one byte in a tailroom for odp_packet_tail() to succeed */ > push_val = (room > 0) ? room - 1 : room; > @@ -681,10 +704,10 @@ void packet_test_segments(void) > CU_ASSERT_PTR_NOT_NULL(seg_data); > CU_ASSERT(odp_packet_seg_to_u64(seg) != > odp_packet_seg_to_u64(ODP_PACKET_SEG_INVALID)); > + CU_ASSERT(odp_memcmp(seg_data, seg_data, seg_data_len) == > 0); > > data_len += seg_data_len; > > - /** @todo: touch memory in a segment */ > seg_index++; > seg = odp_packet_next_seg(pkt, seg); > } > @@ -713,10 +736,10 @@ void packet_test_segments(void) > CU_ASSERT(seg_data != NULL); > CU_ASSERT(odp_packet_seg_to_u64(seg) != > odp_packet_seg_to_u64(ODP_PACKET_SEG_INVALID)); > + CU_ASSERT(odp_memcmp(seg_data, seg_data, seg_data_len) == > 0); > > data_len += seg_data_len; > > - /** @todo: touch memory in a segment */ > seg_index++; > seg = odp_packet_next_seg(seg_pkt, seg); > } > @@ -784,7 +807,6 @@ void packet_test_error_flags(void) > /** > * The packet have not been classified so it doesn't have error > flags > * properly set. Just check that functions return one of allowed > values. > - * @todo: try with known good and bad packets. > */ > err = odp_packet_has_error(pkt); > CU_ASSERT(err == 0 || err == 1); > @@ -922,28 +944,6 @@ static void _packet_compare_inflags(odp_packet_t > pkt1, odp_packet_t pkt2) > COMPARE_INFLAG(pkt1, pkt2, shaper_len_adjust); > } > > -static void _packet_compare_data(odp_packet_t pkt1, odp_packet_t pkt2) > -{ > - uint32_t len = odp_packet_len(pkt1); > - uint32_t offset = 0; > - uint32_t seglen1, seglen2, cmplen; > - > - CU_ASSERT_FATAL(len == odp_packet_len(pkt2)); > - > - while (len > 0) { > - void *pkt1map = odp_packet_offset(pkt1, offset, &seglen1, > NULL); > - void *pkt2map = odp_packet_offset(pkt2, offset, &seglen2, > NULL); > - > - CU_ASSERT_PTR_NOT_NULL_FATAL(pkt1map); > - CU_ASSERT_PTR_NOT_NULL_FATAL(pkt2map); > - cmplen = seglen1 < seglen2 ? seglen1 : seglen2; > - CU_ASSERT(!memcmp(pkt1map, pkt2map, cmplen)); > - > - offset += cmplen; > - len -= cmplen; > - } > -} > - > static void _packet_compare_udata(odp_packet_t pkt1, odp_packet_t pkt2) > { > uint32_t usize1 = odp_packet_user_area_size(pkt1); > -- > 2.7.4 > > -- Mike Holmes Program Manager - Linaro Networking Group Linaro.org <http://www.linaro.org/> *│ *Open source software for ARM SoCs "Work should be fun and collaborative, the rest follows"
