Message ID | 1418900657-21427-4-git-send-email-maxim.uvarov@linaro.org |
---|---|
State | New |
Headers | show |
On 12/18/2014 02:16 PM, Jerin Jacob wrote: > On Thu, Dec 18, 2014 at 02:04:16PM +0300, Maxim Uvarov wrote: >> Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org> >> --- >> test/validation/odp_pktio.c | 108 ++++++++++++++++++++++++++++++++++++++++---- >> 1 file changed, 99 insertions(+), 9 deletions(-) >> >> diff --git a/test/validation/odp_pktio.c b/test/validation/odp_pktio.c >> index 75a9859..a1773dd 100644 >> --- a/test/validation/odp_pktio.c >> +++ b/test/validation/odp_pktio.c >> @@ -403,6 +403,93 @@ static void test_odp_pktio_sched_multi(void) >> pktio_test_txrx(ODP_QUEUE_TYPE_SCHED, 4); >> } >> >> +static void pktio_test_mtu(void) >> +{ >> + int i; >> + int ret; >> + int def; >> + odp_pktio_t pktio = create_pktio(iface_name[0]); >> + >> + def = odp_pktio_mtu(pktio); >> + CU_ASSERT(def > 0); >> + >> + for (i = 9000; i > 100; i /= 2) { >> + printf(" %d ", i); >> + >> + ret = odp_pktio_set_mtu(pktio, i); >> + if (ret) { >> + if (i <= 1500) { >> + CU_ASSERT(0); >> + } else { >> + printf("(Not supported)"); >> + continue; >> + } >> + } >> + >> + ret = odp_pktio_mtu(pktio); >> + CU_ASSERT(i == ret); >> + } >> + >> + ret = odp_pktio_set_mtu(pktio, def); >> + CU_ASSERT(0 == ret); >> + >> + ret = odp_pktio_close(pktio); >> + CU_ASSERT(ret == 0); >> + >> + return; >> +} >> + >> +static void pktio_test_promisc(void) >> +{ >> + int ret; >> + odp_pktio_t pktio = create_pktio(iface_name[0]); >> + >> + ret = odp_pktio_promisc_mode_set(pktio, 1); >> + CU_ASSERT(0 == ret); >> + >> + /* Check */ >> + ret = odp_pktio_promisc_mode(pktio); >> + CU_ASSERT(1 == ret); >> + >> + ret = odp_pktio_promisc_mode_set(pktio, 0); >> + CU_ASSERT(0 == ret); >> + >> + /* Check */ >> + ret = odp_pktio_promisc_mode(pktio); >> + CU_ASSERT(0 == ret); >> + >> + ret = odp_pktio_close(pktio); >> + CU_ASSERT(ret == 0); > promiscuous mode can be tested by sending the packet with different destination mac address > with existing test frame work.Doesn't make much sense to add the test without checking > the actual functionality. For first step we need code for sunny day check. i.e. compilation. Functionality validation I can add later because it will be more linux-generic focus. Test promisc mode on all platforms require some common setup. Maxim. > >> + >> + return; >> +} >> + >> +static void pktio_test_mac(void) >> +{ >> + unsigned char mac_addr[ODPH_ETHADDR_LEN]; >> + size_t mac_len; >> + int ret; >> + odp_pktio_t pktio = create_pktio(iface_name[0]); >> + >> + printf("testing mac for %s\n", iface_name[0]); >> + >> + mac_len = odp_pktio_mac_addr(pktio, mac_addr, ODPH_ETHADDR_LEN); >> + CU_ASSERT(ODPH_ETHADDR_LEN == mac_len); >> + >> + printf(" %X:%X:%X:%X:%X:%X ", >> + mac_addr[0], mac_addr[1], mac_addr[2], >> + mac_addr[3], mac_addr[4], mac_addr[5]); >> + >> + /* Fail case */ >> + mac_len = odp_pktio_mac_addr(pktio, mac_addr, 2); >> + CU_ASSERT(0 == mac_len); >> + >> + ret = odp_pktio_close(pktio); >> + CU_ASSERT(ret == 0); >> + >> + return; >> +} >> + >> static void test_odp_pktio_open(void) >> { >> odp_pktio_t pktio; >> @@ -483,19 +570,22 @@ static int term_pktio_suite(void) >> } >> >> CU_TestInfo pktio_tests[] = { >> - {"pktio open", test_odp_pktio_open}, >> - {"pktio close", test_odp_pktio_close}, >> - {"pktio inq", test_odp_pktio_inq}, >> - {"pktio outq", test_odp_pktio_outq}, >> - {"pktio poll queues", test_odp_pktio_poll_queue}, >> - {"pktio poll multi", test_odp_pktio_poll_multi}, >> - {"pktio sched queues", test_odp_pktio_sched_queue}, >> - {"pktio sched multi", test_odp_pktio_sched_multi}, >> + {"pktio open", test_odp_pktio_open}, >> + {"pktio close", test_odp_pktio_close}, >> + {"pktio inq", test_odp_pktio_inq}, >> + {"pktio outq", test_odp_pktio_outq}, >> + {"pktio poll queues", test_odp_pktio_poll_queue}, >> + {"pktio poll multi", test_odp_pktio_poll_multi}, >> + {"pktio sched queues", test_odp_pktio_sched_queue}, >> + {"pktio sched multi", test_odp_pktio_sched_multi}, >> + {"pktio mtu", pktio_test_mtu}, >> + {"pktio promisc mode", pktio_test_promisc}, >> + {"pktio mac", pktio_test_mac}, >> CU_TEST_INFO_NULL >> }; >> >> CU_SuiteInfo odp_testsuites[] = { >> - {"odp_pktio", >> + {"Packet I/O", >> init_pktio_suite, term_pktio_suite, NULL, NULL, pktio_tests}, >> CU_SUITE_INFO_NULL >> }; >> -- >> 1.8.5.1.163.gd7aced9 >> >> >> _______________________________________________ >> lng-odp mailing list >> lng-odp@lists.linaro.org >> http://lists.linaro.org/mailman/listinfo/lng-odp
diff --git a/test/validation/odp_pktio.c b/test/validation/odp_pktio.c index 75a9859..a1773dd 100644 --- a/test/validation/odp_pktio.c +++ b/test/validation/odp_pktio.c @@ -403,6 +403,93 @@ static void test_odp_pktio_sched_multi(void) pktio_test_txrx(ODP_QUEUE_TYPE_SCHED, 4); } +static void pktio_test_mtu(void) +{ + int i; + int ret; + int def; + odp_pktio_t pktio = create_pktio(iface_name[0]); + + def = odp_pktio_mtu(pktio); + CU_ASSERT(def > 0); + + for (i = 9000; i > 100; i /= 2) { + printf(" %d ", i); + + ret = odp_pktio_set_mtu(pktio, i); + if (ret) { + if (i <= 1500) { + CU_ASSERT(0); + } else { + printf("(Not supported)"); + continue; + } + } + + ret = odp_pktio_mtu(pktio); + CU_ASSERT(i == ret); + } + + ret = odp_pktio_set_mtu(pktio, def); + CU_ASSERT(0 == ret); + + ret = odp_pktio_close(pktio); + CU_ASSERT(ret == 0); + + return; +} + +static void pktio_test_promisc(void) +{ + int ret; + odp_pktio_t pktio = create_pktio(iface_name[0]); + + ret = odp_pktio_promisc_mode_set(pktio, 1); + CU_ASSERT(0 == ret); + + /* Check */ + ret = odp_pktio_promisc_mode(pktio); + CU_ASSERT(1 == ret); + + ret = odp_pktio_promisc_mode_set(pktio, 0); + CU_ASSERT(0 == ret); + + /* Check */ + ret = odp_pktio_promisc_mode(pktio); + CU_ASSERT(0 == ret); + + ret = odp_pktio_close(pktio); + CU_ASSERT(ret == 0); + + return; +} + +static void pktio_test_mac(void) +{ + unsigned char mac_addr[ODPH_ETHADDR_LEN]; + size_t mac_len; + int ret; + odp_pktio_t pktio = create_pktio(iface_name[0]); + + printf("testing mac for %s\n", iface_name[0]); + + mac_len = odp_pktio_mac_addr(pktio, mac_addr, ODPH_ETHADDR_LEN); + CU_ASSERT(ODPH_ETHADDR_LEN == mac_len); + + printf(" %X:%X:%X:%X:%X:%X ", + mac_addr[0], mac_addr[1], mac_addr[2], + mac_addr[3], mac_addr[4], mac_addr[5]); + + /* Fail case */ + mac_len = odp_pktio_mac_addr(pktio, mac_addr, 2); + CU_ASSERT(0 == mac_len); + + ret = odp_pktio_close(pktio); + CU_ASSERT(ret == 0); + + return; +} + static void test_odp_pktio_open(void) { odp_pktio_t pktio; @@ -483,19 +570,22 @@ static int term_pktio_suite(void) } CU_TestInfo pktio_tests[] = { - {"pktio open", test_odp_pktio_open}, - {"pktio close", test_odp_pktio_close}, - {"pktio inq", test_odp_pktio_inq}, - {"pktio outq", test_odp_pktio_outq}, - {"pktio poll queues", test_odp_pktio_poll_queue}, - {"pktio poll multi", test_odp_pktio_poll_multi}, - {"pktio sched queues", test_odp_pktio_sched_queue}, - {"pktio sched multi", test_odp_pktio_sched_multi}, + {"pktio open", test_odp_pktio_open}, + {"pktio close", test_odp_pktio_close}, + {"pktio inq", test_odp_pktio_inq}, + {"pktio outq", test_odp_pktio_outq}, + {"pktio poll queues", test_odp_pktio_poll_queue}, + {"pktio poll multi", test_odp_pktio_poll_multi}, + {"pktio sched queues", test_odp_pktio_sched_queue}, + {"pktio sched multi", test_odp_pktio_sched_multi}, + {"pktio mtu", pktio_test_mtu}, + {"pktio promisc mode", pktio_test_promisc}, + {"pktio mac", pktio_test_mac}, CU_TEST_INFO_NULL }; CU_SuiteInfo odp_testsuites[] = { - {"odp_pktio", + {"Packet I/O", init_pktio_suite, term_pktio_suite, NULL, NULL, pktio_tests}, CU_SUITE_INFO_NULL };
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org> --- test/validation/odp_pktio.c | 108 ++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 99 insertions(+), 9 deletions(-)