summaryrefslogtreecommitdiff
path: root/tests/common
diff options
context:
space:
mode:
authorDavid Sterba <dsterba@suse.com>2017-09-01 20:14:03 +0200
committerDavid Sterba <dsterba@suse.com>2017-09-08 16:15:05 +0200
commit528a5bf6ad1f90366c6422a2d1488f88a5df4abb (patch)
tree1afaf237205c4a55c2cab5552eeea67868be728d /tests/common
parent3a6895b823cfe950eda2b1866227a68edb050fab (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/common41
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}"