1#!/bin/sh 2# Test "rm" with a deep hierarchy. 3 4# Copyright (C) 1997-2023 Free Software Foundation, Inc. 5 6# This program is free software: you can redistribute it and/or modify 7# it under the terms of the GNU General Public License as published by 8# the Free Software Foundation, either version 3 of the License, or 9# (at your option) any later version. 10 11# This program is distributed in the hope that it will be useful, 12# but WITHOUT ANY WARRANTY; without even the implied warranty of 13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14# GNU General Public License for more details. 15 16# You should have received a copy of the GNU General Public License 17# along with this program. If not, see <https://www.gnu.org/licenses/>. 18 19# This is a bit of a torture test for mkdir -p, too. 20# GNU rm performs *much* better on systems that have a d_type member 21# in the directory structure because then it does only one stat per 22# command line argument. 23 24# If this test takes too long on your system, blame the OS. 25 26. "${srcdir=.}/tests/init.sh"; path_prepend_ ./src 27print_ver_ rm 28 29umask 022 30 31 32k20=/k/k/k/k/k/k/k/k/k/k/k/k/k/k/k/k/k/k/k/k 33k200=$k20$k20$k20$k20$k20$k20$k20$k20$k20$k20 34 35# Be careful not to exceed max file name length (usu 512?). 36# Doing so wouldn't affect GNU mkdir or GNU rm, but any tool that 37# operates on the full pathname (like 'test') would choke. 38k_deep=$k200$k200 39 40t=t 41# Create a directory in $t with lots of 'k' components. 42deep=$t$k_deep 43mkdir -p $deep || fail=1 44 45# Make sure the deep dir was created. 46test -d $deep || fail=1 47 48rm -r $t || fail=1 49 50# Make sure all of $t was deleted. 51test -d $t && fail=1 52 53Exit $fail 54