diff options
author | Dimitri John Ledkov <xnox@ubuntu.com> | 2017-07-31 14:54:24 +0100 |
---|---|---|
committer | Dimitri John Ledkov <xnox@ubuntu.com> | 2017-07-31 14:54:24 +0100 |
commit | 6a0440391da7a99ffab94ccc66264af9b5f3ce34 (patch) | |
tree | 1c7cf4f07b08c4965ab19819ebce367be16fb980 /tests/common.convert | |
parent | 5f2e2384443a09e3f1fec71940e9e32b70789102 (diff) |
New upstream release.
Diffstat (limited to 'tests/common.convert')
-rw-r--r-- | tests/common.convert | 63 |
1 files changed, 52 insertions, 11 deletions
diff --git a/tests/common.convert b/tests/common.convert index 8c9242e5..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 @@ -22,8 +55,13 @@ convert_test_preamble() { # prepare TEST_DEV before conversion, create filesystem and mount it, image # size is 512MB -# $@: free form, command to create the filesystem, with appended -F +# $1: type of the filesystem +# $2+: free form, command to create the filesystem, with appended -F convert_test_prep_fs() { + local fstype + + fstype="$1" + shift # TEST_DEV not removed as the file might have special permissions, eg. # when test image is on NFS and would not be writable for root run_check truncate -s 0 "$TEST_DEV" @@ -32,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) @@ -173,11 +211,13 @@ convert_test_post_rollback() { } # simple wrapper for a convert test -# $1: btrfs features, argument to -O -# $2: description of the test "ext2 8k nodesize" -# $3: nodesize value -# $4 + rest: command to create the ext2 image +# $1: type of the converted filesystem +# $2: btrfs features, argument to -O +# $3: description of the test "ext2 8k nodesize" +# $4: nodesize value +# $5 + rest: command to create the ext2 image convert_test() { + local fstype local features local nodesize local msg @@ -185,12 +225,13 @@ convert_test() { local EXT_PERMTMP local EXT_ACLTMP - features="$1" - msg="$2" - nodesize="$3" - shift 3 + fstype="$1" + features="$2" + msg="$3" + nodesize="$4" + shift 4 convert_test_preamble "$features" "$msg" "$nodesize" "$@" - convert_test_prep_fs "$@" + convert_test_prep_fs "$fstype" "$@" populate_fs CHECKSUMTMP=$(mktemp --tmpdir btrfs-progs-convert.XXXXXXXXXX) EXT_PERMTMP=$(mktemp --tmpdir btrfs-progs-convert.permXXXXXX) |