1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
#include <ccan/tal/path/path.h>
#include <ccan/tal/path/path.c>
#include <ccan/tap/tap.h>
int main(void)
{
char *ctx = tal_strdup(NULL, "ctx"), **split;
plan_tests(46);
split = path_split(ctx, "foo" PATH_SEP_STR "bar");
ok1(tal_parent(split) == ctx);
ok1(streq(split[0], "foo"));
ok1(streq(split[1], "bar"));
ok1(split[2] == NULL);
tal_free(split);
split = path_split(ctx, "foo" PATH_SEP_STR "bar" PATH_SEP_STR);
ok1(tal_parent(split) == ctx);
ok1(streq(split[0], "foo"));
ok1(streq(split[1], "bar"));
ok1(split[2] == NULL);
tal_free(split);
split = path_split(ctx, PATH_SEP_STR "foo"
PATH_SEP_STR "bar" PATH_SEP_STR);
ok1(tal_parent(split) == ctx);
ok1(streq(split[0], "foo"));
ok1(streq(split[1], "bar"));
ok1(split[2] == NULL);
tal_free(split);
split = path_split(ctx, PATH_SEP_STR PATH_SEP_STR "foo"
PATH_SEP_STR PATH_SEP_STR "bar"
PATH_SEP_STR PATH_SEP_STR);
ok1(tal_parent(split) == ctx);
ok1(streq(split[0], "foo"));
ok1(streq(split[1], "bar"));
ok1(split[2] == NULL);
tal_free(split);
split = path_split(ctx, "foo");
ok1(tal_parent(split) == ctx);
ok1(streq(split[0], "foo"));
ok1(split[1] == NULL);
tal_free(split);
split = path_split(ctx, PATH_SEP_STR "foo");
ok1(tal_parent(split) == ctx);
ok1(streq(split[0], "foo"));
ok1(split[1] == NULL);
tal_free(split);
split = path_split(ctx, PATH_SEP_STR PATH_SEP_STR "foo");
ok1(tal_parent(split) == ctx);
ok1(streq(split[0], "foo"));
ok1(split[1] == NULL);
tal_free(split);
split = path_split(ctx, "foo" PATH_SEP_STR);
ok1(tal_parent(split) == ctx);
ok1(streq(split[0], "foo"));
ok1(split[1] == NULL);
tal_free(split);
split = path_split(ctx, "foo" PATH_SEP_STR PATH_SEP_STR);
ok1(tal_parent(split) == ctx);
ok1(streq(split[0], "foo"));
ok1(split[1] == NULL);
tal_free(split);
split = path_split(ctx, PATH_SEP_STR "foo" PATH_SEP_STR);
ok1(tal_parent(split) == ctx);
ok1(streq(split[0], "foo"));
ok1(split[1] == NULL);
tal_free(split);
split = path_split(ctx, "");
ok1(tal_parent(split) == ctx);
ok1(split[0] == NULL);
tal_free(split);
split = path_split(ctx, PATH_SEP_STR);
ok1(tal_parent(split) == ctx);
ok1(streq(split[0], PATH_SEP_STR));
ok1(split[1] == NULL);
tal_free(split);
/* Test take */
split = path_split(ctx, take(tal_strdup(ctx, PATH_SEP_STR)));
ok1(tal_parent(split) == ctx);
ok1(streq(split[0], PATH_SEP_STR));
ok1(split[1] == NULL);
tal_free(split);
ok1(tal_first(ctx) == NULL);
split = path_split(ctx, take(NULL));
ok1(!split);
ok1(tal_first(ctx) == NULL);
ok1(tal_first(NULL) == ctx && tal_next(NULL, ctx) == NULL);
tal_free(ctx);
return exit_status();
}
|