summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorDavid Sterba <dsterba@suse.com>2017-07-20 18:44:49 +0200
committerDavid Sterba <dsterba@suse.com>2017-07-20 19:42:59 +0200
commit18b519e694a6ef559d85072f86898ab5a61f6a05 (patch)
tree389909f446d659498048f64d573125a71a0a30cd /tests
parent46809a7287eb41ff2fdb83f742bd5250b820145a (diff)
btrfs-progs: tests: use separate helper for mounting convert filesystems
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>
Diffstat (limited to 'tests')
-rw-r--r--tests/common.convert35
-rwxr-xr-xtests/convert-tests/005-delete-all-rollback/test.sh4
2 files changed, 36 insertions, 3 deletions
diff --git a/tests/common.convert b/tests/common.convert
index 12ad3a82..2c19a4be 100644
--- a/tests/common.convert
+++ b/tests/common.convert
@@ -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)
diff --git a/tests/convert-tests/005-delete-all-rollback/test.sh b/tests/convert-tests/005-delete-all-rollback/test.sh
index 6871939e..337413bb 100755
--- a/tests/convert-tests/005-delete-all-rollback/test.sh
+++ b/tests/convert-tests/005-delete-all-rollback/test.sh
@@ -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