diff options
author | Eric Sandeen <sandeen@redhat.com> | 2008-02-28 13:22:12 -0600 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2008-02-28 19:50:09 -0500 |
commit | 09fbe0fb330ef8cd851b6044cf5333a138b79074 (patch) | |
tree | a6f451bcf3f46d2443dff0f776757ad527d8bd6f /tests/r_inline_xattr/script | |
parent | 4ef28824ca29e86053398c3e4cecca6d88b2b397 (diff) | |
download | e2fsprogs-09fbe0fb330ef8cd851b6044cf5333a138b79074.tar.gz |
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 <sandeen@redhat.com>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Diffstat (limited to 'tests/r_inline_xattr/script')
-rw-r--r-- | tests/r_inline_xattr/script | 55 |
1 files changed, 55 insertions, 0 deletions
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 + |