summaryrefslogtreecommitdiff
path: root/test/shell/dmeventd-restart.sh
diff options
context:
space:
mode:
Diffstat (limited to 'test/shell/dmeventd-restart.sh')
-rw-r--r--test/shell/dmeventd-restart.sh43
1 files changed, 29 insertions, 14 deletions
diff --git a/test/shell/dmeventd-restart.sh b/test/shell/dmeventd-restart.sh
index fa9db46..0def8c1 100644
--- a/test/shell/dmeventd-restart.sh
+++ b/test/shell/dmeventd-restart.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,45 +8,59 @@
#
# 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
+
-. lib/test
+SKIP_WITH_LVMPOLLD=1
+
+. lib/inittest
aux prepare_dmeventd
aux prepare_vg 5
-lvcreate -m 3 --ig -L 1 -n 4way $vg
+lvcreate -aey --type mirror -m 3 --nosync --ignoremonitoring -l1 -n 4way $vg
lvchange --monitor y $vg/4way
-lvcreate -m 2 --ig -L 1 -n 3way $vg
+lvcreate -aey --type mirror -m 2 --nosync --ignoremonitoring -l1 -n 3way $vg
lvchange --monitor y $vg/3way
+lvcreate -aey -l1 -n $lv1 $vg
+lvcreate -s -l1 -n $lv2 $vg/$lv1
+
dmeventd -R -f &
echo $! >LOCAL_DMEVENTD
sleep 2 # wait a bit, so we talk to the new dmeventd later
+check lv_field $vg/3way seg_monitor "monitored"
+check lv_field $vg/4way seg_monitor "monitored"
lvchange --monitor y --verbose $vg/3way 2>&1 | tee lvchange.out
-grep 'already monitored' lvchange.out
+# only non-cluster tests can check command result
+test -e LOCAL_CLVMD || grep 'already monitored' lvchange.out
lvchange --monitor y --verbose $vg/4way 2>&1 | tee lvchange.out
-grep 'already monitored' lvchange.out
+test -e LOCAL_CLVMD || grep 'already monitored' lvchange.out
# now try what happens if no dmeventd is running
-kill -9 $(cat LOCAL_DMEVENTD)
-rm LOCAL_DMEVENTD
+kill -9 "$(< LOCAL_DMEVENTD)"
+rm LOCAL_DMEVENTD debug.log*
dmeventd -R -f &
echo $! >LOCAL_DMEVENTD
# wait longer as tries to communicate with killed daemon
-sleep 7
+sleep 9
# now dmeventd should not be running
not pgrep dmeventd
rm LOCAL_DMEVENTD
-# set dmeventd path
-aux lvmconf "dmeventd/executable=\"$abs_top_builddir/test/lib/dmeventd\""
+# First lvs restarts 'dmeventd' (initiate a socket connection to a daemon)
+check lv_field $vg/3way seg_monitor "not monitored"
+pgrep -o dmeventd >LOCAL_DMEVENTD
+check lv_field $vg/4way seg_monitor "not monitored"
+
lvchange --monitor y --verbose $vg/3way 2>&1 | tee lvchange.out
-pgrep dmeventd >LOCAL_DMEVENTD
-not grep 'already monitored' lvchange.out
+test -e LOCAL_CLVMD || not grep 'already monitored' lvchange.out
+
+lvchange --monitor y --verbose $vg/$lv2 2>&1 | tee lvchange.out
+test -e LOCAL_CLVMD || not grep 'already monitored' lvchange.out
vgremove -ff $vg