1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
|
/* SPDX-License-Identifier: BSD-3-Clause
* Copyright 2017 NXP
*/
#include "test.h"
#include <rte_common.h>
#include <rte_mbuf.h>
#include <rte_malloc.h>
#include <rte_memcpy.h>
#include <rte_dev.h>
#ifdef RTE_EXEC_ENV_WINDOWS
static int
test_rawdev_selftests(void)
{
printf("rawdev not supported on Windows, skipping test\n");
return TEST_SKIPPED;
}
#else
#include <rte_rawdev.h>
#include <rte_bus_vdev.h>
static int
test_rawdev_selftest_impl(const char *pmd, const char *opts)
{
int dev_id, ret;
printf("\n### Test rawdev infrastructure using skeleton driver\n");
rte_vdev_init(pmd, opts);
dev_id = rte_rawdev_get_dev_id(pmd);
if (dev_id < 0) {
printf("Failed to get dev_id for %s\n", pmd);
ret = dev_id;
goto exit;
}
ret = rte_rawdev_selftest(dev_id);
exit:
rte_vdev_uninit(pmd);
return ret;
}
static int
test_rawdev_selftest_skeleton(void)
{
return test_rawdev_selftest_impl("rawdev_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;
}
#endif /* !RTE_EXEC_ENV_WINDOWS */
REGISTER_FAST_TEST(rawdev_autotest, true, true, test_rawdev_selftests);
|