MCPcopy Create free account
hub / github.com/ElementsProject/lightning / main

Function main

plugins/renepay/test/run-arc.c:19–81  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

17/* AUTOGENERATED MOCKS END */
18
19int main(int argc, char *argv[])
20{
21 bool dual;
22 u32 part;
23 int chandir;
24 u32 chanidx;
25
26 common_setup(argv[0]);
27
28 for (int i = 0; i < 32; i++) {
29 for (int j = 0; j < 32; j++) {
30 for (int k = 0; k < 32; k++) {
31 struct arc a, a2;
32
33 a.idx = (1U << i) | (1U << j) | (1U << k);
34 arc_to_parts(a, &chanidx, &chandir, &part, &dual);
35 a2 = arc_from_parts(chanidx, chandir, part, dual);
36 assert(a.idx == a2.idx);
37 }
38 }
39 }
40
41 /* Test all chanidx */
42 for (int i = 0; i < (1U << ARC_CHANIDX_BITS); i++) {
43 struct arc a = arc_from_parts(i, chandir, part, dual);
44
45 arc_to_parts(a, &chanidx, NULL, NULL, NULL);
46 assert(chanidx == i);
47 }
48
49 /* Test both chandir */
50 for (int i = 0; i < 2; i++) {
51 struct arc a = arc_from_parts(chanidx, i, part, dual);
52
53 arc_to_parts(a, NULL, &chandir, NULL, NULL);
54 assert(chandir == i);
55 }
56
57 /* Test all parts */
58 for (int i = 0; i < CHANNEL_PARTS; i++) {
59 struct arc a = arc_from_parts(chanidx, chandir, i, dual);
60
61 arc_to_parts(a, NULL, NULL, &part, NULL);
62 assert(part == i);
63 }
64
65 /* Test both dual */
66 for (int i = 0; i < 2; i++) {
67 struct arc a = arc_from_parts(chanidx, chandir, part, i);
68
69 arc_to_parts(a, NULL, NULL, NULL, &dual);
70 assert(dual == i);
71
72 assert(arc_is_dual(a) == dual);
73
74 a = arc_dual(a);
75 arc_to_parts(a, NULL, NULL, NULL, &dual);
76 assert(dual == !i);

Callers

nothing calls this directly

Calls 6

common_setupFunction · 0.85
common_shutdownFunction · 0.85
arc_to_partsFunction · 0.50
arc_from_partsFunction · 0.50
arc_is_dualFunction · 0.50
arc_dualFunction · 0.50

Tested by

no test coverage detected