mirror of
https://github.com/linux-apfs/apfstests.git
synced 2026-05-01 15:01:44 -07:00
aaf690e866
We have hit the error while running 089. FSTYP -- ext3 PLATFORM -- Linux/x86_64 localhost 2.6.32-109.el6.x86_64 ... ... completed 50 iterations completed 50 iterations completed 50 iterations -completed 50 iterations completed 10000 iterations directory entries: t_mtab Ran: 089 Failures: 089 Failed 1 of 1 tests This is not very easily reproducible, however one can hit it eventually when running 089 in the loop. The problem is apparently, that the output might get lost, probably due to some stdio buffer weirdness. This commit workaround the issue by adding an optional argument to the t_mtab to specify output file. The t_mtab output is then appended to a file which content is then printed to the stdout as it would if no output file is used. With this commit applied the problem is no longer reproducible. Signed-off-by: Lukas Czerner <lczerner@redhat.com> Signed-off-by: Christoph Hellwig <hch@lst.de>
94 lines
2.1 KiB
Bash
Executable File
94 lines
2.1 KiB
Bash
Executable File
#! /bin/bash
|
|
# FS QA Test No. 089
|
|
#
|
|
# Emulate the way Linux mount manipulates /etc/mtab to attempt to
|
|
# reproduce a possible bug in rename (see src/t_mtab.c).
|
|
#
|
|
#-----------------------------------------------------------------------
|
|
# 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.
|
|
#
|
|
# This program is distributed in the hope that it would 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 the Free Software Foundation,
|
|
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
#
|
|
#-----------------------------------------------------------------------
|
|
#
|
|
# creator
|
|
owner=nathans@sgi.com
|
|
|
|
seq=`basename $0`
|
|
echo "QA output created by $seq"
|
|
|
|
mtab_output=$TEST_DIR/mtab_output
|
|
here=`pwd`
|
|
tmp=/tmp/$$
|
|
status=1 # failure is the default!
|
|
trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15
|
|
|
|
# get standard environment, filters and checks
|
|
. ./common.rc
|
|
. ./common.filter
|
|
|
|
addentries()
|
|
{
|
|
count=$1
|
|
pattern="%0$2d"
|
|
|
|
while [ $count -gt 0 ]; do
|
|
touch `printf $pattern $count`
|
|
let count=$count-1
|
|
done
|
|
}
|
|
|
|
# real QA test starts here
|
|
_supported_fs generic
|
|
_supported_os Linux
|
|
|
|
rm -f $seq.full
|
|
[ "X$TEST_DIR" = "X" ] && exit 1
|
|
cd $TEST_DIR
|
|
rm -fr test
|
|
mkdir test || exit 1
|
|
cd $TEST_DIR/test
|
|
mount > t_mtab
|
|
|
|
mtab()
|
|
{
|
|
rm -f $mtab_output
|
|
$here/src/t_mtab 50 $mtab_output &
|
|
$here/src/t_mtab 50 $mtab_output &
|
|
$here/src/t_mtab 50 $mtab_output &
|
|
wait
|
|
cat $mtab_output
|
|
|
|
$here/src/t_mtab 10000
|
|
|
|
echo directory entries:
|
|
ls | grep mtab
|
|
echo directory entries >> $here/$seq.full
|
|
ls -li >> $here/$seq.full
|
|
}
|
|
|
|
# directory with only a few entries
|
|
mtab
|
|
|
|
# directory with a hundred more entries, each 4chars wide
|
|
addentries 100 4
|
|
mtab
|
|
|
|
# directory with a thousand more entries, each 8chars wide
|
|
addentries 1000 8
|
|
mtab
|
|
|
|
status=0
|
|
exit
|