X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Ftest%2Ftest-path-util.c;h=b0aeb11a63f239e117aef0f16a6ecc8c8cf71f63;hp=127e17803f8003d33cd948c3a49eee87e34962ce;hb=c9d954b27ee125c3c90a6d2951c62eec4abb160b;hpb=a696dbef3474f3586b0f189245804b355a700795 diff --git a/src/test/test-path-util.c b/src/test/test-path-util.c index 127e17803..b0aeb11a6 100644 --- a/src/test/test-path-util.c +++ b/src/test/test-path-util.c @@ -56,7 +56,7 @@ static void test_path(void) { assert_se(streq(path_get_file_name("file.../"), "")); #define test_parent(x, y) { \ - char *z; \ + char _cleanup_free_ *z = NULL; \ int r = path_get_parent(x, &z); \ printf("expected: %s\n", y ? y : "error"); \ printf("actual: %s\n", r<0 ? "error" : z); \ @@ -83,7 +83,31 @@ static void test_path(void) { } } +static void test_find_binary(void) { + char *p; + + assert(find_binary("/bin/sh", &p) == 0); + puts(p); + assert(streq(p, "/bin/sh")); + free(p); + + assert(find_binary("./test-path-util", &p) == 0); + puts(p); + assert(endswith(p, "/test-path-util")); + assert(path_is_absolute(p)); + free(p); + + assert(find_binary("sh", &p) == 0); + puts(p); + assert(endswith(p, "/sh")); + assert(path_is_absolute(p)); + free(p); + + assert(find_binary("xxxx-xxxx", &p) == -ENOENT); +} + int main(void) { test_path(); + test_find_binary(); return 0; }