btrfs-progs: tests: use separate helper for mounting convert filesystems
authorDavid Sterba <dsterba@suse.com>
Thu, 20 Jul 2017 16:44:49 +0000 (18:44 +0200)
committerDavid Sterba <dsterba@suse.com>
Thu, 20 Jul 2017 17:42:59 +0000 (19:42 +0200)
We'll enforce the btrfs type for mount everwhere so we must provide a
way to mount converted filesystems. Add a new helper that will try to
mount the given type.

Signed-off-by: David Sterba <dsterba@suse.com>
tests/common.convert
tests/convert-tests/005-delete-all-rollback/test.sh

index 12ad3a8..2c19a4b 100644 (file)
@@ -1,6 +1,39 @@
 #!/bin/bash
 # helpers for btrfs-convert tests
 
+# mount image of converted filesystem of a given type
+# $1: type of the filesystem
+run_check_mount_convert_dev()
+{
+       local fstype
+       local loop_opt
+
+       setup_root_helper
+
+       fstype="$1"
+       shift
+       if [ -z "$fstype" ]; then
+               _fail "Missing source filesystem type"
+       fi
+       if [ "$fstype" = 'btrfs' ]; then
+               _fail "Incorrect type for converted filesystem: btrfs"
+       fi
+
+       if [[ -b "$TEST_DEV" ]]; then
+               loop_opt=""
+       elif [[ -f "$TEST_DEV" ]]; then
+               loop_opt="-o loop"
+       else
+               _fail "Invalid \$TEST_DEV: $TEST_DEV"
+       fi
+
+       [[ -d "$TEST_MNT" ]] || {
+               _fail "Invalid \$TEST_MNT: $TEST_MNT"
+       }
+
+       run_check $SUDO_HELPER mount $loop_opt -t "$fstype" "$@" "$TEST_DEV" "$TEST_MNT"
+}
+
 populate_fs() {
 
         for dataset_type in 'small' 'hardlink' 'fast_symlink' 'brokenlink' 'perm' 'sparse' 'acls' 'fifo' 'slow_symlink'; do
@@ -37,7 +70,7 @@ convert_test_prep_fs() {
        run_check "$@" -F "$TEST_DEV"
 
        # create a file to check btrfs-convert can convert regular file correct
-       run_check_mount_test_dev
+       run_check_mount_convert_dev "$fstype"
 
        # create a file inside the fs before convert, to make sure there is
        # data covering btrfs backup superblock range (64M)
index 6871939..337413b 100755 (executable)
@@ -47,12 +47,12 @@ do_test() {
        run_check_umount_test_dev
        convert_test_post_rollback
 
-       run_check_mount_test_dev
+       run_check_mount_convert_dev ext4
        convert_test_post_check_checksums "$CHECKSUMTMP"
        run_check_umount_test_dev
 
        # mount again and verify checksums
-       run_check_mount_test_dev
+       run_check_mount_convert_dev ext4
        convert_test_post_check_checksums "$CHECKSUMTMP"
        run_check_umount_test_dev