[lvm-devel] master - tests: aux.sh better teardown loop
Zdenek Kabelac
zkabelac at sourceware.org
Thu Jul 13 22:44:32 UTC 2017
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=e682af78789b34bbcb1706c16f629dfd93915bf9
Commit: e682af78789b34bbcb1706c16f629dfd93915bf9
Parent: f64f6c5e703e6d3632acf68fa353b71f452bbfc7
Author: Zdenek Kabelac <zkabelac at redhat.com>
AuthorDate: Fri Jul 14 00:27:55 2017 +0200
Committer: Zdenek Kabelac <zkabelac at redhat.com>
CommitterDate: Fri Jul 14 00:27:55 2017 +0200
tests: aux.sh better teardown loop
We can't really sleep that much in teardown as it slows test too much.
So do a nested loop (similar to 'dmsetup remove_all') and keep
removing devices with open count == 0 as long as it works.
---
test/lib/aux.sh | 19 ++++++++++++-------
1 files changed, 12 insertions(+), 7 deletions(-)
diff --git a/test/lib/aux.sh b/test/lib/aux.sh
index 9e0ca2c..de2e2ac 100644
--- a/test/lib/aux.sh
+++ b/test/lib/aux.sh
@@ -411,18 +411,23 @@ teardown_devs_prefixed() {
# Remove devices, start with closed (sorted by open count)
# Run 'dmsetup remove' in parallel
- local need_udev_wait=0
rm -f REMOVE_FAILED
#local listdevs=( $(dm_info name,open --sort open,name | grep "$prefix.*:0") )
#dmsetup remove --deferred ${listdevs[@]%%:0} || touch REMOVE_FAILED
+ for i in {1..100}; do
+ local need_udev_wait=0
+ local cnt
+ while IFS=' ' read -r dm cnt; do
+ test "$cnt" -eq 0 || break
+ dmsetup remove "$dm" &>/dev/null || touch REMOVE_FAILED &
+ need_udev_wait=1
+ done < <(dm_info name,open --separator ' ' --sort open,name | grep "$prefix")
+ test "$need_udev_wait" -eq 1 || break
+ udev_wait
+ test -f REMOVE_FAILED && break
+ done # looping till there are some removed devicess
- for dm in $(dm_info name --sort open,name | grep "$prefix"); do
- dmsetup remove "$dm" &>/dev/null || touch REMOVE_FAILED &
- need_udev_wait=1
- sleep 1 # give 'dmsetup' some time to proceed with removal
- done
wait
- test "$need_udev_wait" -eq 0 || udev_wait
if test -f REMOVE_FAILED; then
local num_devs
More information about the lvm-devel
mailing list