mirror of
https://github.com/linux-apfs/apfstests.git
synced 2026-05-01 15:01:44 -07:00
b0c63de815
Merge of master-melb:xfs-cmds:22790a by kenmcd. get rid of tee - works or irix but not on linux when we don't get output from touch. Not really needed anyway.
105 lines
2.6 KiB
Bash
Executable File
105 lines
2.6 KiB
Bash
Executable File
#! /bin/sh
|
|
# FS QA Test No. 005
|
|
#
|
|
# Test symlinks & ELOOP
|
|
#
|
|
#-----------------------------------------------------------------------
|
|
# Copyright (c) 2000-2004 Silicon Graphics, Inc. All Rights Reserved.
|
|
# 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 2 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, write to the Free Software
|
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
|
# USA
|
|
#
|
|
# Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
|
|
# Mountain View, CA 94043, USA, or: http://www.sgi.com
|
|
#-----------------------------------------------------------------------
|
|
#
|
|
# creator
|
|
owner=dxm@sgi.com
|
|
|
|
#
|
|
# Note1: On Linux, ELOOP limit used to be 32 but changed to 8, and lately
|
|
# its become 5. Who knows what it might be next.
|
|
# Note2: On IRIX, the limit is around the 30 mark.
|
|
#
|
|
# What we are looking for here is: no panic due to blowing the stack;
|
|
# and that the ELOOP error code is returned at some point (the actual
|
|
# limit point is unimportant, just checking that we do hit it).
|
|
#
|
|
|
|
seq=`basename $0`
|
|
echo "QA output created by $seq"
|
|
|
|
here=`pwd`
|
|
tmp=/tmp/$$
|
|
status=0 # success is the default!
|
|
trap "_cleanup; exit \$status" 0 1 2 3 15
|
|
|
|
_cleanup()
|
|
{
|
|
cd $testdir
|
|
rm -f symlink_{0,1,2,3}{0,1,2,3,4,5,6,7,8,9} symlink_self empty_file
|
|
cd /
|
|
_cleanup_testdir
|
|
}
|
|
|
|
_touch()
|
|
{
|
|
# On IRIX: Too many symbolic links in path name traversal
|
|
# On Linux: Too many levels of symbolic links
|
|
touch $@ 2>&1 | grep -q 'Too many.*symbolic links'
|
|
if [ $? -eq 0 ]; then
|
|
echo "ELOOP returned. Good."
|
|
else
|
|
echo "No ELOOP? Unexpected!"
|
|
fi
|
|
}
|
|
|
|
# get standard environment, filters and checks
|
|
. ./common.rc
|
|
. ./common.filter
|
|
|
|
# real QA test starts here
|
|
_supported_fs xfs udf nfs
|
|
|
|
# IRIX UDF does not support symlinks
|
|
if [ $FSTYP == 'udf' ]; then
|
|
_supported_os Linux
|
|
else
|
|
_supported_os Linux IRIX
|
|
fi
|
|
|
|
_setup_testdir
|
|
|
|
cd $testdir
|
|
|
|
o=empty_file
|
|
touch $o
|
|
for f in symlink_{0,1,2,3}{0,1,2,3,4,5,6,7,8,9}
|
|
do
|
|
ln -s $o $f
|
|
o=$f
|
|
done
|
|
|
|
ln -s symlink_self symlink_self
|
|
|
|
echo "*** touch deep symlinks"
|
|
echo ""
|
|
_touch symlink_{0,1,2,3}{0,1,2,3,4,5,6,7,8,9}
|
|
echo ""
|
|
echo "*** touch recusive symlinks"
|
|
echo ""
|
|
_touch symlink_self
|
|
|
|
exit
|