]>
git.ipfire.org Git - thirdparty/systemd.git/blob - src/shared/test-tables.h
1 /* SPDX-License-Identifier: LGPL-2.1-or-later */
10 #include "string-util.h"
12 #define _test_table(name, lookup, reverse, size, sparse) \
13 for (int64_t _i = -EINVAL, _boring = 0; _i < size + 1; _i++) { \
19 _rev = reverse(_val); \
22 _rev = reverse("--no-such--value----"); \
25 if (_boring == 0 || _i == size) \
26 printf("%s: %" PRIi64 " → %s → %" PRIi64 "\n", name, _i, strnull(_val), _rev); \
27 else if (_boring == 1) \
28 printf("%*s ...\n", (int) strlen(name), ""); \
30 if (_i >= 0 && _i < size) { \
32 assert_se(_rev == _i || _rev == -EINVAL); \
34 assert_se(_val && _rev == _i); \
36 assert_se(!_val && _rev == -EINVAL); \
39 #define test_table(lower, upper) \
40 _test_table(STRINGIFY(lower), lower##_to_string, lower##_from_string, _##upper##_MAX, false)
42 #define test_table_sparse(lower, upper) \
43 _test_table(STRINGIFY(lower), lower##_to_string, lower##_from_string, _##upper##_MAX, true)