Home | History | Annotate | Line # | Download | only in test
      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