endian: add constant versions.
[ccan] / ccan / version / test / run.c
1 #include <ccan/version/version.h>
2 #include <ccan/tap/tap.h>
3
4 int main(void)
5 {
6         struct version a, b;
7
8         plan_tests(26);
9
10         /* cmp with normal versions */
11         a = version(1, 0);
12         b = version(2, 0);
13         ok1(version_cmp(a, b) < 0);
14
15         a = version(1, 1);
16         ok1(version_cmp(a, b) < 0);
17
18         a = version(2, 0);
19         ok1(version_cmp(a, b) == 0);
20
21         a = version(2, 1);
22         ok1(version_cmp(a, b) > 0);
23
24         b = version(2, 1);
25         ok1(version_cmp(a, b) == 0);
26
27         a = version(3, 0);
28         ok1(version_cmp(a, b) > 0);
29
30         a = version(3, 1);
31         ok1(version_cmp(a, b) > 0);
32
33         /* inline cmp */
34         ok1(version_cmp(a, version(1, 0)) > 0);
35         ok1(version_cmp(a, version(1, 1)) > 0);
36         ok1(version_cmp(a, version(3, 0)) > 0);
37         ok1(version_cmp(a, version(3, 1)) == 0);
38         ok1(version_cmp(a, version(3, 2)) < 0);
39         ok1(version_cmp(a, version(4, 0)) < 0);
40         ok1(version_cmp(a, version(4, 1)) < 0);
41
42         /* limits */
43         a = version(0xFFFF, 0xFFFF);
44         b = version(0xFFFE, 0xFFFF);
45         ok1(version_cmp(a, b) > 0);
46         ok1(version_cmp(b, a) < 0);
47
48         b = version(0xFFFF, 0xFFFE);
49         ok1(version_cmp(a, b) > 0);
50         ok1(version_cmp(b, a) < 0);
51
52         b = version(0xFFFF, 0xFFFF);
53         ok1(version_cmp(a, b) == 0);
54         ok1(version_cmp(b, a) == 0);
55
56         b = version(0, 1);
57         ok1(version_cmp(a, b) > 0);
58         ok1(version_cmp(b, a) < 0);
59
60         b = version(1, 0);
61         ok1(version_cmp(a, b) > 0);
62         ok1(version_cmp(b, a) < 0);
63
64         b = version(0, 0);
65         ok1(version_cmp(a, b) > 0);
66         ok1(version_cmp(b, a) < 0);
67
68         return exit_status();
69 }