diff options
| author | Jörg Frings-Fürst <debian@jff.email> | 2025-10-18 19:07:35 +0200 |
|---|---|---|
| committer | Jörg Frings-Fürst <debian@jff.email> | 2025-10-18 19:07:35 +0200 |
| commit | fa23d938c040bc8af305a31fa874df55b2a02576 (patch) | |
| tree | 9704e2f7bd8962ea8911cd6f4e2d37227d7eff2e /tests/test-fdopendir.c | |
| parent | df9dbf9b0915e432a4a2c4182f60af36374eaaab (diff) | |
| parent | 693ae7b71dfdd1a8146266b5794a71c0dbe5dff0 (diff) | |
Merge branch 'feature/upstream' into develop
Diffstat (limited to 'tests/test-fdopendir.c')
| -rw-r--r-- | tests/test-fdopendir.c | 87 |
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; -} |
