diff options
author | Martin Pärtel <martin.partel@gmail.com> | 2012-09-14 16:59:49 +0300 |
---|---|---|
committer | Martin Pärtel <martin.partel@gmail.com> | 2012-09-14 16:59:49 +0300 |
commit | f6161698827488cc21f3f3726d5af0cb2a89ce4b (patch) | |
tree | b7ebdfdfe8f9a70905a0878415e768f66200d953 /tests/internals/test_internals.c | |
parent | 66f00111c4e886e244152e460ada62164c975d4d (diff) | |
download | bindfs-f6161698827488cc21f3f3726d5af0cb2a89ce4b.tar.gz |
Implemented my_dirname and added unit tests for it.
Diffstat (limited to 'tests/internals/test_internals.c')
-rw-r--r-- | tests/internals/test_internals.c | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/tests/internals/test_internals.c b/tests/internals/test_internals.c new file mode 100644 index 0000000..b388ddb --- /dev/null +++ b/tests/internals/test_internals.c @@ -0,0 +1,65 @@ + +#include "misc.h" +#include <string.h> +#include <stdio.h> +#include <stdlib.h> + +int failures = 0; + +#define TEST_ASSERT(expr) do { if (!(expr)) { printf("Assertion failed: `%s'\n", #expr); failures++; } } while (0); + +void test_my_dirname(char *arg, const char *expected) +{ + char *orig = strdup(arg); + + const char *ret = my_dirname(arg); + if (strcmp(ret, expected) != 0) { + printf("Expected my_dirname(`%s') to return `%s' but got `%s'\n", orig, expected, ret); + failures++; + } + + free(orig); +} + +void my_dirname_suite() +{ + char buf[256]; + + strcpy(buf, "/foo/bar/baz"); + test_my_dirname(buf, "/foo/bar"); + + strcpy(buf, "/foo/bar"); + test_my_dirname(buf, "/foo"); + + strcpy(buf, "/foo"); + test_my_dirname(buf, "/"); + + strcpy(buf, "/foo/"); + test_my_dirname(buf, "/foo"); + + strcpy(buf, "/"); + test_my_dirname(buf, "/"); + + strcpy(buf, "foo"); + test_my_dirname(buf, "."); + + strcpy(buf, "foo/bar"); + test_my_dirname(buf, "foo"); + + strcpy(buf, "./foo/bar"); + test_my_dirname(buf, "./foo"); + + strcpy(buf, "./foo"); + test_my_dirname(buf, "."); + + strcpy(buf, "."); + test_my_dirname(buf, ".."); +} + +int main() +{ + my_dirname_suite(); + + return (failures > 0) ? 1 : 0; +} + |