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