]> git.ozlabs.org Git - ccan/blob - ccan/rune/test/run-alt-lexicographic-order.c
ccan/rune: simplify check helper interfaces, allow explicit string lengths.
[ccan] / ccan / rune / test / run-alt-lexicographic-order.c
1 #include <ccan/rune/rune.c>
2 #include <ccan/rune/coding.c>
3 #include <ccan/tal/str/str.h>
4 #include <ccan/tap/tap.h>
5
6 int main(void)
7 {
8         const char *str = "test string";
9         plan_tests(strlen(str) * strlen(str));
10
11         for (size_t i = 0; str[i]; i++) {
12                 char *stra = strdup(str);
13                 stra[i] = '\0';
14                 for (size_t j = 0; str[j]; j++) {
15                         char *strb = strdup(str);
16                         strb[j] = '\0';
17                         int lexo, strc;
18
19                         lexo = lexo_order(str, i, strb);
20                         strc = strcmp(stra, strb);
21                         if (strc > 0)
22                                 ok1(lexo > 0);
23                         else if (strc < 0)
24                                 ok1(lexo < 0);
25                         else
26                                 ok1(lexo == 0);
27                         free(strb);
28                 }
29                 free(stra);
30         }
31         /* This exits depending on whether all tests passed */
32         return exit_status();
33 }