1 /* SPDX-License-Identifier: BSD-3-Clause 2 * Copyright 2017 NXP 3 */ 4 #include <rte_common.h> 5 #include <rte_mbuf.h> 6 #include <rte_malloc.h> 7 #include <rte_memcpy.h> 8 #include <rte_dev.h> 9 #include <rte_rawdev.h> 10 #include <rte_bus_vdev.h> 11 12 #include "test.h" 13 14 static int 15 test_rawdev_selftest_impl(const char *pmd, const char *opts) 16 { 17 int ret; 18 19 printf("\n### Test rawdev infrastructure using skeleton driver\n"); 20 rte_vdev_init(pmd, opts); 21 ret = rte_rawdev_selftest(rte_rawdev_get_dev_id(pmd)); 22 rte_vdev_uninit(pmd); 23 return ret; 24 } 25 26 static int 27 test_rawdev_selftest_skeleton(void) 28 { 29 return test_rawdev_selftest_impl("rawdev_skeleton", ""); 30 } 31 32 static int 33 test_rawdev_selftests(void) 34 { 35 const int count = rte_rawdev_count(); 36 int ret = 0; 37 int i; 38 39 /* basic sanity on rawdev infrastructure */ 40 if (test_rawdev_selftest_skeleton() < 0) 41 return -1; 42 43 /* now run self-test on all rawdevs */ 44 if (count > 0) 45 printf("\n### Run selftest on each available rawdev\n"); 46 for (i = 0; i < count; i++) { 47 int result = rte_rawdev_selftest(i); 48 printf("Rawdev %u (%s) selftest: %s\n", i, 49 rte_rawdevs[i].name, 50 result == 0 ? "Passed" : "Failed"); 51 ret |= result; 52 } 53 54 return ret; 55 } 56 57 REGISTER_TEST_COMMAND(rawdev_autotest, test_rawdev_selftests); 58