xref: /dpdk/app/test-mldev/ml_test.c (revision ac930a554457ce244109f51f1f14939b59b8f4dc)
1*ac930a55SSrikanth Yalavarthi /* SPDX-License-Identifier: BSD-3-Clause
2*ac930a55SSrikanth Yalavarthi  * Copyright (c) 2022 Marvell.
3*ac930a55SSrikanth Yalavarthi  */
4*ac930a55SSrikanth Yalavarthi 
5*ac930a55SSrikanth Yalavarthi #include "ml_test.h"
6*ac930a55SSrikanth Yalavarthi 
7*ac930a55SSrikanth Yalavarthi static STAILQ_HEAD(, ml_test_entry) head = STAILQ_HEAD_INITIALIZER(head);
8*ac930a55SSrikanth Yalavarthi 
9*ac930a55SSrikanth Yalavarthi void
ml_test_register(struct ml_test_entry * entry)10*ac930a55SSrikanth Yalavarthi ml_test_register(struct ml_test_entry *entry)
11*ac930a55SSrikanth Yalavarthi {
12*ac930a55SSrikanth Yalavarthi 	STAILQ_INSERT_TAIL(&head, entry, next);
13*ac930a55SSrikanth Yalavarthi }
14*ac930a55SSrikanth Yalavarthi 
15*ac930a55SSrikanth Yalavarthi struct ml_test *
ml_test_get(const char * name)16*ac930a55SSrikanth Yalavarthi ml_test_get(const char *name)
17*ac930a55SSrikanth Yalavarthi {
18*ac930a55SSrikanth Yalavarthi 	struct ml_test_entry *entry;
19*ac930a55SSrikanth Yalavarthi 
20*ac930a55SSrikanth Yalavarthi 	if (!name)
21*ac930a55SSrikanth Yalavarthi 		return NULL;
22*ac930a55SSrikanth Yalavarthi 
23*ac930a55SSrikanth Yalavarthi 	STAILQ_FOREACH(entry, &head, next)
24*ac930a55SSrikanth Yalavarthi 	if (!strncmp(entry->test.name, name, strlen(name)))
25*ac930a55SSrikanth Yalavarthi 		return &entry->test;
26*ac930a55SSrikanth Yalavarthi 
27*ac930a55SSrikanth Yalavarthi 	return NULL;
28*ac930a55SSrikanth Yalavarthi }
29*ac930a55SSrikanth Yalavarthi 
30*ac930a55SSrikanth Yalavarthi void
ml_test_dump_names(void (* f)(const char * name))31*ac930a55SSrikanth Yalavarthi ml_test_dump_names(void (*f)(const char *name))
32*ac930a55SSrikanth Yalavarthi {
33*ac930a55SSrikanth Yalavarthi 	struct ml_test_entry *entry;
34*ac930a55SSrikanth Yalavarthi 
35*ac930a55SSrikanth Yalavarthi 	STAILQ_FOREACH(entry, &head, next)
36*ac930a55SSrikanth Yalavarthi 	{
37*ac930a55SSrikanth Yalavarthi 		if (entry->test.name)
38*ac930a55SSrikanth Yalavarthi 			printf("\t %s\n", entry->test.name);
39*ac930a55SSrikanth Yalavarthi 		f(entry->test.name);
40*ac930a55SSrikanth Yalavarthi 	}
41*ac930a55SSrikanth Yalavarthi }
42