Signed-off-by: Maxim Uvarov <maxim.uva...@linaro.org> --- test/validation/packet/packet.c | 31 +++++++++++++++++++++++++++++++ test/validation/packet/packet.h | 1 + 2 files changed, 32 insertions(+)
diff --git a/test/validation/packet/packet.c b/test/validation/packet/packet.c index 0c749c3..384125f 100644 --- a/test/validation/packet/packet.c +++ b/test/validation/packet/packet.c @@ -778,6 +778,36 @@ void packet_test_offset(void) CU_ASSERT_PTR_NOT_NULL(ptr); } +void packet_test_ref(void) +{ + odp_packet_t pkt = test_packet; + odp_packet_t pkt_ref; + uint32_t pkt_len = odp_packet_len(pkt); + uint8_t *data_buf1; + uint8_t *data_buf2; + + data_buf1 = malloc(pkt_len); + CU_ASSERT_PTR_NOT_NULL_FATAL(data_buf1); + data_buf2 = malloc(pkt_len); + CU_ASSERT_PTR_NOT_NULL_FATAL(data_buf2); + + pkt_ref = odp_packet_create_ref(pkt); + + /* Check that packet data is the same for pkt and pkt_ref */ + CU_ASSERT(!odp_packet_copydata_out(pkt, 0, pkt_len, data_buf1)); + CU_ASSERT(!odp_packet_copydata_out(pkt_ref, 0, pkt_len, data_buf2)); + CU_ASSERT(!memcmp(data_buf1, data_buf2, pkt_len)); + + odp_packet_free(pkt_ref); + + /* Check original packet data after free reference. */ + CU_ASSERT(!odp_packet_copydata_out(pkt, 0, pkt_len, data_buf2)); + CU_ASSERT(!memcmp(data_buf1, data_buf2, pkt_len)); + + free(data_buf1); + free(data_buf2); +} + CU_TestInfo packet_suite[] = { _CU_TEST_INFO(packet_test_alloc_free), _CU_TEST_INFO(packet_test_alloc_segmented), @@ -797,6 +827,7 @@ CU_TestInfo packet_suite[] = { _CU_TEST_INFO(packet_test_copy), _CU_TEST_INFO(packet_test_copydata), _CU_TEST_INFO(packet_test_offset), + _CU_TEST_INFO(packet_test_ref), CU_TEST_INFO_NULL, }; diff --git a/test/validation/packet/packet.h b/test/validation/packet/packet.h index f8a16a8..d1feff8 100644 --- a/test/validation/packet/packet.h +++ b/test/validation/packet/packet.h @@ -28,6 +28,7 @@ void packet_test_add_rem_data(void); void packet_test_copy(void); void packet_test_copydata(void); void packet_test_offset(void); +void packet_test_ref(void); /* test arrays: */ extern CU_TestInfo packet_suite[]; -- 1.9.1 _______________________________________________ lng-odp mailing list lng-odp@lists.linaro.org https://lists.linaro.org/mailman/listinfo/lng-odp