summaryrefslogtreecommitdiff
path: root/tests/r_inline_xattr/script
diff options
context:
space:
mode:
authorEric Sandeen <sandeen@redhat.com>2008-02-28 13:22:12 -0600
committerTheodore Ts'o <tytso@mit.edu>2008-02-28 19:50:09 -0500
commit09fbe0fb330ef8cd851b6044cf5333a138b79074 (patch)
treea6f451bcf3f46d2443dff0f776757ad527d8bd6f /tests/r_inline_xattr/script
parent4ef28824ca29e86053398c3e4cecca6d88b2b397 (diff)
downloade2fsprogs-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/script55
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
+