* master - tests: aux.sh better teardown loop
@ 2017-07-13 22:44 Zdenek Kabelac
0 siblings, 0 replies; only message in thread
From: Zdenek Kabelac @ 2017-07-13 22:44 UTC (permalink / raw)
To: lvm-devel
Gitweb: https://sourceware.org/git/?p=lvm2.git;a=commitdiff;h=e682af78789b34bbcb1706c16f629dfd93915bf9
Commit: e682af78789b34bbcb1706c16f629dfd93915bf9
Parent: f64f6c5e703e6d3632acf68fa353b71f452bbfc7
Author: Zdenek Kabelac <zkabelac@redhat.com>
AuthorDate: Fri Jul 14 00:27:55 2017 +0200
Committer: Zdenek Kabelac <zkabelac@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
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2017-07-13 22:44 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-07-13 22:44 master - tests: aux.sh better teardown loop Zdenek Kabelac
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.