From 545beca17885560298580b51619979529a309360 Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Thu, 20 Oct 2016 21:18:05 +0200 Subject: test: add nftw test case --- test/misc/tst-nftw.c | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 test/misc/tst-nftw.c (limited to 'test') diff --git a/test/misc/tst-nftw.c b/test/misc/tst-nftw.c new file mode 100644 index 000000000..76d11eb41 --- /dev/null +++ b/test/misc/tst-nftw.c @@ -0,0 +1,57 @@ +#define _XOPEN_SOURCE 500 +#define _GNU_SOURCE +#include +#include +#include +#include +#include +#include + +int result = 0; + +static int process_one_entry(const char *fpath, const struct stat *sb, + int typeflag, struct FTW *ftwbuf) +{ + + struct stat buf; + const char *rel_path = fpath+ftwbuf->base; + + printf("Processing %s in working dir %s\n", + rel_path, get_current_dir_name()); + if (stat(rel_path, &buf) < 0) { + perror("Oops...relative path does not exist in current directory"); + result = 1; + } +} + +static int +do_test(void) +{ + char *path = "/tmp/stest_dir"; + char *subpath = "/tmp/stest_dir/d1"; + char *filepath = "/tmp/stest_dir/f1"; + char *filesubpath = "/tmp/stest_dir/d1/f2"; + + if ((mkdir(path, 0700)) < 0) + perror("Creating path"); + if ((mkdir(subpath, 0700)) < 0) + perror("Creating subpath"); + if ((open(filepath, O_CREAT)) < 0) + perror("Opening filepath"); + if ((open(filesubpath, O_CREAT)) < 0) + perror("Opening filesubpath"); + + if (nftw(path, process_one_entry, 100, (FTW_CHDIR|FTW_DEPTH|FTW_PHYS)) < 0) + perror("ntfw"); + + unlink(filesubpath); + unlink(filepath); + rmdir(subpath); + rmdir(path); + + return result; +} + +#define TIMEOUT 5 +#define TEST_FUNCTION do_test () +#include "../test-skeleton.c" -- cgit v1.2.3