[dpdk-dev] [RFC PATCH 1/7] app/test: take API tests from skeleton dmadev

Bruce Richardson bruce.richardson at intel.com
Thu Aug 26 20:32:55 CEST 2021


Rather than having the API level tests as self-test for the skeleton
driver, we can have these tests included directly into the autotest, so
that potentially other drivers can use them in future.

Signed-off-by: Bruce Richardson <bruce.richardson at intel.com>
---
 app/test/meson.build                          |  1 +
 app/test/test_dmadev.c                        | 12 ++++++++--
 .../test/test_dmadev_api.c                    | 24 ++++++++-----------
 drivers/dma/skeleton/meson.build              |  1 -
 drivers/dma/skeleton/skeleton_dmadev.c        |  6 +++++
 5 files changed, 27 insertions(+), 17 deletions(-)
 rename drivers/dma/skeleton/skeleton_dmadev_test.c => app/test/test_dmadev_api.c (96%)

diff --git a/app/test/meson.build b/app/test/meson.build
index 881cb4f655..9027eba3a4 100644
--- a/app/test/meson.build
+++ b/app/test/meson.build
@@ -44,6 +44,7 @@ test_sources = files(
         'test_distributor.c',
         'test_distributor_perf.c',
         'test_dmadev.c',
+        'test_dmadev_api.c',
         'test_eal_flags.c',
         'test_eal_fs.c',
         'test_efd.c',
diff --git a/app/test/test_dmadev.c b/app/test/test_dmadev.c
index 90e8faafa5..62fe27b7e8 100644
--- a/app/test/test_dmadev.c
+++ b/app/test/test_dmadev.c
@@ -9,15 +9,23 @@
 
 #include "test.h"
 
+/* from test_dmadev_api.c */
+extern int test_dmadev_api(uint16_t dev_id);
+
 static int
 test_dmadev_selftest_skeleton(void)
 {
 	const char *pmd = "dma_skeleton";
+	int id;
 	int ret;
 
+	if (rte_vdev_init(pmd, NULL) < 0)
+		return TEST_SKIPPED;
+	id = rte_dmadev_get_dev_id(pmd);
+	if (id < 0)
+		return TEST_SKIPPED;
 	printf("\n### Test dmadev infrastructure using skeleton driver\n");
-	rte_vdev_init(pmd, NULL);
-	ret = rte_dmadev_selftest(rte_dmadev_get_dev_id(pmd));
+	ret = test_dmadev_api(id);
 	rte_vdev_uninit(pmd);
 
 	return ret;
diff --git a/drivers/dma/skeleton/skeleton_dmadev_test.c b/app/test/test_dmadev_api.c
similarity index 96%
rename from drivers/dma/skeleton/skeleton_dmadev_test.c
rename to app/test/test_dmadev_api.c
index be56f07262..8b93628e1c 100644
--- a/drivers/dma/skeleton/skeleton_dmadev_test.c
+++ b/app/test/test_dmadev_api.c
@@ -2,20 +2,16 @@
  * Copyright(c) 2021 HiSilicon Limited.
  */
 
+#include <stdint.h>
 #include <string.h>
 
 #include <rte_common.h>
 #include <rte_cycles.h>
 #include <rte_malloc.h>
 #include <rte_test.h>
+#include <rte_dmadev.h>
 
-/* Using relative path as skeleton_dmadev is not part of exported headers */
-#include "skeleton_dmadev.h"
-
-#define SKELDMA_TEST_DEBUG(fmt, args...) \
-	SKELDMA_LOG(DEBUG, fmt, ## args)
-#define SKELDMA_TEST_INFO(fmt, args...) \
-	SKELDMA_LOG(INFO, fmt, ## args)
+extern int test_dmadev_api(uint16_t dev_id);
 
 #define SKELDMA_TEST_RUN(test) \
 	testsuite_run_test(test, #test)
@@ -73,10 +69,10 @@ testsuite_run_test(int (*test)(void), const char *name)
 		ret = test();
 		if (ret < 0) {
 			failed++;
-			SKELDMA_TEST_INFO("%s Failed", name);
+			printf("%s Failed\n", name);
 		} else {
 			passed++;
-			SKELDMA_TEST_DEBUG("%s Passed", name);
+			printf("%s Passed\n", name);
 		}
 	}
 
@@ -486,11 +482,11 @@ test_dmadev_completed_status(void)
 }
 
 int
-test_dma_skeleton(uint16_t dev_id)
+test_dmadev_api(uint16_t dev_id)
 {
 	int ret = testsuite_setup(dev_id);
 	if (ret) {
-		SKELDMA_TEST_INFO("testsuite setup fail!");
+		printf("testsuite setup fail!");
 		return -1;
 	}
 
@@ -510,9 +506,9 @@ test_dma_skeleton(uint16_t dev_id)
 
 	testsuite_teardown();
 
-	SKELDMA_TEST_INFO("Total tests   : %d\n", total);
-	SKELDMA_TEST_INFO("Passed        : %d\n", passed);
-	SKELDMA_TEST_INFO("Failed        : %d\n", failed);
+	printf("Total tests   : %d\n", total);
+	printf("Passed        : %d\n", passed);
+	printf("Failed        : %d\n", failed);
 
 	if (failed)
 		return -1;
diff --git a/drivers/dma/skeleton/meson.build b/drivers/dma/skeleton/meson.build
index 5d47339c6f..27509b1668 100644
--- a/drivers/dma/skeleton/meson.build
+++ b/drivers/dma/skeleton/meson.build
@@ -4,5 +4,4 @@
 deps += ['dmadev', 'kvargs', 'ring', 'bus_vdev']
 sources = files(
         'skeleton_dmadev.c',
-        'skeleton_dmadev_test.c',
 )
diff --git a/drivers/dma/skeleton/skeleton_dmadev.c b/drivers/dma/skeleton/skeleton_dmadev.c
index 1707e88173..ad129c578c 100644
--- a/drivers/dma/skeleton/skeleton_dmadev.c
+++ b/drivers/dma/skeleton/skeleton_dmadev.c
@@ -30,6 +30,12 @@
 /* Count of instances */
 static uint16_t skeldma_init_once;
 
+int
+test_dma_skeleton(uint16_t dev_id __rte_unused)
+{
+	return 0;
+}
+
 static int
 skeldma_info_get(const struct rte_dmadev *dev, struct rte_dmadev_info *dev_info,
 		 uint32_t info_sz)
-- 
2.30.2



More information about the dev mailing list