X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fmisc%2Fdirname.c;h=ae8b67b73162e7d38e1cbb4b0a00574b8f0bbb91;hb=462b4f35652098e26c677f89df6990428a4aad6a;hp=b4a1c48850b3f84b321386f5fd171ddadb27275b;hpb=80371a77c4d6978e786ab2322161c4f8e299e891;p=libc-test diff --git a/src/misc/dirname.c b/src/misc/dirname.c index b4a1c48..ae8b67b 100644 --- a/src/misc/dirname.c +++ b/src/misc/dirname.c @@ -3,24 +3,26 @@ #include #include "test.h" -static void t(char *p, char *b) { - char *tmp = strdup(p); - char *s = dirname(tmp); - - if (strcmp(b,s) != 0) - error("dirname(\"%s\") returned \"%s\"; expected \"%s\"\n", p, s, b); - free(tmp); +#define T(path, want) \ +{ \ + char tmp[1000]; \ + char *got = dirname(strcpy(tmp, path)); \ + if (strcmp(want, got) != 0) \ + error("dirname(\"%s\") got \"%s\" want \"%s\"\n", path, got, want); \ } -void test_dirname() { +int main() +{ if (strcmp(dirname(0), ".") != 0) error("dirname(0) returned \"%s\"; expected \".\"\n", dirname(0)); - t("", "."); - t("/usr/lib", "/usr"); - t("/usr/", "/"); - t("usr", "."); - t("/", "/"); - t("///", "/"); - t(".", "."); - t("..", "."); + T("", "."); + T("/usr/lib", "/usr"); + T("/usr/", "/"); + T("usr", "."); + T("usr/", "."); + T("/", "/"); + T("///", "/"); + T(".", "."); + T("..", "."); + return test_status; }