aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatias Elo <matias.elo@nokia.com>2024-04-25 16:25:18 +0300
committerMatias Elo <matias.elo@nokia.com>2024-04-30 18:22:33 +0300
commitd550a3d0a39782ff2c78b37c8fb8f09a762bf280 (patch)
treee87b64f75b1dddfa339d0a211c382c2d46155c0f
parent19cf17d2f9794a7c02a8b9b8aa2bec27a105e7d2 (diff)
validation: packet: add validation test for odp_packet_reset_meta()
Add validation test for new odp_packet_reset_meta() function. Signed-off-by: Matias Elo <matias.elo@nokia.com> Reviewed-by: Petri Savolainen <petri.savolainen@nokia.com>
-rw-r--r--test/validation/api/packet/packet.c68
1 files changed, 68 insertions, 0 deletions
diff --git a/test/validation/api/packet/packet.c b/test/validation/api/packet/packet.c
index 2575a3f63..86bde020c 100644
--- a/test/validation/api/packet/packet.c
+++ b/test/validation/api/packet/packet.c
@@ -974,6 +974,73 @@ static void packet_test_reset(void)
odp_packet_free(pkt);
}
+static void packet_test_reset_meta(void)
+{
+ uint32_t data_len, seg_len, headroom, tailroom;
+ uint32_t uarea_size = default_param.pkt.uarea_size;
+ void *data, *head, *tail;
+ struct udata_struct *udat;
+ odp_packet_t pkt;
+ int num_segs;
+
+ pkt = odp_packet_alloc(default_pool, segmented_packet_len);
+ CU_ASSERT_FATAL(pkt != ODP_PACKET_INVALID);
+
+ if (uarea_size) {
+ udat = odp_packet_user_area(pkt);
+
+ CU_ASSERT_FATAL(udat != NULL);
+ CU_ASSERT_FATAL(odp_packet_user_area_size(pkt) >= uarea_size);
+ memcpy(udat, &test_packet_udata, uarea_size);
+ }
+
+ data_len = odp_packet_len(pkt);
+ CU_ASSERT(data_len == segmented_packet_len);
+
+ odp_packet_pull_head(pkt, 1);
+ head = odp_packet_head(pkt);
+ CU_ASSERT(head != NULL);
+
+ odp_packet_pull_tail(pkt, 1);
+ tail = odp_packet_tail(pkt);
+ CU_ASSERT(tail != NULL);
+
+ headroom = odp_packet_headroom(pkt);
+ tailroom = odp_packet_tailroom(pkt);
+
+ data = odp_packet_data(pkt);
+ data_len = odp_packet_len(pkt);
+
+ seg_len = odp_packet_seg_len(pkt);
+ num_segs = odp_packet_num_segs(pkt);
+
+ odp_packet_reset_meta(pkt);
+
+ CU_ASSERT(odp_packet_data(pkt) == data);
+ CU_ASSERT(odp_packet_len(pkt) == data_len);
+ CU_ASSERT(odp_packet_seg_len(pkt) == seg_len);
+ CU_ASSERT(odp_packet_num_segs(pkt) == num_segs);
+ CU_ASSERT(odp_packet_headroom(pkt) == headroom);
+ CU_ASSERT(odp_packet_tailroom(pkt) == tailroom);
+ CU_ASSERT(odp_packet_head(pkt) == head);
+ CU_ASSERT(odp_packet_tail(pkt) == tail);
+
+ packet_set_inflags_common(pkt, 1);
+ packet_check_inflags_common(pkt, 1);
+ odp_packet_reset_meta(pkt);
+ packet_check_inflags_all(pkt, 0);
+
+ if (uarea_size) {
+ udat = odp_packet_user_area(pkt);
+
+ CU_ASSERT_FATAL(udat != NULL);
+ CU_ASSERT_FATAL(odp_packet_user_area_size(pkt) >= uarea_size);
+ CU_ASSERT(memcmp(udat, &test_packet_udata, uarea_size) == 0);
+ }
+
+ odp_packet_free(pkt);
+}
+
static void packet_test_prefetch(void)
{
odp_packet_prefetch(test_packet, 0, odp_packet_len(test_packet));
@@ -4488,6 +4555,7 @@ odp_testinfo_t packet_suite[] = {
ODP_TEST_INFO(packet_test_segments),
ODP_TEST_INFO(packet_test_length),
ODP_TEST_INFO(packet_test_reset),
+ ODP_TEST_INFO(packet_test_reset_meta),
ODP_TEST_INFO(packet_test_prefetch),
ODP_TEST_INFO(packet_test_headroom),
ODP_TEST_INFO(packet_test_tailroom),