diff mbox

[PATCHv5,3/4] validation: pktio: add mac, promisc and mtu tests

Message ID 1418901989-30502-4-git-send-email-maxim.uvarov@linaro.org
State New
Headers show

Commit Message

Maxim Uvarov Dec. 18, 2014, 11:26 a.m. UTC
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
---
 test/validation/odp_pktio.c | 108 ++++++++++++++++++++++++++++++++++++++++----
 1 file changed, 99 insertions(+), 9 deletions(-)
diff mbox

Patch

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
 };