X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;ds=sidebyside;f=src%2Fmisc%2Fbasename.c;h=a99358726297c5c73eeb3c7ce5f21cdcf01144c0;hb=6a2161f389e6115bb3b948d71c56c8c882eaeda6;hp=016b397be4a1adc410c7436d5ee6e9876171c4db;hpb=7308b342633ce6b61ec9b33e06e630622058ebcf;p=libc-test diff --git a/src/misc/basename.c b/src/misc/basename.c index 016b397..a993587 100644 --- a/src/misc/basename.c +++ b/src/misc/basename.c @@ -1,25 +1,28 @@ -#define _GNU_SOURCE -#include "test.h" #include #include #include +#include "test.h" -static void t(char *p, char *b) { - char *tmp = strdup(p); - char *s = basename(tmp); - - if (strcmp(b,s) != 0) - error("basename(\"%s\") returned \"%s\"; expected \"%s\"\n", p, s, b); - free(tmp); +#define T(path, want) \ +{ \ + char tmp[100]; \ + char *got = basename(strcpy(tmp, path)); \ + if (strcmp(want, got) != 0) \ + error("basename(\"%s\") got \"%s\" want \"%s\"\n", path, got, want); \ } -void test_basename() { - if (strcmp(".", basename(0)) != 0) +int main() +{ + if (strcmp(basename(0), ".") != 0) error("basename(0) returned \"%s\"; expected \".\"\n", basename(0)); - t("", "."); - t("/usr/lib", "lib"); - t("/usr/", "usr"); - t("/", "/"); - t("///", "/"); - t("//usr//lib//", "lib"); + T("", "."); + T("/usr/lib", "lib"); + T("/usr/", "usr"); + T("usr/", "usr"); + T("/", "/"); + T("///", "/"); + T("//usr//lib//", "lib"); + T(".", "."); + T("..", ".."); + return test_status; }