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:
parent
40701af969
commit
d09246a07d
70
test/shell/lvmetad-pvscan-autoactivation-polling.sh
Normal file
70
test/shell/lvmetad-pvscan-autoactivation-polling.sh
Normal 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
|
Loading…
Reference in New Issue
Block a user