Bruno Haible wrote: > Hi, > > building coreutils 8.12 on a Linux 2.6.25.20, glibc 2.8 machine, "make check" > shows these lines: > > ./misc/pwd-unreadable-parent: skipping test: can't use buggy system getcwd > SKIP: misc/pwd-unreadable-parent > > REPLACE_GETCWD is indeed 1, because the test from m4/getcwd-path-max.m4 > failed: > > configure:26992: checking whether getcwd handles long file names properly > configure:27154: gcc -m32 -march=i586 -std=gnu99 -o conftest -g -O2 > -Wall -I/arch/x86-linux/gnu/include -m32 conftest.c >&5 > configure:27154: $? = 0 > configure:27154: ./conftest > configure:27154: $? = 12 > configure: program exited with status 12 > > But is that known and expected that glibc 2.8 getcwd() does not handle > long file names??? And yes, I do have /proc mounted and readable by everyone.
Yes, the /proc based trick is limited by the length of symlink values. Hence, glibc's getcwd does indeed fail, but only in the pathological case in which the name is too long *and* a parent directory is unreadable. However, we cannot use the above reasoning as justification for skipping this test, since the directory name used here is most probably not very long, so I am inclined to remove this test, since it is testing for behavior that user-space tools cannot work around. Either the system-provided getcwd works in spite of an unreadable parent (in which pwd does, too), or it doesn't, and neither does pwd. >From 9a377856d02e3f7c2f8ab17d6ceb98edc4468eb9 Mon Sep 17 00:00:00 2001 From: Jim Meyering <[email protected]> Date: Thu, 28 Apr 2011 14:18:50 +0200 Subject: [PATCH] tests: remove useless test: misc/pwd-unreadable-parent * tests/Makefile.am (TESTS): Remove misc/pwd-unreadable-parent. This test was misleading and useless (was always skipped). Inspired by a report from Bruno Haible: http://debbugs.gnu.org/8570 * tests/misc/pwd-unreadable-parent: Remove file. --- tests/Makefile.am | 1 - tests/misc/pwd-unreadable-parent | 41 -------------------------------------- 2 files changed, 0 insertions(+), 42 deletions(-) delete mode 100755 tests/misc/pwd-unreadable-parent diff --git a/tests/Makefile.am b/tests/Makefile.am index 2f4a561..1a80f84 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -160,7 +160,6 @@ TESTS = \ pr/pr-tests \ misc/df-P \ misc/pwd-option \ - misc/pwd-unreadable-parent \ misc/chcon-fail \ misc/cut \ misc/wc \ diff --git a/tests/misc/pwd-unreadable-parent b/tests/misc/pwd-unreadable-parent deleted file mode 100755 index 725d41c..0000000 --- a/tests/misc/pwd-unreadable-parent +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/sh -# Ensure that pwd and "readlink -e ." work even when a parent directory -# is unreadable. Perform this test only on systems with a usable getcwd -# function that has this capability. - -# Copyright (C) 2007-2011 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 <http://www.gnu.org/licenses/>. - -. "${srcdir=.}/init.sh"; path_prepend_ ../src -print_ver_ pwd readlink - -test $host_os != linux-gnu && - skip_test_ 'vendor getcwd may be inadequate' - -# Linux ia64 has the gl_FUNC_GETCWD_ABORT_BUG, so we can't use -# the system getcwd. -test $REPLACE_GETCWD = 1 && - skip_test_ "can't use buggy system getcwd" - -mkdir -p a/b || framework_failure -cd a/b || framework_failure -chmod a=x .. || framework_failure - -env -- pwd > exp || fail=1 -readlink -ev . > out || fail=1 - -compare out exp || fail=1 - -Exit $fail -- 1.7.5.421.g9d34e
