try to remove stdint.h
[liba.git] / test / version.h
blob79183ac2f20e2364c05924bd23e478a155d75d93
1 #define MAIN(x) version##x
2 #include "test.h"
3 #include "a/version.h"
5 int main(int argc, char *argv[]) /* NOLINT(misc-definitions-in-headers) */
7 int i;
8 #if defined(__cplusplus)
9 a::version v000 = A_VERSION_0();
10 a::version v100 = A_VERSION_1(1);
11 a::version v010 = A_VERSION_2(0, 1);
12 a::version v001 = A_VERSION_3(0, 0, 1);
13 v010.parse(".1");
15 TEST_BUG(v000 == v000);
16 TEST_BUG(v000 != v001);
18 TEST_BUG(v000 < v001);
19 TEST_BUG(v001 < v010);
20 TEST_BUG(v010 < v100);
22 TEST_BUG(v001 > v000);
23 TEST_BUG(v010 > v001);
24 TEST_BUG(v100 > v010);
26 TEST_BUG(v000 <= v001);
27 TEST_BUG(v001 <= v001);
28 TEST_BUG(v001 <= v010);
29 TEST_BUG(v010 <= v010);
30 TEST_BUG(v010 <= v100);
31 TEST_BUG(v100 <= v100);
33 TEST_BUG(v001 >= v000);
34 TEST_BUG(v001 >= v001);
35 TEST_BUG(v010 >= v001);
36 TEST_BUG(v010 >= v010);
37 TEST_BUG(v100 >= v010);
38 TEST_BUG(v100 >= v100);
40 #else /* !__cplusplus */
41 a_version v000 = A_VERSION_0();
42 a_version v100 = A_VERSION_1(1);
43 a_version v010 = A_VERSION_2(0, 1);
44 a_version v001 = A_VERSION_3(0, 0, 1);
46 TEST_BUG(a_version_eq(&v000, &v000));
47 TEST_BUG(a_version_ne(&v000, &v001));
49 TEST_BUG(a_version_lt(&v000, &v001));
50 TEST_BUG(a_version_lt(&v001, &v010));
51 TEST_BUG(a_version_lt(&v010, &v100));
53 TEST_BUG(a_version_gt(&v001, &v000));
54 TEST_BUG(a_version_gt(&v010, &v001));
55 TEST_BUG(a_version_gt(&v100, &v010));
57 TEST_BUG(a_version_le(&v000, &v001));
58 TEST_BUG(a_version_le(&v001, &v001));
59 TEST_BUG(a_version_le(&v001, &v010));
60 TEST_BUG(a_version_le(&v010, &v010));
61 TEST_BUG(a_version_le(&v010, &v100));
62 TEST_BUG(a_version_le(&v100, &v100));
64 TEST_BUG(a_version_ge(&v001, &v000));
65 TEST_BUG(a_version_ge(&v001, &v001));
66 TEST_BUG(a_version_ge(&v010, &v001));
67 TEST_BUG(a_version_ge(&v010, &v010));
68 TEST_BUG(a_version_ge(&v100, &v010));
69 TEST_BUG(a_version_ge(&v100, &v100));
71 TEST_BUG(a_version_cmp(&v010, &v100) < 0);
72 TEST_BUG(a_version_cmp(&v001, &v010) < 0);
73 TEST_BUG(a_version_cmp(&v000, &v001) < 0);
74 TEST_BUG(a_version_cmp(&v100, &v010) > 0);
75 TEST_BUG(a_version_cmp(&v010, &v001) > 0);
76 TEST_BUG(a_version_cmp(&v001, &v000) > 0);
77 TEST_BUG(a_version_cmp(&v000, &v000) == 0);
78 #endif /* __cplusplus */
79 #if defined(__cplusplus) && (__cplusplus > 201100L)
80 A_BUILD_ASSERT(std::is_pod<a_version>::value);
81 #endif /* __cplusplus */
82 for (i = 0; i < argc; ++i)
84 char str[48];
85 a_version ctx = A_VERSION_0();
86 a_version_parse(&ctx, argv[i]);
87 a_version_tostr(&ctx, str, sizeof(str));
88 debug("parse \"%s\" -> %s\n", argv[i], str);
90 puts(A_FUNC);
91 debug("version %u.%u.%u+%" PRIu32 "\n", a_version_major, a_version_minor, a_version_patch, a_version_tweak);
92 TEST_BUG(A_VERSION_CHECK() == 0);
93 return 0;