From: Bruce Richardson Date: Thu, 10 Sep 2020 16:47:15 +0000 (+0100) Subject: test/raw: run selftest on all devices X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=39f7b298fe5cb6c4f8506edf44dc5047d553642c;p=dpdk.git 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 Reviewed-by: Kevin Laatz --- diff --git a/app/test/test_rawdev.c b/app/test/test_rawdev.c index d8d9595be1..7e2fb2cf27 100644 --- a/app/test/test_rawdev.c +++ b/app/test/test_rawdev.c @@ -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) diff --git a/doc/guides/rel_notes/release_20_11.rst b/doc/guides/rel_notes/release_20_11.rst index a3fdbfa058..d2d57ba2f0 100644 --- a/doc/guides/rel_notes/release_20_11.rst +++ b/doc/guides/rel_notes/release_20_11.rst @@ -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.