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

Function main

ccan/ccan/str/test/run.c:24–106  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

22}
23
24int main(void)
25{
26 unsigned int i, j, n;
27 char *strings[NUM_SUBSTRINGS * NUM_SUBSTRINGS];
28
29 n = 0;
30 for (i = 0; i < NUM_SUBSTRINGS; i++) {
31 for (j = 0; j < NUM_SUBSTRINGS; j++) {
32 strings[n] = malloc(strlen(substrings[i])
33 + strlen(substrings[j]) + 1);
34 sprintf(strings[n++], "%s%s",
35 substrings[i], substrings[j]);
36 }
37 }
38
39 plan_tests(n * n * 5 + 16);
40 for (i = 0; i < n; i++) {
41 for (j = 0; j < n; j++) {
42 unsigned int k, identical = 0;
43 char *reva, *revb;
44
45 /* Find first difference. */
46 for (k = 0; strings[i][k]==strings[j][k]; k++) {
47 if (k == strlen(strings[i])) {
48 identical = 1;
49 break;
50 }
51 }
52
53 if (identical)
54 ok1(streq(strings[i], strings[j]));
55 else
56 ok1(!streq(strings[i], strings[j]));
57
58 /* Postfix test should be equivalent to prefix
59 * test on reversed string. */
60 reva = strdup_rev(strings[i]);
61 revb = strdup_rev(strings[j]);
62
63 if (!strings[i][k]) {
64 ok1(strstarts(strings[j], strings[i]));
65 ok1(strends(revb, reva));
66 } else {
67 ok1(!strstarts(strings[j], strings[i]));
68 ok1(!strends(revb, reva));
69 }
70 if (!strings[j][k]) {
71 ok1(strstarts(strings[i], strings[j]));
72 ok1(strends(reva, revb));
73 } else {
74 ok1(!strstarts(strings[i], strings[j]));
75 ok1(!strends(reva, revb));
76 }
77 free(reva);
78 free(revb);
79 }
80 }
81

Callers

nothing calls this directly

Calls 3

strdup_revFunction · 0.85
strendsFunction · 0.85
strcountFunction · 0.85

Tested by

no test coverage detected