btrfs-progs: convert-test: Add test case for common inode flags
authorQu Wenruo <quwenruo@cn.fujitsu.com>
Mon, 10 Oct 2016 03:00:13 +0000 (11:00 +0800)
committerDavid Sterba <dsterba@suse.com>
Mon, 24 Oct 2016 12:58:15 +0000 (14:58 +0200)
Add a new test case to check if btrfs-convert copies common inode flags
like append(a), immutable(i).

Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
[ minor fixes ]
Signed-off-by: David Sterba <dsterba@suse.com>
tests/convert-tests/009-common-inode-flags/test.sh [new file with mode: 0755]

diff --git a/tests/convert-tests/009-common-inode-flags/test.sh b/tests/convert-tests/009-common-inode-flags/test.sh
new file mode 100755 (executable)
index 0000000..6f26d18
--- /dev/null
@@ -0,0 +1,34 @@
+#!/bin/bash
+# Check if btrfs-convert can copy common inode flags like SYNC/IMMUTABLE
+
+source $TOP/tests/common
+source $TOP/tests/common.convert
+
+setup_root_helper
+prepare_test_dev 512M
+check_prereq btrfs-convert
+
+fail=0
+default_mke2fs="mke2fs -t ext4 -b 4096"
+convert_test_preamble '' 'common inode flags test' 16k "$default_mke2fs"
+convert_test_prep_fs $default_mke2fs
+
+# create file with specific flags
+run_check $SUDO_HELPER touch $TEST_MNT/flag_test
+run_check $SUDO_HELPER chattr +aAdSi $TEST_MNT/flag_test
+
+run_check_umount_test_dev
+convert_test_do_convert
+run_check_mount_test_dev
+
+# Log the status
+run_check lsattr $TEST_MNT/flag_test
+# Above flags should be copied to btrfs flags, and lsattr should get them
+run_check_stdout lsattr $TEST_MNT/flag_test | cut -f1 -d\ | grep "[aAdiS]" -q
+if [ $? -ne 0 ]; then
+       rm tmp_output
+       _fail "no common inode flags are copied after convert"
+fi
+
+run_check_umount_test_dev
+convert_test_post_rollback