1#!/bin/sh 2# rm should not prompt before removing a dangling symlink. 3# Likewise for a non-dangling symlink. 4# But for fileutils-4.1.9, it would do the former and 5# for fileutils-4.1.10 the latter. 6 7# Copyright (C) 2002-2023 Free Software Foundation, Inc. 8 9# This program is free software: you can redistribute it and/or modify 10# it under the terms of the GNU General Public License as published by 11# the Free Software Foundation, either version 3 of the License, or 12# (at your option) any later version. 13 14# This program is distributed in the hope that it will be useful, 15# but WITHOUT ANY WARRANTY; without even the implied warranty of 16# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17# GNU General Public License for more details. 18 19# You should have received a copy of the GNU General Public License 20# along with this program. If not, see <https://www.gnu.org/licenses/>. 21 22. "${srcdir=.}/tests/init.sh"; path_prepend_ ./src 23print_ver_ rm 24 25ln -s no-file dangle 26ln -s / symlink 27 28# Terminate any background processes 29cleanup_() { kill $pid 2>/dev/null && wait $pid; } 30 31rm ---presume-input-tty dangle symlink & pid=$! 32# The buggy rm (fileutils-4.1.9) would hang here, waiting for input. 33 34# Wait up to 6.3s for rm to remove the files 35check_files_removed() { 36 local present=0 37 sleep $1 38 ls -l dangle > /dev/null 2>&1 && present=1 39 ls -l symlink > /dev/null 2>&1 && present=1 40 test $present = 0 41} 42retry_delay_ check_files_removed .1 6 || fail=1 43 44cleanup_ 45 46Exit $fail 47