aboutsummaryrefslogtreecommitdiff
path: root/io/bug-ftw3.c
diff options
context:
space:
mode:
Diffstat (limited to 'io/bug-ftw3.c')
-rw-r--r--io/bug-ftw3.c69
1 files changed, 0 insertions, 69 deletions
diff --git a/io/bug-ftw3.c b/io/bug-ftw3.c
deleted file mode 100644
index 19740f49f3..0000000000
--- a/io/bug-ftw3.c
+++ /dev/null
@@ -1,69 +0,0 @@
-#include <errno.h>
-#include <ftw.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-static int cb_called;
-
-static int
-cb (const char *fname, const struct stat *st, int flag)
-{
- printf ("%s %d\n", fname, flag);
- cb_called = 1;
- return 0;
-}
-
-int
-main (void)
-{
- char tmp[] = "/tmp/ftwXXXXXX";
- char tmp2[] = "/tmp/ftwXXXXXX/ftwXXXXXX";
- char *dname;
- char *dname2;
- int r;
- int e;
-
- if (getuid () == 0)
- {
- puts ("this test needs to be run by ordinary user");
- exit (0);
- }
-
- dname = mkdtemp (tmp);
- if (dname == NULL)
- {
- printf ("mkdtemp: %m\n");
- exit (1);
- }
-
- memcpy (tmp2, tmp, strlen (tmp));
- dname2 = mkdtemp (tmp2);
- if (dname2 == NULL)
- {
- printf ("mkdtemp: %m\n");
- rmdir (dname);
- exit (1);
- }
-
- if (chmod (dname, S_IWUSR|S_IWGRP|S_IWOTH) != 0)
- {
- printf ("chmod: %m\n");
- rmdir (dname);
- exit (1);
- }
-
- r = ftw (dname2, cb, 10);
- e = errno;
- printf ("r = %d", r);
- if (r != 0)
- printf (", errno = %d", errno);
- puts ("");
-
- chmod (dname, S_IRWXU|S_IRWXG|S_IRWXO);
- rmdir (dname2);
- rmdir (dname);
-
- return (r != -1 && e == EACCES) || cb_called;
-}