5 #include <ccan/cppmagic/cppmagic.h>
6 #include <ccan/tap/tap.h>
8 static inline void check1(const char *orig, const char *expand,
11 ok(strcmp(expand, match) == 0,
12 "%s => %s : %s", orig, expand, match);
15 #define CHECK1(orig, match) \
16 check1(#orig, CPPMAGIC_STRINGIFY(orig), match)
22 CHECK1(CPPMAGIC_NOTHING(), "");
23 CHECK1(CPPMAGIC_GLUE2(a, b), "ab");
25 CHECK1(CPPMAGIC_1ST(a), "a");
26 CHECK1(CPPMAGIC_1ST(a, b), "a");
27 CHECK1(CPPMAGIC_1ST(a, b, c), "a");
29 CHECK1(CPPMAGIC_2ND(a, b), "b");
30 CHECK1(CPPMAGIC_2ND(a, b, c), "b");
32 CHECK1(CPPMAGIC_ISZERO(0), "1");
33 CHECK1(CPPMAGIC_ISZERO(1), "0");
34 CHECK1(CPPMAGIC_ISZERO(123), "0");
35 CHECK1(CPPMAGIC_ISZERO(abc), "0");
37 CHECK1(CPPMAGIC_NONZERO(0), "0");
38 CHECK1(CPPMAGIC_NONZERO(1), "1");
39 CHECK1(CPPMAGIC_NONZERO(123), "1");
40 CHECK1(CPPMAGIC_NONZERO(abc), "1");
42 CHECK1(CPPMAGIC_NONEMPTY(), "0");
43 CHECK1(CPPMAGIC_NONEMPTY(0), "1");
44 CHECK1(CPPMAGIC_NONEMPTY(a, b, c), "1");
46 CHECK1(CPPMAGIC_ISEMPTY(), "1");
47 CHECK1(CPPMAGIC_ISEMPTY(0), "0");
48 CHECK1(CPPMAGIC_ISEMPTY(a, b, c), "0");
50 /* This exits depending on whether all tests passed */