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