From 27dae84ed92f1ef0300263091972338d12e78348 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20Frings-F=C3=BCrst?= Date: Sat, 18 Oct 2025 19:06:52 +0200 Subject: New upstream version 1.4.1 --- tests/test-fchdir.c | 117 ---------------------------------------------------- 1 file changed, 117 deletions(-) delete mode 100644 tests/test-fchdir.c (limited to 'tests/test-fchdir.c') diff --git a/tests/test-fchdir.c b/tests/test-fchdir.c deleted file mode 100644 index 0eba209c..00000000 --- a/tests/test-fchdir.c +++ /dev/null @@ -1,117 +0,0 @@ -/* Test changing to a directory named by 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 . */ - -/* Written by Eric Blake , 2009. */ - -#include - -#include - -#include "signature.h" -SIGNATURE_CHECK (fchdir, int, (int)); - -#include -#include -#include -#include - -#include "cloexec.h" -#include "macros.h" - -int -main (void) -{ - char *cwd; - int fd; - int i; - - cwd = getcwd (NULL, 0); - ASSERT (cwd); - - fd = open (".", O_RDONLY); - ASSERT (0 <= fd); - - /* Test behaviour for invalid file descriptors. */ - { - errno = 0; - ASSERT (fchdir (-1) == -1); - ASSERT (errno == EBADF); - } - { - close (99); - errno = 0; - ASSERT (fchdir (99) == -1); - ASSERT (errno == EBADF); - } -#ifdef FD_ATCWD - { - errno = 0; - ASSERT (fchdir (FD_ATCWD) == -1); - ASSERT (errno == EBADF); - } -#endif - - /* Check for other failure cases. */ - { - int bad_fd = open ("/dev/null", O_RDONLY); - ASSERT (0 <= bad_fd); - errno = 0; - ASSERT (fchdir (bad_fd) == -1); - ASSERT (errno == ENOTDIR); - ASSERT (close (bad_fd) == 0); - } - - /* Repeat test twice, once in '.' and once in '..'. */ - for (i = 0; i < 2; i++) - { - ASSERT (chdir (&".."[1 - i]) == 0); - ASSERT (fchdir (fd) == 0); - { - size_t len = strlen (cwd) + 1; - char *new_dir = malloc (len); - ASSERT (new_dir); - ASSERT (getcwd (new_dir, len) == new_dir); - ASSERT (strcmp (cwd, new_dir) == 0); - free (new_dir); - } - - /* For second iteration, use a cloned fd, to ensure that dup - remembers whether an fd was associated with a directory. */ - if (!i) - { - int new_fd = dup (fd); - ASSERT (0 <= new_fd); - ASSERT (close (fd) == 0); - ASSERT (dup2 (new_fd, fd) == fd); - ASSERT (close (new_fd) == 0); - ASSERT (dup_cloexec (fd) == new_fd); - ASSERT (dup2 (new_fd, fd) == fd); - ASSERT (close (new_fd) == 0); - ASSERT (fcntl (fd, F_DUPFD_CLOEXEC, new_fd) == new_fd); - ASSERT (close (fd) == 0); - ASSERT (fcntl (new_fd, F_DUPFD, fd) == fd); - ASSERT (close (new_fd) == 0); -#if GNULIB_TEST_DUP3 - ASSERT (dup3 (fd, new_fd, 0) == new_fd); - ASSERT (dup3 (new_fd, fd, 0) == fd); - ASSERT (close (new_fd) == 0); -#endif - } - } - - free (cwd); - return test_exit_status; -} -- cgit v1.2.3