generic: check overwriting rename

This tests whether the file or directory overwritten by rename is properly
removed (nlink is zero).

Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
Signed-off-by: Dave Chinner <david@fromorbit.com>
This commit is contained in:
Miklos Szeredi
2014-10-14 17:40:34 +11:00
committed by Dave Chinner
parent 448efe1309
commit de161cbaac
6 changed files with 117 additions and 1 deletions
+72
View File
@@ -0,0 +1,72 @@
#! /bin/bash
# FS QA Test No. generic/035
#
# Check overwriting rename system call
#
#-----------------------------------------------------------------------
# Copyright (c) 2014 Miklos Szeredi. 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
#-----------------------------------------------------------------------
#
seq=`basename $0`
seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
tmp=/tmp/$$
status=1 # failure is the default!
trap "_cleanup; exit \$status" 0 1 2 3 15
_cleanup()
{
cd /
rm -f $tmp.*
}
# get standard environment, filters and checks
. ./common/rc
_supported_fs generic
_supported_os Linux
_require_test
# real QA test starts here
rename_dir=$TEST_DIR/$$
mkdir -p $rename_dir
echo "overwriting regular file:"
file1=$rename_dir/file1
file2=$rename_dir/file2
touch $file1
touch $file2
src/t_rename_overwrite $file1 $file2
rm $file2
echo "overwriting directory:"
dir1=$rename_dir/dir1
dir2=$rename_dir/dir2
mkdir $dir1
mkdir $dir2
src/t_rename_overwrite $dir1 $dir2
rmdir $dir2
rmdir $rename_dir
# success, all done
status=0
exit
+3
View File
@@ -0,0 +1,3 @@
QA output created by 035
overwriting regular file:
overwriting directory:
+1
View File
@@ -37,6 +37,7 @@
032 auto quick rw
033 auto quick rw
034 auto quick metadata log
035 auto quick
053 acl repair auto quick
062 attr udf auto quick
068 other auto freeze dangerous stress