From a9baddd7d07b9fe15e212985a808a79773ec72e4 Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Sat, 19 Mar 2011 22:26:06 -0400 Subject: initial check-in, taken from old libc svn repo with significant additions --- basename.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 basename.c (limited to 'basename.c') diff --git a/basename.c b/basename.c new file mode 100644 index 0000000..2f0ee2a --- /dev/null +++ b/basename.c @@ -0,0 +1,30 @@ +#include +#include +#include +#include + +#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; +} -- cgit v1.2.1