1 #include <ccan/tal/path/path.h>
2 #include <ccan/tal/path/path.c>
3 #include <ccan/tap/tap.h>
7 char *path, *ctx = tal_strdup(NULL, "ctx");
11 path = path_join(ctx, "foo", "bar");
12 ok1(streq(path, "foo/bar"));
13 ok1(tal_parent(path) == ctx);
16 path = path_join(ctx, "foo/", "bar");
17 ok1(streq(path, "foo/bar"));
18 ok1(tal_parent(path) == ctx);
21 path = path_join(ctx, "foo/", "/bar");
22 ok1(streq(path, "/bar"));
23 ok1(tal_parent(path) == ctx);
26 path = path_join(ctx, "foo", "/bar");
27 ok1(streq(path, "/bar"));
28 ok1(tal_parent(path) == ctx);
32 path = path_join(ctx, "foo", take(tal_strdup(ctx, "bar")));
33 ok1(streq(path, "foo/bar"));
34 ok1(tal_parent(path) == ctx);
35 ok1(tal_first(ctx) == path && tal_next(path) == NULL && tal_first(path) == NULL);
38 path = path_join(ctx, "foo", take(tal_strdup(ctx, "/bar")));
39 ok1(streq(path, "/bar"));
40 ok1(tal_parent(path) == ctx);
41 ok1(tal_first(ctx) == path && tal_next(path) == NULL && tal_first(path) == NULL);
44 path = path_join(ctx, take(tal_strdup(ctx, "foo")), "bar");
45 ok1(streq(path, "foo/bar"));
46 ok1(tal_parent(path) == ctx);
47 ok1(tal_first(ctx) == path && tal_next(path) == NULL && tal_first(path) == NULL);
50 path = path_join(ctx, take(tal_strdup(ctx, "foo")), "/bar");
51 ok1(streq(path, "/bar"));
52 ok1(tal_parent(path) == ctx);
53 ok1(tal_first(ctx) == path && tal_next(path) == NULL && tal_first(path) == NULL);
56 path = path_join(ctx, take(tal_strdup(ctx, "foo")),
57 take(tal_strdup(ctx, "bar")));
58 ok1(streq(path, "foo/bar"));
59 ok1(tal_parent(path) == ctx);
60 ok1(tal_first(ctx) == path && tal_next(path) == NULL && tal_first(path) == NULL);
63 path = path_join(ctx, take(tal_strdup(ctx, "foo")),
64 take(tal_strdup(ctx, "/bar")));
65 ok1(streq(path, "/bar"));
66 ok1(tal_parent(path) == ctx);
67 ok1(tal_first(ctx) == path && tal_next(path) == NULL && tal_first(path) == NULL);
70 path = path_join(ctx, take(NULL), "bar");
74 /* This is allowed to succeed, as first arg unneeded. */
75 path = path_join(ctx, take(NULL), "/bar");
76 ok1(!path || streq(path, "/bar"));
80 path = path_join(ctx, "foo", take(NULL));
84 path = path_join(ctx, take(NULL), take(NULL));
88 path = path_join(ctx, "", "bar");
89 ok1(streq(path, "bar"));
90 ok1(tal_parent(path) == ctx);