From 09fbe0fb330ef8cd851b6044cf5333a138b79074 Mon Sep 17 00:00:00 2001 From: Eric Sandeen Date: Thu, 28 Feb 2008 13:22:12 -0600 Subject: Add regression test for resize2fs moving inodes with inline xattrs The image contains an inode past the resize point with an inline xattr value of "propervalue". It also contains deleted inodes which had the xattr value "oldvalue". When resize2fs moves the inode, it should copy the xattr as well, so that post-resize we see "propervalue" not "oldvalue". Signed-off-by: Eric Sandeen Signed-off-by: "Theodore Ts'o" --- tests/r_inline_xattr/script | 55 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 tests/r_inline_xattr/script (limited to 'tests/r_inline_xattr/script') diff --git a/tests/r_inline_xattr/script b/tests/r_inline_xattr/script new file mode 100644 index 00000000..eb923de4 --- /dev/null +++ b/tests/r_inline_xattr/script @@ -0,0 +1,55 @@ +if test -x $RESIZE2FS_EXE; then + +IMAGE=$test_dir/image.gz +FSCK_OPT=-yf +OUT=$test_name.log +EXP=$test_dir/expect + +gunzip < $IMAGE > $TMPFILE + +echo "resize2fs test" > $OUT + +# Look at existing inline extended attribute +echo "debugfs -R ''stat file'' $TMPFILE 2>&1 | grep ''^Inode\|in inode body\|name = ''" >> $OUT +$DEBUGFS -R "stat file" $TMPFILE 2>&1 | grep "^Inode\|in inode body\|name = " >> $OUT +status=$? +echo Exit status is $status >> $OUT + +# resize it +echo "resize2fs $TMPFILE 5M" >> $OUT +$RESIZE2FS $TMPFILE 5M 2>&1 >> $OUT.new 2>&1 +status=$? +echo Exit status is $status >> $OUT.new +sed -e '1d' $OUT.new >> $OUT + +# Look at inline extended attribute in resized fs +echo "debugfs -R ''stat file'' $TMPFILE 2>&1 | grep ''^Inode\|in inode body\|name = ''" >> $OUT +$DEBUGFS -R "stat file" $TMPFILE 2>&1 | grep "^Inode\|in inode body\|name = " >> $OUT +status=$? +echo Exit status is $status >> $OUT + +rm $TMPFILE $OUT.new + +# +# Do the verification +# + +rm -f $test_name.ok $test_name.failed +cmp -s $OUT $EXP +status=$? + +if [ "$status" = 0 ] ; then + echo "ok" + touch $test_name.ok +else + echo "failed" + diff $DIFF_OPTS $EXP $OUT > $test_name.failed +fi + +unset IMAGE FSCK_OPT OUT EXP + +else #if test -x $RESIZE2FS; then + rm -f $test_name.ok $test_name.failed + echo "skipped" +fi + -- cgit v1.2.3