1 1.1 haad #!/bin/sh 2 1.1 haad # Copyright (C) 2008 Red Hat, Inc. All rights reserved. 3 1.1 haad # 4 1.1 haad # This copyrighted material is made available to anyone wishing to use, 5 1.1 haad # modify, copy, or redistribute it subject to the terms and conditions 6 1.1 haad # of the GNU General Public License v.2. 7 1.1 haad # 8 1.1 haad # You should have received a copy of the GNU General Public License 9 1.1 haad # along with this program; if not, write to the Free Software Foundation, 10 1.1 haad # Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 11 1.1 haad 12 1.1 haad # 'Exercise some lvcreate diagnostics' 13 1.1 haad 14 1.1 haad . ./test-utils.sh 15 1.1 haad 16 1.1.1.2 haad aux prepare_pvs 4 17 1.1 haad aux pvcreate --metadatacopies 0 $dev1 18 1.1 haad vgcreate -cn $vg $devs 19 1.1 haad 20 1.1 haad # "lvcreate rejects repeated invocation (run 2 times) (bz178216)" 21 1.1 haad lvcreate -n $lv -l 4 $vg 22 1.1 haad not lvcreate -n $lv -l 4 $vg 23 1.1 haad lvremove -ff $vg/$lv 24 1.1.1.2 haad # try to remove it again - should fail (but not segfault) 25 1.1.1.2 haad not lvremove -ff $vg/$lv 26 1.1 haad 27 1.1 haad # "lvcreate rejects a negative stripe_size" 28 1.1.1.2 haad not lvcreate -L 64m -n $lv -i2 --stripesize -4 $vg 2>err; 29 1.1 haad grep "^ Negative stripesize is invalid\$" err 30 1.1 haad 31 1.1 haad # 'lvcreate rejects a too-large stripesize' 32 1.1.1.2 haad not lvcreate -L 64m -n $lv -i2 --stripesize 4294967291 $vg 2>err 33 1.1.1.2 haad grep "^ Stripe size cannot be larger than" err 34 1.1 haad 35 1.1 haad # 'lvcreate w/single stripe succeeds with diagnostics to stdout' 36 1.1.1.2 haad lvcreate -L 64m -n $lv -i1 --stripesize 4 $vg >out 2>err 37 1.1 haad grep "^ Redundant stripes argument: default is 1\$" out 38 1.1 haad grep "^ Ignoring stripesize argument with single stripe\$" out 39 1.1 haad lvdisplay $vg 40 1.1 haad lvremove -ff $vg 41 1.1 haad 42 1.1 haad # 'lvcreate w/default (64KB) stripe size succeeds with diagnostics to stdout' 43 1.1.1.2 haad lvcreate -L 64m -n $lv -i2 $vg > out 44 1.1 haad grep "^ Using default stripesize" out 45 1.1 haad lvdisplay $vg 46 1.1.1.2 haad check_lv_field_ $vg/$lv stripesize "64.00k" 47 1.1 haad lvremove -ff $vg 48 1.1 haad 49 1.1 haad # 'lvcreate rejects an invalid number of stripes' 50 1.1.1.2 haad not lvcreate -L 64m -n $lv -i129 $vg 2>err 51 1.1 haad grep "^ Number of stripes (129) must be between 1 and 128\$" err 52 1.1 haad 53 1.1 haad # The case on lvdisplay output is to verify that the LV was not created. 54 1.1 haad # 'lvcreate rejects an invalid stripe size' 55 1.1.1.2 haad not lvcreate -L 64m -n $lv -i2 --stripesize 3 $vg 2>err 56 1.1.1.2 haad grep "^ Invalid stripe size" err 57 1.1 haad case $(lvdisplay $vg) in "") true ;; *) false ;; esac 58 1.1 haad 59 1.1.1.2 haad # Setting max_lv works. (bz490298) 60 1.1.1.2 haad lvremove -ff $vg 61 1.1.1.2 haad vgchange -l 3 $vg 62 1.1.1.2 haad lvcreate -l1 -n $lv1 $vg 63 1.1.1.2 haad lvcreate -l1 -s -n $lv2 $vg/$lv1 64 1.1.1.2 haad lvcreate -l1 -n $lv3 $vg 65 1.1.1.2 haad not lvcreate -l1 -n $lv4 $vg 66 1.1.1.2 haad 67 1.1.1.2 haad lvremove -ff $vg/$lv3 68 1.1.1.2 haad lvcreate -l1 -s -n $lv3 $vg/$lv1 69 1.1.1.2 haad not lvcreate -l1 -n $lv4 $vg 70 1.1.1.2 haad not lvcreate -l1 -m1 -n $lv4 $vg 71 1.1.1.2 haad 72 1.1.1.2 haad lvremove -ff $vg/$lv3 73 1.1.1.2 haad lvcreate -l1 -m1 -n $lv3 $vg 74 1.1.1.2 haad lvs 75 1.1.1.2 haad vgs -o +max_lv 76 1.1.1.2 haad not lvcreate -l1 -n $lv4 $vg 77 1.1.1.2 haad not lvcreate -l1 -m1 -n $lv4 $vg 78 1.1.1.2 haad 79 1.1.1.2 haad lvconvert -m0 $vg/$lv3 80 1.1.1.2 haad lvconvert -m2 -i 1 $vg/$lv3 81 1.1.1.2 haad lvconvert -m1 $vg/$lv3 82 1.1.1.2 haad 83 1.1.1.2 haad not vgchange -l 2 84 1.1.1.2 haad vgchange -l 4 85 1.1.1.2 haad vgs $vg 86 1.1.1.2 haad 87 1.1.1.2 haad lvremove -ff $vg 88 1.1.1.2 haad vgchange -l 0 $vg 89 1.1.1.2 haad 90 1.1.1.2 haad # lvcreate rejects invalid chunksize, accepts between 4K and 512K 91 1.1.1.2 haad # validate origin_size 92 1.1.1.2 haad vgremove -ff $vg 93 1.1.1.2 haad vgcreate -cn $vg $devs 94 1.1.1.2 haad lvcreate -L 32m -n $lv1 $vg 95 1.1.1.2 haad not lvcreate -L 8m -n $lv2 -s --chunksize 3k $vg/$lv1 96 1.1.1.2 haad not lvcreate -L 8m -n $lv2 -s --chunksize 1024k $vg/$lv1 97 1.1.1.2 haad lvcreate -L 8m -n $lv2 -s --chunksize 4k $vg/$lv1 98 1.1.1.2 haad check_lv_field_ $vg/$lv2 chunk_size 4.00k 99 1.1.1.2 haad check_lv_field_ $vg/$lv2 origin_size 32.00m 100 1.1.1.2 haad lvcreate -L 8m -n $lv3 -s --chunksize 512k $vg/$lv1 101 1.1.1.2 haad check_lv_field_ $vg/$lv3 chunk_size 512.00k 102 1.1.1.2 haad check_lv_field_ $vg/$lv3 origin_size 32.00m 103 1.1.1.2 haad lvremove -ff $vg 104 1.1.1.2 haad vgchange -l 0 $vg 105 1.1.1.2 haad 106 1.1.1.2 haad # regionsize must be 107 1.1.1.2 haad # - nonzero (bz186013) 108 1.1.1.2 haad # - a power of 2 and a multiple of page size 109 1.1.1.2 haad # - <= size of LV 110 1.1.1.2 haad not lvcreate -L 32m -n $lv -R0 $vg 2>err 111 1.1.1.2 haad grep "Non-zero region size must be supplied." err 112 1.1.1.2 haad not lvcreate -L 32m -n $lv -R 11k $vg 113 1.1.1.2 haad not lvcreate -L 32m -n $lv -R 1k $vg 114 1.1.1.2 haad lvcreate -L 32m -n $lv --regionsize 128m -m 1 $vg 115 1.1.1.2 haad check_lv_field_ $vg/$lv regionsize "32.00m" 116 1.1.1.2 haad lvremove -ff $vg 117 1.1.1.2 haad lvcreate -L 32m -n $lv --regionsize 4m -m 1 $vg 118 1.1.1.2 haad check_lv_field_ $vg/$lv regionsize "4.00m" 119 1.1.1.2 haad lvremove -ff $vg 120 1.1.1.2 haad 121 1.1.1.2 haad # snapshot with virtual origin works 122 1.1.1.2 haad lvcreate -s --virtualoriginsize 64m -L 32m -n $lv1 $vg 123 1.1.1.2 haad lvrename $vg/$lv1 $vg/$lv2 124 1.1.1.2 haad lvcreate -s --virtualoriginsize 64m -L 32m -n $lv1 $vg 125 1.1.1.2 haad lvchange -a n $vg/$lv1 126 1.1.1.2 haad lvremove $vg/$lv1 127 1.1.1.2 haad lvremove -ff $vg 128