Blame src/general/basename.c
|
nsz |
7308b3 |
#include <stdlib.h>
|
|
nsz |
7308b3 |
#include <string.h>
|
|
nsz |
7308b3 |
#include <libgen.h>
|
|
nsz |
5cde4d |
#include "test.h"
|
|
nsz |
7308b3 |
|
|
nsz |
462b4f |
#define T(path, want) \
|
|
nsz |
462b4f |
{ \
|
|
nsz |
ea9499 |
char tmp[100]; \
|
|
nsz |
462b4f |
char *got = basename(strcpy(tmp, path)); \
|
|
nsz |
462b4f |
if (strcmp(want, got) != 0) \
|
|
nsz |
462b4f |
error("basename(\"%s\") got \"%s\" want \"%s\"\n", path, got, want); \
|
|
nsz |
7308b3 |
}
|
|
nsz |
7308b3 |
|
|
nsz |
462b4f |
int main()
|
|
nsz |
462b4f |
{
|
|
nsz |
ea9499 |
if (strcmp(basename(0), ".") != 0)
|
|
nsz |
7308b3 |
error("basename(0) returned \"%s\"; expected \".\"\n", basename(0));
|
|
nsz |
462b4f |
T("", ".");
|
|
nsz |
462b4f |
T("/usr/lib", "lib");
|
|
nsz |
462b4f |
T("/usr/", "usr");
|
|
nsz |
462b4f |
T("usr/", "usr");
|
|
nsz |
462b4f |
T("/", "/");
|
|
nsz |
462b4f |
T("///", "/");
|
|
nsz |
462b4f |
T("//usr//lib//", "lib");
|
|
nsz |
ea9499 |
T(".", ".");
|
|
nsz |
ea9499 |
T("..", "..");
|
|
nsz |
462b4f |
return test_status;
|
|
nsz |
7308b3 |
}
|