From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jerin Jacob Subject: [PATCH 4/4] app/test: unit test case to exercise eventdev vdev uninit Date: Mon, 6 Feb 2017 10:53:40 +0530 Message-ID: <1486358620-4075-5-git-send-email-jerin.jacob@caviumnetworks.com> References: <1486358620-4075-1-git-send-email-jerin.jacob@caviumnetworks.com> Mime-Version: 1.0 Content-Type: text/plain Cc: , , , , Jerin Jacob To: Return-path: Received: from NAM01-BY2-obe.outbound.protection.outlook.com (mail-by2nam01on0049.outbound.protection.outlook.com [104.47.34.49]) by dpdk.org (Postfix) with ESMTP id 386D1FFA for ; Mon, 6 Feb 2017 06:24:33 +0100 (CET) In-Reply-To: <1486358620-4075-1-git-send-email-jerin.jacob@caviumnetworks.com> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Signed-off-by: Jerin Jacob --- app/test/test_eventdev.c | 60 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 59 insertions(+), 1 deletion(-) diff --git a/app/test/test_eventdev.c b/app/test/test_eventdev.c index 042a446..e817838 100644 --- a/app/test/test_eventdev.c +++ b/app/test/test_eventdev.c @@ -51,7 +51,7 @@ testsuite_setup(void) if (!count) { printf("Failed to find a valid event device," " testing with event_skeleton device\n"); - return rte_eal_vdev_init("event_skeleton", NULL); + return rte_eal_vdev_init("event_skeleton0", NULL); } return TEST_SUCCESS; } @@ -720,6 +720,62 @@ test_eventdev_close(void) return rte_event_dev_close(TEST_DEV_ID); } +#define TEST_EVENTDEV_COUNT 8 + +static int +test_eventdev_create_destroy(void) +{ +#ifdef RTE_LIBRTE_PMD_SKELETON_EVENTDEV + int i, ret; + uint8_t curr_count; + char name[RTE_EVENTDEV_NAME_MAX_LEN]; + + curr_count = rte_event_dev_count(); + + /* Start from one to avoid overlap with active event_skeleton0 dev */ + for (i = 1; i <= TEST_EVENTDEV_COUNT; i++) { + ret = snprintf(name, RTE_EVENTDEV_NAME_MAX_LEN, + "%s%u", "event_skeleton", i); + TEST_ASSERT(ret >= 0, "Expected >0, %d", ret); + ret = rte_eal_vdev_init(name, NULL); + TEST_ASSERT_SUCCESS(ret, "Failed to init event_skeleton dev %s", + name); + } + for (i = 1; i <= TEST_EVENTDEV_COUNT; i++) { + ret = snprintf(name, RTE_EVENTDEV_NAME_MAX_LEN, + "%s%u", "event_skeleton", i); + TEST_ASSERT(ret >= 0, "Expected >0, %d", ret); + ret = rte_eal_vdev_uninit(name); + TEST_ASSERT_SUCCESS(ret, "Failed to uninit skeleton dev %s", + name); + } + TEST_ASSERT(curr_count == rte_event_dev_count(), + "init/uninit pairs count mismatch"); + + /* Test in reverse order */ + for (i = 1; i <= TEST_EVENTDEV_COUNT; i++) { + ret = snprintf(name, RTE_EVENTDEV_NAME_MAX_LEN, + "%s%u", "event_skeleton", i); + TEST_ASSERT(ret >= 0, "Expected >0, %d", ret); + ret = rte_eal_vdev_init(name, NULL); + TEST_ASSERT_SUCCESS(ret, "Failed to init event_skeleton dev %s", + name); + } + for (i = TEST_EVENTDEV_COUNT; i > 0; i--) { + ret = snprintf(name, RTE_EVENTDEV_NAME_MAX_LEN, + "%s%u", "event_skeleton", i); + TEST_ASSERT(ret >= 0, "Expected >0, %d", ret); + ret = rte_eal_vdev_uninit(name); + TEST_ASSERT_SUCCESS(ret, "Failed to uninit skeleton dev %s", + name); + } + TEST_ASSERT(curr_count == rte_event_dev_count(), + "init/uninit pairs count mismatch"); +#else + printf("Skipping eventdev_create_destroy test due to unavailability of event skeleton device\n"); +#endif + return TEST_SUCCESS; +} static struct unit_test_suite eventdev_common_testsuite = { .suite_name = "eventdev common code unit test suite", .setup = testsuite_setup, @@ -765,6 +821,8 @@ static struct unit_test_suite eventdev_common_testsuite = { test_eventdev_link_get), TEST_CASE_ST(eventdev_setup_device, NULL, test_eventdev_close), + TEST_CASE_ST(NULL, NULL, + test_eventdev_create_destroy), TEST_CASES_END() /**< NULL terminate unit test array */ } }; -- 2.5.5