summaryrefslogtreecommitdiff
path: root/tests/test-fdopendir.c
diff options
context:
space:
mode:
authorJörg Frings-Fürst <debian@jff.email>2025-10-18 19:06:52 +0200
committerJörg Frings-Fürst <debian@jff.email>2025-10-18 19:06:52 +0200
commit27dae84ed92f1ef0300263091972338d12e78348 (patch)
tree7c52931f474fafb8a4bd4fd15ca3461c77cdecc2 /tests/test-fdopendir.c
parent4682deeb62247d34de87f8e777f99e2d337fd377 (diff)
New upstream version 1.4.1upstream/1.4.1upstream
Diffstat (limited to 'tests/test-fdopendir.c')
-rw-r--r--tests/test-fdopendir.c87
1 files changed, 0 insertions, 87 deletions
diff --git a/tests/test-fdopendir.c b/tests/test-fdopendir.c
deleted file mode 100644
index 3430d03b..00000000
--- a/tests/test-fdopendir.c
+++ /dev/null
@@ -1,87 +0,0 @@
-/* Test opening a directory stream from a file descriptor.
- Copyright (C) 2009-2024 Free Software Foundation, Inc.
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see <https://www.gnu.org/licenses/>. */
-
-/* Written by Eric Blake <ebb9@byu.net>, 2009. */
-
-#include <config.h>
-
-#include <dirent.h>
-
-#include "signature.h"
-SIGNATURE_CHECK (fdopendir, DIR *, (int));
-
-#include <errno.h>
-#include <fcntl.h>
-#include <unistd.h>
-
-#include "macros.h"
-
-int
-main ()
-{
- DIR *d;
- int fd;
-
- /* A non-directory cannot be turned into a directory stream. */
- fd = open ("test-fdopendir.tmp", O_RDONLY | O_CREAT, 0600);
- ASSERT (0 <= fd);
- errno = 0;
- ASSERT (fdopendir (fd) == NULL);
- ASSERT (errno == ENOTDIR);
- ASSERT (close (fd) == 0);
- ASSERT (unlink ("test-fdopendir.tmp") == 0);
-
- /* A bad fd cannot be turned into a stream. */
- {
- errno = 0;
- ASSERT (fdopendir (-1) == NULL);
- ASSERT (errno == EBADF);
- }
- {
- close (99);
- errno = 0;
- ASSERT (fdopendir (99) == NULL);
- ASSERT (errno == EBADF);
- }
-#ifdef AT_FDCWD
- {
- errno = 0;
- ASSERT (fdopendir (AT_FDCWD) == NULL);
- ASSERT (errno == EBADF);
- }
-#endif
-
- /* This should work. */
- fd = open (".", O_RDONLY);
- ASSERT (0 <= fd);
- d = fdopendir (fd);
- ASSERT (d);
- /* fdopendir should not close fd. */
- ASSERT (dup2 (fd, fd) == fd);
-
- /* Don't test dirfd here. dirfd (d) must return fd on current POSIX
- platforms, but on pre-2008 platforms or on non-POSIX platforms
- dirfd (fd) might return some other descriptor, or -1, and gnulib
- does not work around this porting problem. */
-
- ASSERT (closedir (d) == 0);
- /* Now we can guarantee that fd must be closed. */
- errno = 0;
- ASSERT (dup2 (fd, fd) == -1);
- ASSERT (errno == EBADF);
-
- return test_exit_status;
-}