1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-21 13:34:40 +03:00

test: add test for autoactivation regression

add test for a regression fixed in
40701af969
This commit is contained in:
Ondrej Kozina 2016-01-07 15:30:22 +01:00
parent 40701af969
commit d09246a07d

View File

@ -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