]>
git.ipfire.org Git - thirdparty/systemd.git/blob - src/shared/test-tables.h
1 /* SPDX-License-Identifier: LGPL-2.1+ */
3 Copyright © 2013 Zbigniew Jędrzejewski-Szmek
10 typedef const char* (*lookup_t
)(int);
11 typedef int (*reverse_t
)(const char*);
13 static inline void _test_table(const char *name
,
20 for (i
= -1; i
< size
+ 1; i
++) {
21 const char* val
= lookup(i
);
28 rev
= reverse("--no-such--value----");
32 if (boring
< 1 || i
== size
)
33 printf("%s: %d → %s → %d\n", name
, i
, val
, rev
);
35 printf("%*s ...\n", (int) strlen(name
), "");
37 assert_se(!(i
>= 0 && i
< size
?
38 sparse
? rev
!= i
&& rev
!= -1 : val
== NULL
|| rev
!= i
:
39 val
!= NULL
|| rev
!= -1));
43 #define test_table(lower, upper) \
44 _test_table(STRINGIFY(lower), lower##_to_string, lower##_from_string, _##upper##_MAX, false)
46 #define test_table_sparse(lower, upper) \
47 _test_table(STRINGIFY(lower), lower##_to_string, lower##_from_string, _##upper##_MAX, true)