]> sourceware.org Git - lvm2.git/commitdiff
test: add test for autoactivation regression
authorOndrej Kozina <okozina@redhat.com>
Thu, 7 Jan 2016 14:30:22 +0000 (15:30 +0100)
committerOndrej Kozina <okozina@redhat.com>
Tue, 12 Jan 2016 10:40:43 +0000 (11:40 +0100)
add test for a regression fixed in
40701af9696a302c904fad30951385eb5a5adb85

test/shell/lvmetad-pvscan-autoactivation-polling.sh [new file with mode: 0644]

diff --git a/test/shell/lvmetad-pvscan-autoactivation-polling.sh b/test/shell/lvmetad-pvscan-autoactivation-polling.sh
new file mode 100644 (file)
index 0000000..f7ea912
--- /dev/null
@@ -0,0 +1,70 @@
+#!/bin/sh
+# Copyright (C) 2016 Red Hat, Inc. All rights reserved.
+#
+# This copyrighted material is made available to anyone wishing to use,
+# modify, copy, or redistribute it subject to the terms and conditions
+# of the GNU General Public License v.2.
+#
+# 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
+
+SKIP_WITHOUT_LVMETAD=1
+
+. lib/inittest
+
+which mkfs.ext3 || skip
+
+lvdev_() {
+    echo "$DM_DEV_DIR/$1/$2"
+}
+
+snap_lv_name_() {
+    echo ${1}_snap
+}
+
+setup_merge_() {
+    local VG_NAME=$1
+    local LV_NAME=$2
+    local NUM_EXTRA_SNAPS=${3:-0}
+    local BASE_SNAP_LV_NAME
+
+    BASE_SNAP_LV_NAME=$(snap_lv_name_ $LV_NAME)
+
+    lvcreate -aey -n $LV_NAME -l 50%FREE $VG_NAME
+    lvs
+    lvcreate -s -n $BASE_SNAP_LV_NAME -l 20%FREE ${VG_NAME}/${LV_NAME}
+    mkfs.ext3 "$(lvdev_ $VG_NAME $LV_NAME)"
+
+    if [ $NUM_EXTRA_SNAPS -gt 0 ]; then
+       for i in $(seq 1 $NUM_EXTRA_SNAPS); do
+           lvcreate -s -n ${BASE_SNAP_LV_NAME}_${i} -l 20%ORIGIN ${VG_NAME}/${LV_NAME}
+       done
+    fi
+}
+
+aux prepare_pvs 1 50
+
+vgcreate $vg1 "$dev1"
+mkdir test_mnt
+
+setup_merge_ $vg1 $lv1
+mount "$(lvdev_ $vg1 $lv1)" test_mnt
+lvconvert --merge $vg1/$(snap_lv_name_ $lv1)
+umount test_mnt
+vgchange -an $vg1
+
+# check snapshot get removed on autoactivation
+pvscan --cache -aay "$dev1"
+
+check active $vg1 $lv1
+i=100
+while ! check lv_not_exists $vg1/$(snap_lv_name_ $lv1); do
+       test $i -lt 0 && fail "Background polling failed to remove merged snapshot LV"
+       sleep .1
+       i=$((i-1))
+done
+
+# TODO: add similar simple tests for other interrupted/unfinished polling operation
+
+vgremove -ff $vg1
This page took 0.038187 seconds and 5 git commands to generate.