btrfs-progs: convert-test: Check if the ext2_save/image is read only
authorQu Wenruo <quwenruo@cn.fujitsu.com>
Fri, 19 Aug 2016 08:13:06 +0000 (16:13 +0800)
committerDavid Sterba <dsterba@suse.com>
Fri, 19 Aug 2016 11:53:28 +0000 (13:53 +0200)
Old convert codes uses both 0400 permission and INODE_READONLY flag to
make the converted ext2 image readonly.

While new convert treat the inode just as normal inode, with no special
inode flag and uses 0600 permission.
This makes user able to modify converted image unintentionally and make
rollback fails.

This test case will test the regression.

Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Signed-off-by: David Sterba <dsterba@suse.com>
tests/convert-tests/008-readonly-image/test.sh [new file with mode: 0755]

diff --git a/tests/convert-tests/008-readonly-image/test.sh b/tests/convert-tests/008-readonly-image/test.sh
new file mode 100755 (executable)
index 0000000..4e42237
--- /dev/null
@@ -0,0 +1,26 @@
+#!/bin/bash
+# Check if the converted ext2 image is readonly
+
+source $TOP/tests/common
+source $TOP/tests/common.convert
+
+setup_root_helper
+prepare_test_dev 512M
+check_prereq btrfs-convert
+
+default_mke2fs="mke2fs -t ext4 -b 4096"
+convert_test_preamble '' 'readonly image test' 16k "$default_mke2fs"
+convert_test_prep_fs $default_mke2fs
+run_check_umount_test_dev
+convert_test_do_convert
+run_check_mount_test_dev
+
+# It's expected to fail
+$SUDO_HELPER dd if=/dev/zero of=$TEST_MNT/ext2_save/image bs=1M count=1 \
+       &> /dev/null
+if [ $? -ne 1 ]; then
+       echo "after convert ext2_save/image is not read-only"
+       exit 1
+fi
+run_check_umount_test_dev
+convert_test_post_rollback