File: test_rawdev.c

package info (click to toggle)
dpdk 25.11-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 127,892 kB
  • sloc: ansic: 2,358,479; python: 16,426; sh: 4,474; makefile: 1,713; awk: 70
file content (77 lines) | stat: -rw-r--r-- 1,577 bytes parent folder | download
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);