diff options
author | David Sterba <dsterba@suse.com> | 2017-09-01 20:14:03 +0200 |
---|---|---|
committer | David Sterba <dsterba@suse.com> | 2017-09-08 16:15:05 +0200 |
commit | 528a5bf6ad1f90366c6422a2d1488f88a5df4abb (patch) | |
tree | 1afaf237205c4a55c2cab5552eeea67868be728d /tests/common | |
parent | 3a6895b823cfe950eda2b1866227a68edb050fab (diff) |
btrfs-progs: tests: move loopdev helpers out of the testcase to common
Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'tests/common')
-rw-r--r-- | tests/common | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/tests/common b/tests/common index d0324a62..ebd41ba9 100644 --- a/tests/common +++ b/tests/common @@ -519,6 +519,47 @@ generate_dataset() { esac } +# prepare environment for loop devices, set up the following variables +# - nloopdevs -- number of desired devices +# - loopdevs -- array containing paths to all devices (after prepare is called) +# - loopdev_prefix -- file backed images starting with this string, 'img' by default +# +# $1: number of loop devices to be set up +setup_loopdevs() +{ + if [ -z "$1" ]; then + _fail "setup_loopdevs needs a number" + fi + nloopdevs="$1" + loopdev_prefix=img + declare -a loopdevs + +} + +# create all loop devices from a given loopdev environment +prepare_loopdevs() +{ + for i in `seq $nloopdevs`; do + touch $loopdev_prefix$i + chmod a+rw $loopdev_prefix$i + truncate -s0 $loopdev_prefix$i + truncate -s2g $loopdev_prefix$i + loopdevs[$i]=`run_check_stdout $SUDO_HELPER losetup --find --show $loopdev_prefix$i` + done +} + +# detach loop devices and reset their size to 0, does not delete the files +cleanup_loopdevs() +{ + for dev in ${loopdevs[@]}; do + run_check $SUDO_HELPER losetup -d $dev + done + for i in `seq $nloopdevs`; do + truncate -s0 $loopdev_prefix$i + done + run_check $SUDO_HELPER losetup --all +} + init_env() { TEST_MNT="${TEST_MNT:-$TOP/tests/mnt}" |