1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
#include <stdio.h>
#include <string.h>
#include <libgen.h>
#include <stdlib.h>
#define TEST(p, b) ( \
tmp = strdup((p)), s = basename(tmp), \
!strcmp((b),s) || \
(printf(__FILE__ ":%d: basename(\"%s\") returned \"%s\"; expected \"%s\"\n", \
__LINE__, (p), s, (b)), err++, 0), free(tmp), 0 )
int test_basename(void)
{
char *tmp, *s;
int err=0;
if (strcmp(basename(NULL), ".")) {
printf(__FILE__ ":%d: basename(NULL) returned \"%s\"; "
"expected \".\"\n", __LINE__, basename(NULL));
err++;
}
TEST("", ".");
TEST("/usr/lib", "lib");
TEST("/usr/", "usr");
TEST("/", "/");
TEST("///", "/");
TEST("//usr//lib//", "lib");
return err;
}
|