test/raw: run selftest on all devices

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.richardson@intel.com>
Reviewed-by: Kevin Laatz <kevin.laatz@intel.com>
This commit is contained in:
Bruce Richardson 2020-09-10 17:47:15 +01:00 committed by Thomas Monjalon
parent 1c6a964075
commit 39f7b298fe
2 changed files with 37 additions and 2 deletions

View File

@ -14,8 +14,13 @@
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
@ -24,7 +29,32 @@ test_rawdev_selftest_skeleton(void)
return test_rawdev_selftest_impl("rawdev_skeleton", "");
}
REGISTER_TEST_COMMAND(rawdev_autotest, test_rawdev_selftest_skeleton);
static int
test_rawdev_selftests(void)
{
const int count = rte_rawdev_count();
int ret = 0;
int i;
/* basic sanity on rawdev infrastructure */
if (test_rawdev_selftest_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 (%s) selftest: %s\n", i,
rte_rawdevs[i].name,
result == 0 ? "Passed" : "Failed");
ret |= result;
}
return ret;
}
REGISTER_TEST_COMMAND(rawdev_autotest, test_rawdev_selftests);
static int
test_rawdev_selftest_ioat(void)

View File

@ -209,6 +209,11 @@ API Changes
and the function ``rte_rawdev_queue_conf_get()``
from ``void`` to ``int`` allowing the return of error codes from drivers.
* rawdev: The running of a drivers ``selftest()`` function can now be done
using the ``rawdev_autotest`` command in the ``dpdk-test`` binary. This
command now calls the self-test function for each rawdev found on the
system, and does not require a specific command per device type.
* stack: the experimental tag has been dropped from the stack library, and its
interfaces are considered stable as of DPDK 20.11.