diff options
Diffstat (limited to 'test/shell/lock-blocking.sh')
-rw-r--r-- | test/shell/lock-blocking.sh | 38 |
1 files changed, 23 insertions, 15 deletions
diff --git a/test/shell/lock-blocking.sh b/test/shell/lock-blocking.sh index 480a73b..9defaf2 100644 --- a/test/shell/lock-blocking.sh +++ b/test/shell/lock-blocking.sh @@ -1,4 +1,5 @@ -#!/bin/sh +#!/usr/bin/env bash + # Copyright (C) 2008 Red Hat, Inc. All rights reserved. # # This copyrighted material is made available to anyone wishing to use, @@ -7,35 +8,42 @@ # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software Foundation, -# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA test_description='test some blocking / non-blocking multi-vg operations' -. lib/test +SKIP_WITH_CLVMD=1 +SKIP_WITH_LVMPOLLD=1 + +. lib/inittest + +# Make sure the placement of locking dir is known +aux lvmconf "global/locking_dir = \"$TESTDIR/var/lock/lvm\"" aux prepare_devs 3 -test -e LOCAL_CLVMD && skip pvcreate "$dev1" "$dev2" -vgcreate $vg "$dev1" "$dev2" +vgcreate $SHARED $vg "$dev1" "$dev2" -# if wait_for_locks set, vgremove should wait for orphan lock +# if wait_for_locks set, vgremove should wait for global lock # flock process should have exited by the time first vgremove completes -flock -w 5 $TESTDIR/var/lock/lvm/P_orphans -c "sleep 10" & -while ! test -f $TESTDIR/var/lock/lvm/P_orphans ; do sleep .1 ; done +flock -w 5 "$TESTDIR/var/lock/lvm/P_global" sleep 10 & +while ! test -f "$TESTDIR/var/lock/lvm/P_global" ; do sleep .1 ; done vgremove --config 'global { wait_for_locks = 1 }' $vg not vgremove --config 'global { wait_for_locks = 1 }' $vg -test ! -f $TESTDIR/var/lock/lvm/P_orphans +test ! -f "$TESTDIR/var/lock/lvm/P_global" # if wait_for_locks not set, vgremove should fail on non-blocking lock # we must wait for flock process at the end - vgremove won't wait -vgcreate $vg "$dev1" "$dev2" -flock -w 5 $TESTDIR/var/lock/lvm/P_orphans -c "sleep 10" & +vgcreate $SHARED $vg "$dev1" "$dev2" +flock -w 5 "$TESTDIR/var/lock/lvm/P_global" sleep 10 & -while ! test -f $TESTDIR/var/lock/lvm/P_orphans ; do sleep .1 ; done -flock_pid=`jobs -p` +while ! test -f "$TESTDIR/var/lock/lvm/P_global" ; do sleep .1 ; done +flock_pid=$(jobs -p) not vgremove --config 'global { wait_for_locks = 0 }' $vg -test -f $TESTDIR/var/lock/lvm/P_orphans # still running -kill $flock_pid +test -f "$TESTDIR/var/lock/lvm/P_global" # still running +kill "$flock_pid" + +vgremove -ff $vg |