X-Git-Url: https://git.ozlabs.org/?a=blobdiff_plain;f=ccan%2Ftal%2Fpath%2Ftest%2Frun-readlink.c;fp=ccan%2Ftal%2Fpath%2Ftest%2Frun-readlink.c;h=28dcf87e53d6469ae72e59168564586ff359c414;hb=892f59bdc1830443f87ad3aaeddaab2eeefb5937;hp=0000000000000000000000000000000000000000;hpb=1322fd3377cc817720f7552a80d56dba447bcfea;p=ccan diff --git a/ccan/tal/path/test/run-readlink.c b/ccan/tal/path/test/run-readlink.c new file mode 100644 index 00000000..28dcf87e --- /dev/null +++ b/ccan/tal/path/test/run-readlink.c @@ -0,0 +1,46 @@ +#include +#include +#include + +int main(void) +{ + char *link, *ctx = tal_strdup(NULL, "ctx"); + + plan_tests(12); + + unlink("run-readlink-link"); + + link = path_readlink(ctx, "run-readlink-link"); + ok1(errno == ENOENT); + ok1(!link); + + link = path_readlink(ctx, take(tal_strdup(ctx, "run-readlink-link"))); + ok1(errno == ENOENT); + ok1(!link); + ok1(tal_first(ctx) == NULL); + + if (symlink("/tmp", "run-readlink-link") != 0) + abort(); + + link = path_readlink(ctx, "run-readlink-link"); + ok1(tal_parent(link) == ctx); + ok1(streq(link, "/tmp")); + tal_free(link); + + link = path_readlink(ctx, take(tal_strdup(ctx, "run-readlink-link"))); + ok1(tal_parent(link) == ctx); + ok1(streq(link, "/tmp")); + ok1(tal_first(ctx) == link && tal_next(ctx, link) == NULL); + + unlink("run-readlink-link"); + + if (symlink("some-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-long-name", "run-readlink-link") != 0) + abort(); + + link = path_readlink(ctx, "run-readlink-link"); + ok1(tal_parent(link) == ctx); + ok1(streq(link, "some-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-really-long-name")); + tal_free(ctx); + + return exit_status(); +}