]>
git.ipfire.org Git - thirdparty/systemd.git/blob - src/shared/test-tables.h
1 /* SPDX-License-Identifier: LGPL-2.1+ */
7 typedef const char* (*lookup_t
)(int);
8 typedef int (*reverse_t
)(const char*);
10 static inline void _test_table(const char *name
,
17 for (i
= -1; i
< size
+ 1; i
++) {
18 const char* val
= lookup(i
);
25 rev
= reverse("--no-such--value----");
29 if (boring
< 1 || i
== size
)
30 printf("%s: %d → %s → %d\n", name
, i
, val
, rev
);
32 printf("%*s ...\n", (int) strlen(name
), "");
34 assert_se(!(i
>= 0 && i
< size
?
35 sparse
? rev
!= i
&& rev
!= -1 : val
== NULL
|| rev
!= i
:
36 val
!= NULL
|| rev
!= -1));
40 #define test_table(lower, upper) \
41 _test_table(STRINGIFY(lower), lower##_to_string, lower##_from_string, _##upper##_MAX, false)
43 #define test_table_sparse(lower, upper) \
44 _test_table(STRINGIFY(lower), lower##_to_string, lower##_from_string, _##upper##_MAX, true)