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