diff mbox

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

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

Commit Message

Maxim Uvarov Dec. 18, 2014, 11:04 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(-)

Comments

Maxim Uvarov Dec. 22, 2014, 9:17 a.m. UTC | #1
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 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
 };