Signed-off-by: Nicolas Morey-Chaisemartin <[email protected]>
---
 test/validation/pktio/pktio.c | 67 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 67 insertions(+)

diff --git a/test/validation/pktio/pktio.c b/test/validation/pktio/pktio.c
index b52da06..d39251c 100644
--- a/test/validation/pktio/pktio.c
+++ b/test/validation/pktio/pktio.c
@@ -958,6 +958,71 @@ static void pktio_test_send_failure(void)
        CU_ASSERT(odp_pool_destroy(pkt_pool) == 0);
 }
 
+static void pktio_test_recv_on_wonly(void)
+{
+       odp_pktio_t pktio;
+       odp_packet_t pkt;
+       int ret;
+
+       pktio = create_pktio(0, ODP_PKTIN_MODE_DISABLED,
+                            ODP_PKTOUT_MODE_SEND);
+
+       if (pktio == ODP_PKTIO_INVALID) {
+               CU_FAIL("failed to open pktio");
+               return;
+       }
+
+       ret = odp_pktio_start(pktio);
+       CU_ASSERT_FATAL(ret == 0);
+
+       ret = odp_pktio_recv(pktio, &pkt, 1);
+       CU_ASSERT(ret < 0);
+
+       if (ret > 0)
+               odp_packet_free(pkt);
+
+       ret = odp_pktio_stop(pktio);
+       CU_ASSERT_FATAL(ret == 0);
+
+       ret = odp_pktio_close(pktio);
+       CU_ASSERT_FATAL(ret == 0);
+}
+
+static void pktio_test_send_on_ronly(void)
+{
+       odp_pktio_t pktio;
+       odp_packet_t pkt;
+       int ret;
+
+       pktio = create_pktio(0, ODP_PKTIN_MODE_RECV,
+                            ODP_PKTOUT_MODE_DISABLED);
+
+       if (pktio == ODP_PKTIO_INVALID) {
+               CU_FAIL("failed to open pktio");
+               return;
+       }
+
+       ret = odp_pktio_start(pktio);
+       CU_ASSERT_FATAL(ret == 0);
+
+       pkt = odp_packet_alloc(default_pkt_pool, packet_len);
+       CU_ASSERT_FATAL(pkt != ODP_PACKET_INVALID)
+
+       pktio_init_packet(pkt);
+
+       ret = odp_pktio_send(pktio, &pkt, 1);
+       CU_ASSERT(ret < 0);
+
+       if (ret <= 0)
+               odp_packet_free(pkt);
+
+       ret = odp_pktio_stop(pktio);
+       CU_ASSERT_FATAL(ret == 0);
+
+       ret = odp_pktio_close(pktio);
+       CU_ASSERT_FATAL(ret == 0);
+}
+
 static int create_pool(const char *iface, int num)
 {
        char pool_name[ODP_POOL_NAME_LEN];
@@ -1073,6 +1138,8 @@ odp_testinfo_t pktio_suite_unsegmented[] = {
        ODP_TEST_INFO(pktio_test_mac),
        ODP_TEST_INFO(pktio_test_inq_remdef),
        ODP_TEST_INFO(pktio_test_start_stop),
+       ODP_TEST_INFO(pktio_test_recv_on_wonly),
+       ODP_TEST_INFO(pktio_test_send_on_ronly),
        ODP_TEST_INFO_NULL
 };
 
-- 
2.6.2.406.gaaaec35


_______________________________________________
lng-odp mailing list
[email protected]
https://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to