2 test readdir/unlink pattern that OS/2 uses
3 tridge@samba.org July 2005
11 #include <sys/types.h>
19 #define TESTDIR "test.dir"
21 #define FAILED() (fprintf(stderr, "Failed at %s:%d - %s\n", __FUNCTION__, __LINE__, strerror(errno)), exit(1), 1)
23 static void cleanup(void)
25 /* I'm a lazy bastard */
26 system("rm -rf " TESTDIR);
27 mkdir(TESTDIR, 0700) == 0 || FAILED();
30 static void create_files()
33 for (i=0;i<NUM_FILES;i++) {
35 snprintf(fname, sizeof(fname), TESTDIR "/test%u.txt", i);
36 close(open(fname, O_CREAT|O_RDWR, 0600)) == 0 || FAILED();
42 int total_deleted = 0;
51 chdir(TESTDIR) == 0 || FAILED();
53 /* skip past . and .. */
55 strcmp(de->d_name, ".") == 0 || FAILED();
57 strcmp(de->d_name, "..") == 0 || FAILED();
59 while ((de = readdir(d))) {
60 off_t ofs = telldir(d);
61 unlink(de->d_name) == 0 || FAILED();
63 /* move one more position on */
66 /* seek to just after the first readdir() */
72 printf("Deleted %d files of %d\n", total_deleted, NUM_FILES);
74 chdir("..") == 0 || FAILED();
76 rmdir(TESTDIR) == 0 || FAILED();