diff options
author | Alon Zakai <alonzakai@gmail.com> | 2014-04-02 19:01:06 -0700 |
---|---|---|
committer | Alon Zakai <alonzakai@gmail.com> | 2014-04-02 19:01:06 -0700 |
commit | fb83de1869826d475c8318524c3f768bcd43b7a2 (patch) | |
tree | 860aa91f50ef5b57029958808a055e6af391804b /tests | |
parent | f433da735e02b516be700c69294c824a544fb17a (diff) |
add missing test file for #2263 / #2258
Diffstat (limited to 'tests')
-rw-r--r-- | tests/dirent/test_readdir_empty.c | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/tests/dirent/test_readdir_empty.c b/tests/dirent/test_readdir_empty.c new file mode 100644 index 00000000..00102733 --- /dev/null +++ b/tests/dirent/test_readdir_empty.c @@ -0,0 +1,47 @@ +#include <stdio.h> +#include <dirent.h> +#include <sys/stat.h> +#include <string.h> +#include <errno.h> + + +int main(int argc, char** argv) { + if (mkdir("/tmp", S_IRWXG) != 0 && errno != EEXIST) { + printf("Unable to create dir '/tmp'\n"); + return -1; + } + + if (mkdir("/tmp/1", S_IRWXG) != 0 && errno != EEXIST) { + printf("Unable to create dir '/tmp/1'\n"); + return -1; + } + + if (mkdir("/tmp/1/", S_IRWXG) != 0 && errno != EEXIST) { + printf("Unable to create dir '/tmp/1/'\n"); + return -1; + } + + DIR *dir = opendir("/tmp"); + + if (!dir) { + printf("Unable to open dir '/tmp'\n"); + return -2; + } + + struct dirent *dirent; + + while ((dirent = readdir(dir)) != 0) { + printf("Found '%s'\n", dirent->d_name); + + if (strlen(dirent->d_name) == 0) { + printf("Found empty path!\n"); + return -3; + } + } + + closedir(dir); + + printf("success\n"); + return 0; +} + |