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@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%)
@@ -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',
@@ -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;
similarity index 96%
rename from drivers/dma/skeleton/skeleton_dmadev_test.c
rename to 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;
@@ -4,5 +4,4 @@
deps += ['dmadev', 'kvargs', 'ring', 'bus_vdev']
sources = files(
'skeleton_dmadev.c',
- 'skeleton_dmadev_test.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)