summaryrefslogtreecommitdiffstats
path: root/tests/r_inline_xattr
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 15:49:25 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 15:49:25 +0000
commit464df1d5e5ab1322e2dd0a7796939fff1aeefa9a (patch)
tree6a403684e0978f0287d7f0ec0e5aab1fd31a59e1 /tests/r_inline_xattr
parentInitial commit. (diff)
downloade2fsprogs-464df1d5e5ab1322e2dd0a7796939fff1aeefa9a.tar.xz
e2fsprogs-464df1d5e5ab1322e2dd0a7796939fff1aeefa9a.zip
Adding upstream version 1.47.0.upstream/1.47.0upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/r_inline_xattr')
-rw-r--r--tests/r_inline_xattr/expect14
-rw-r--r--tests/r_inline_xattr/image.gzbin0 -> 18907 bytes
-rw-r--r--tests/r_inline_xattr/name1
-rw-r--r--tests/r_inline_xattr/script51
4 files changed, 66 insertions, 0 deletions
diff --git a/tests/r_inline_xattr/expect b/tests/r_inline_xattr/expect
new file mode 100644
index 0000000..773db10
--- /dev/null
+++ b/tests/r_inline_xattr/expect
@@ -0,0 +1,14 @@
+resize2fs test
+debugfs -R ''stat file'' test.img 2>&1 | grep -E ''^Inode\|in inode body\|user.name \(''
+Inode: 1550 Type: regular Mode: 0644 Flags: 0x0
+ user.name (11) = "propervalue"
+Exit status is 0
+resize2fs test.img 5M
+Resizing the filesystem on test.img to 5120 (1k) blocks.
+The filesystem on test.img is now 5120 (1k) blocks long.
+
+Exit status is 0
+debugfs -R ''stat file'' test.img 2>&1 | grep -E ''^Inode\|in inode body\|user.name \(''
+Inode: 12 Type: regular Mode: 0644 Flags: 0x0
+ user.name (11) = "propervalue"
+Exit status is 0
diff --git a/tests/r_inline_xattr/image.gz b/tests/r_inline_xattr/image.gz
new file mode 100644
index 0000000..ead2869
--- /dev/null
+++ b/tests/r_inline_xattr/image.gz
Binary files differ
diff --git a/tests/r_inline_xattr/name b/tests/r_inline_xattr/name
new file mode 100644
index 0000000..97654fb
--- /dev/null
+++ b/tests/r_inline_xattr/name
@@ -0,0 +1 @@
+shrinking filesystem with in-inode extended attributes
diff --git a/tests/r_inline_xattr/script b/tests/r_inline_xattr/script
new file mode 100644
index 0000000..2f754e6
--- /dev/null
+++ b/tests/r_inline_xattr/script
@@ -0,0 +1,51 @@
+if ! test -x $RESIZE2FS_EXE -o ! -x $DEBUGFS_EXE; then
+ echo "$test_name: $test_description: skipped (no debugfs/resize2fs)"
+ return 0
+fi
+
+IMAGE=$test_dir/image.gz
+FSCK_OPT=-yf
+OUT=$test_name.log
+EXP=$test_dir/expect
+
+gunzip < $IMAGE > $TMPFILE
+
+echo "resize2fs test" > $OUT.new
+
+# Look at existing inline extended attribute
+echo "debugfs -R ''stat file'' test.img 2>&1 | grep -E ''^Inode\|in inode body\|user.name \\(''" >> $OUT.new
+$DEBUGFS -R "stat file" $TMPFILE 2>&1 | grep -E "^Inode|in inode body|user.name \(" >> $OUT.new
+status=$?
+echo Exit status is $status >> $OUT.new
+
+# resize it
+echo "resize2fs test.img 5M" >> $OUT.new
+$RESIZE2FS $TMPFILE 5M >> $OUT.new 2>&1
+status=$?
+echo Exit status is $status >> $OUT.new
+
+# Look at inline extended attribute in resized fs
+echo "debugfs -R ''stat file'' test.img 2>&1 | grep -E ''^Inode\|in inode body\|user.name \\(''" >> $OUT.new
+$DEBUGFS -R "stat file" $TMPFILE 2>&1 | grep -E "^Inode|in inode body|user.name \(" >> $OUT.new
+status=$?
+echo Exit status is $status >> $OUT.new
+
+sed -f $cmd_dir/filter.sed < $OUT.new > $OUT
+rm $TMPFILE $OUT.new
+
+#
+# Do the verification
+#
+
+cmp -s $OUT $EXP
+status=$?
+
+if [ "$status" = 0 ] ; then
+ echo "$test_name: $test_description: ok"
+ touch $test_name.ok
+else
+ echo "$test_name: $test_description: failed"
+ diff $DIFF_OPTS $EXP $OUT > $test_name.failed
+fi
+
+unset IMAGE FSCK_OPT OUT EXP