1# Copyright (C) 2008 Red Hat, Inc. All rights reserved. 2# 3# This copyrighted material is made available to anyone wishing to use, 4# modify, copy, or redistribute it subject to the terms and conditions 5# of the GNU General Public License v.2. 6# 7# You should have received a copy of the GNU General Public License 8# along with this program; if not, write to the Free Software Foundation, 9# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 10 11. ./test-utils.sh 12 13aux prepare_devs 4 14 15for mdatype in 1 2 16do 17# pvcreate (lvm$mdatype) refuses to overwrite an mounted filesystem (bz168330) 18 test ! -d $G_root_/mnt && mkdir $G_root_/mnt 19 if mke2fs $dev1; then 20 mount $dev1 $G_root_/mnt 21 not pvcreate -M$mdatype $dev1 2>err 22 grep "Can't open $dev1 exclusively. Mounted filesystem?" err 23 umount $dev1 24 fi 25 26# pvcreate (lvm$mdatype) succeeds when run repeatedly (pv not in a vg) (bz178216) 27 pvcreate -M$mdatype $dev1 28 pvcreate -M$mdatype $dev1 29 pvremove -f $dev1 30 31# pvcreate (lvm$mdatype) fails when PV belongs to VG" \ 32 pvcreate -M$mdatype $dev1 33 vgcreate -M$mdatype $vg1 $dev1 34 not pvcreate -M$mdatype $dev1 35 36 vgremove -f $vg1 37 pvremove -f $dev1 38 39# pvcreate (lvm$mdatype) fails when PV1 does and PV2 does not belong to VG 40 pvcreate -M$mdatype $dev1 41 pvcreate -M$mdatype $dev2 42 vgcreate -M$mdatype $vg1 $dev1 43 44# pvcreate a second time on $dev2 and $dev1 45 not pvcreate -M$mdatype $dev2 $dev1 46 47 vgremove -f $vg1 48 pvremove -f $dev2 49 pvremove -f $dev1 50 51# NOTE: Force pvcreate after test completion to ensure clean device 52#test_expect_success \ 53# "pvcreate (lvm$mdatype) fails on md component device" \ 54# 'mdadm -C -l raid0 -n 2 /dev/md0 $dev1 $dev2 && 55# pvcreate -M$mdatype $dev1; 56# status=$?; echo status=$status; test $status != 0 && 57# mdadm --stop /dev/md0 && 58# pvcreate -ff -y -M$mdatype $dev1 $dev2 && 59# pvremove -f $dev1 $dev2' 60done 61 62# pvcreate (lvm2) fails without -ff when PV with metadatacopies=0 belongs to VG 63pvcreate --metadatacopies 0 $dev1 64pvcreate --metadatacopies 1 $dev2 65vgcreate $vg1 $dev1 $dev2 66not pvcreate $dev1 67vgremove -f $vg1 68pvremove -f $dev2 69pvremove -f $dev1 70 71# pvcreate (lvm2) succeeds with -ff when PV with metadatacopies=0 belongs to VG 72pvcreate --metadatacopies 0 $dev1 73pvcreate --metadatacopies 1 $dev2 74vgcreate $vg1 $dev1 $dev2 75pvcreate -ff -y $dev1 76vgreduce --removemissing $vg1 77vgremove -ff $vg1 78pvremove -f $dev2 79pvremove -f $dev1 80 81for i in 0 1 2 3 82do 83# pvcreate (lvm2) succeeds writing LVM label at sector $i 84 pvcreate --labelsector $i $dev1 85 dd if=$dev1 bs=512 skip=$i count=1 2>/dev/null | strings | grep -q LABELONE; 86 pvremove -f $dev1 87done 88 89# pvcreate (lvm2) fails writing LVM label at sector 4 90not pvcreate --labelsector 4 $dev1 91 92backupfile=mybackupfile-$(this_test_) 93uuid1=freddy-fred-fred-fred-fred-fred-freddy 94uuid2=freddy-fred-fred-fred-fred-fred-fredie 95bogusuuid=fred 96 97# pvcreate rejects uuid option with less than 32 characters 98not pvcreate --uuid $bogusuuid $dev1 99 100# pvcreate rejects uuid already in use 101pvcreate --uuid $uuid1 $dev1 102not pvcreate --uuid $uuid1 $dev2 103 104# pvcreate rejects non-existent file given with restorefile 105not pvcreate --uuid $uuid1 --restorefile $backupfile $dev1 106 107# pvcreate rejects restorefile with uuid not found in file 108pvcreate --uuid $uuid1 $dev1 109vgcfgbackup -f $backupfile 110not pvcreate --uuid $uuid2 --restorefile $backupfile $dev2 111 112# pvcreate wipes swap signature when forced 113dd if=/dev/zero of=$dev1 bs=1024 count=64 114mkswap $dev1 115blkid -c /dev/null $dev1 | grep "swap" 116pvcreate -f $dev1 117blkid -c /dev/null $dev1 | not grep "swap" 118