Rather than having each rawdev provide its own autotest command, we can instead just use the generic rawdev_autotest to test any and all available rawdevs.
Signed-off-by: Bruce Richardson <bruce.richard...@intel.com> Cc: hemant.agra...@nxp.com Cc: nipun.gu...@nxp.com --- app/test/test_rawdev.c | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/app/test/test_rawdev.c b/app/test/test_rawdev.c index d8d9595be..a62f719d6 100644 --- a/app/test/test_rawdev.c +++ b/app/test/test_rawdev.c @@ -14,14 +14,37 @@ static int test_rawdev_selftest_impl(const char *pmd, const char *opts) { + int ret; + + printf("\n### Test rawdev infrastructure using skeleton driver\n"); rte_vdev_init(pmd, opts); - return rte_rawdev_selftest(rte_rawdev_get_dev_id(pmd)); + ret = rte_rawdev_selftest(rte_rawdev_get_dev_id(pmd)); + rte_vdev_uninit(pmd); + return ret; } static int test_rawdev_selftest_skeleton(void) { - return test_rawdev_selftest_impl("rawdev_skeleton", ""); + const int count = rte_rawdev_count(); + int ret = 0; + int i; + + /* basic sanity on rawdev infrastructure */ + if (test_rawdev_selftest_impl("rawdev_skeleton", "") < 0) + return -1; + + /* now run self-test on all rawdevs */ + if (count > 0) + printf("\n### Run selftest on each available rawdev\n"); + for (i = 0; i < count; i++) { + int result = rte_rawdev_selftest(i); + printf("Rawdev %u selftest: %s\n", i, + result == 0 ? "Passed" : "Failed"); + ret |= result; + } + + return ret; } REGISTER_TEST_COMMAND(rawdev_autotest, test_rawdev_selftest_skeleton); -- 2.25.1