summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZdenek Kabelac <zkabelac@redhat.com>2016-12-22 22:21:09 +0100
committerZdenek Kabelac <zkabelac@redhat.com>2016-12-22 23:37:07 +0100
commite1943fc07f81e1c824757ccdac45c1e43a57af28 (patch)
tree7e3115119b22d40ecadb634ed8468011b01a47bd
parent1053d46aff11a8e592ca91ba56d6400f4693b9a5 (diff)
downloadlvm2-e1943fc07f81e1c824757ccdac45c1e43a57af28.tar.gz
tests: add device holding function
Hold device open with sleep and wait till sleep really opens given devices.
-rw-r--r--test/lib/aux.sh21
1 files changed, 21 insertions, 0 deletions
diff --git a/test/lib/aux.sh b/test/lib/aux.sh
index a1958835f..174e05e45 100644
--- a/test/lib/aux.sh
+++ b/test/lib/aux.sh
@@ -1491,6 +1491,27 @@ wait_pvmove_lv_ready() {
fi
}
+# Holds device open with sleep which automatically expires after given timeout
+# Prints PID of running holding sleep process in background
+hold_device_open() {
+ local vgname=$1
+ local lvname=$2
+ local sec=${3:-20} # default 20sec
+
+ sleep $sec < "$DM_DEV_DIR/$vgname/$lvname" >/dev/null 2>&1 &
+ SLEEP_PID=$!
+ # wait till device is openned
+ for i in $(seq 1 50) ; do
+ if test "$(dmsetup info --noheadings -c -o open $vgname-$lvname)" -ne 0 ; then
+ echo "$SLEEP_PID"
+ return
+ fi
+ sleep .1
+ done
+
+ die "$vgname-$lvname expected to be openned, but it's not!"
+}
+
# return total memory size in kB units
total_mem() {
while IFS=":" read -r a b ; do