60 lines
1.4 KiB
Bash
60 lines
1.4 KiB
Bash
|
on_build() {
|
||
|
TEST_DIR_PREFIX=/tmp/lvm_test.XXXXXX
|
||
|
# clear TEST_DIRs if any
|
||
|
rm -rf ${TEST_DIR_PREFIX%.*}.*
|
||
|
TEST_IMG="$(mktemp -d $TEST_DIR_PREFIX)/test.img"
|
||
|
|
||
|
img_inst_pkg "lvm2"
|
||
|
img_inst $TESTDIR/scripts/testcases/lvm2-thinp-kdump/lvm.conf /etc/lvm/
|
||
|
dd if=/dev/zero of=$TEST_IMG bs=300M count=1
|
||
|
# The test.img will be /dev/sdb
|
||
|
img_add_qemu_cmd "-hdb $TEST_IMG"
|
||
|
}
|
||
|
|
||
|
on_test() {
|
||
|
VG=vg00
|
||
|
LV_THINPOOL=thinpool
|
||
|
LV_VOLUME=thinlv
|
||
|
VMCORE_PATH=var/crash
|
||
|
|
||
|
local boot_count=$(get_test_boot_count)
|
||
|
|
||
|
if [ $boot_count -eq 1 ]; then
|
||
|
|
||
|
vgcreate $VG /dev/sdb
|
||
|
# Create a small thinpool which is definitely not enough for
|
||
|
# vmcore, then create a thin volume which is definitely enough
|
||
|
# for vmcore, so we can make sure thinpool should be autoextend
|
||
|
# during runtime.
|
||
|
lvcreate -L 10M -T $VG/$LV_THINPOOL
|
||
|
lvcreate -V 300M -T $VG/$LV_THINPOOL -n $LV_VOLUME
|
||
|
mkfs.ext4 /dev/$VG/$LV_VOLUME
|
||
|
mount /dev/$VG/$LV_VOLUME /mnt
|
||
|
mkdir -p /mnt/$VMCORE_PATH
|
||
|
|
||
|
cat << EOF > /etc/kdump.conf
|
||
|
ext4 /dev/$VG/$LV_VOLUME
|
||
|
path /$VMCORE_PATH
|
||
|
core_collector makedumpfile -l --message-level 7 -d 31
|
||
|
EOF
|
||
|
kdumpctl start || test_failed "Failed to start kdump"
|
||
|
|
||
|
sync
|
||
|
|
||
|
echo 1 > /proc/sys/kernel/sysrq
|
||
|
echo c > /proc/sysrq-trigger
|
||
|
|
||
|
elif [ $boot_count -eq 2 ]; then
|
||
|
mount /dev/$VG/$LV_VOLUME /mnt
|
||
|
if has_valid_vmcore_dir /mnt/$VMCORE_PATH; then
|
||
|
test_passed
|
||
|
else
|
||
|
test_failed "Vmcore missing"
|
||
|
fi
|
||
|
|
||
|
shutdown -h 0
|
||
|
else
|
||
|
test_failed "Unexpected reboot"
|
||
|
fi
|
||
|
}
|