diff options
| author | Ramsay Jones <ramsay@ramsay1.demon.co.uk> | 2009-01-12 19:42:13 +0000 |
|---|---|---|
| committer | Shawn O. Pearce <spearce@spearce.org> | 2009-01-28 12:25:24 -0800 |
| commit | ced645ea9ca4170bd75c17cb9c2c8f19f935491d (patch) | |
| tree | f2e2e7e17751b629cc3c13b0a7d0cab059cd1df4 /tests/t0003-strutil.c | |
| parent | 66a4bfac99c07b79d75c015aed8f5972f0a4a336 (diff) | |
| download | libgit2-ced645ea9ca4170bd75c17cb9c2c8f19f935491d.tar.gz | |
Add git__dirname and git__basename utility routines
These routines are intended to extract the directory and
base name from a path string. Note that these routines
do not interact with any filesystem and work only on the
text of the path.
Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Diffstat (limited to 'tests/t0003-strutil.c')
| -rw-r--r-- | tests/t0003-strutil.c | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/tests/t0003-strutil.c b/tests/t0003-strutil.c index 9e4700a60..8399c6e8a 100644 --- a/tests/t0003-strutil.c +++ b/tests/t0003-strutil.c @@ -65,3 +65,61 @@ END_TEST BEGIN_TEST(suffixcmp_zaz_ac) must_be_true(git__suffixcmp("zaz", "ac") > 0); END_TEST + +BEGIN_TEST(dirname) + char dir[64]; + + must_be_true(!(git__dirname(dir, sizeof(dir), NULL) < 0)); + must_be_true(!strcmp(dir, ".")); + + must_be_true(!(git__dirname(dir, sizeof(dir), "") < 0)); + must_be_true(!strcmp(dir, ".")); + + must_be_true(!(git__dirname(dir, sizeof(dir), "a") < 0)); + must_be_true(!strcmp(dir, ".")); + + must_be_true(!(git__dirname(dir, sizeof(dir), "/") < 0)); + must_be_true(!strcmp(dir, "/")); + + must_be_true(!(git__dirname(dir, sizeof(dir), "/usr") < 0)); + must_be_true(!strcmp(dir, "/")); + + /* TODO: should this be "/" instead (ie strip trailing / first) */ + must_be_true(!(git__dirname(dir, sizeof(dir), "/usr/") < 0)); + must_be_true(!strcmp(dir, "/usr")); + + must_be_true(!(git__dirname(dir, sizeof(dir), "/usr/lib") < 0)); + must_be_true(!strcmp(dir, "/usr")); + + must_be_true(!(git__dirname(dir, sizeof(dir), "usr/lib") < 0)); + must_be_true(!strcmp(dir, "usr")); +END_TEST + +BEGIN_TEST(basename) + char base[64]; + + must_be_true(!(git__basename(base, sizeof(base), NULL) < 0)); + must_be_true(!strcmp(base, ".")); + + must_be_true(!(git__basename(base, sizeof(base), "") < 0)); + must_be_true(!strcmp(base, ".")); + + must_be_true(!(git__basename(base, sizeof(base), "a") < 0)); + must_be_true(!strcmp(base, "a")); + + must_be_true(!(git__basename(base, sizeof(base), "/") < 0)); + must_be_true(!strcmp(base, "/")); + + must_be_true(!(git__basename(base, sizeof(base), "/usr") < 0)); + must_be_true(!strcmp(base, "usr")); + + /* TODO: should this be "usr" instead (ie strip trailing / first) */ + must_be_true(!(git__basename(base, sizeof(base), "/usr/") < 0)); + must_be_true(!strcmp(base, "")); + + must_be_true(!(git__basename(base, sizeof(base), "/usr/lib") < 0)); + must_be_true(!strcmp(base, "lib")); + + must_be_true(!(git__basename(base, sizeof(base), "usr/lib") < 0)); + must_be_true(!strcmp(base, "lib")); +END_TEST |
