2
# Copyright (C) 2008 Red Hat, Inc. All rights reserved.
4
# This copyrighted material is made available to anyone wishing to use,
5
# modify, copy, or redistribute it subject to the terms and conditions
6
# of the GNU General Public License v.2.
8
# You should have received a copy of the GNU General Public License
9
# along with this program; if not, write to the Free Software Foundation,
10
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
12
# 'Exercise some lvcreate diagnostics'
17
aux pvcreate --metadatacopies 0 $dev1
18
vgcreate -cn $vg $(cat DEVICES)
20
# "lvcreate rejects repeated invocation (run 2 times) (bz178216)"
21
lvcreate -n $lv -l 4 $vg
22
not lvcreate -n $lv -l 4 $vg
24
# try to remove it again - should fail (but not segfault)
25
not lvremove -ff $vg/$lv
27
# "lvcreate rejects a negative stripe_size"
28
not lvcreate -L 64m -n $lv -i2 --stripesize -4 $vg 2>err;
29
grep "^ Negative stripesize is invalid\$" err
31
# 'lvcreate rejects a too-large stripesize'
32
not lvcreate -L 64m -n $lv -i2 --stripesize 4294967291 $vg 2>err
33
grep "^ Stripe size cannot be larger than" err
35
# 'lvcreate w/single stripe succeeds with diagnostics to stdout'
36
lvcreate -L 64m -n $lv -i1 --stripesize 4 $vg 2> err | tee out
37
grep "^ Ignoring stripesize argument with single stripe\$" out
41
# 'lvcreate w/default (64KB) stripe size succeeds with diagnostics to stdout'
42
lvcreate -L 64m -n $lv -i2 $vg > out
43
grep "^ Using default stripesize" out
45
check lv_field $vg/$lv stripesize "64.00k"
48
# 'lvcreate rejects an invalid number of stripes'
49
not lvcreate -L 64m -n $lv -i129 $vg 2>err
50
grep "^ Number of stripes (129) must be between 1 and 128\$" err
52
# The case on lvdisplay output is to verify that the LV was not created.
53
# 'lvcreate rejects an invalid stripe size'
54
not lvcreate -L 64m -n $lv -i2 --stripesize 3 $vg 2>err
55
grep "^ Invalid stripe size" err
56
case $(lvdisplay $vg) in "") true ;; *) false ;; esac
58
# Setting max_lv works. (bz490298)
61
lvcreate -l1 -n $lv1 $vg
62
lvcreate -l1 -s -n $lv2 $vg/$lv1
63
lvcreate -l1 -n $lv3 $vg
64
not lvcreate -l1 -n $lv4 $vg
67
lvcreate -l1 -s -n $lv3 $vg/$lv1
68
not lvcreate -l1 -n $lv4 $vg
69
not lvcreate -l1 -m1 -n $lv4 $vg
72
lvcreate -l1 -m1 -n $lv3 $vg
75
not lvcreate -l1 -n $lv4 $vg
76
not lvcreate -l1 -m1 -n $lv4 $vg
78
lvconvert -m0 $vg/$lv3
79
lvconvert -m2 -i 1 $vg/$lv3
80
lvconvert -m1 $vg/$lv3
89
# lvcreate rejects invalid chunksize, accepts between 4K and 512K
90
# validate origin_size
92
vgcreate -cn $vg $(cat DEVICES)
93
lvcreate -L 32m -n $lv1 $vg
94
not lvcreate -L 8m -n $lv2 -s --chunksize 3k $vg/$lv1
95
not lvcreate -L 8m -n $lv2 -s --chunksize 1024k $vg/$lv1
96
lvcreate -L 8m -n $lv2 -s --chunksize 4k $vg/$lv1
97
check lv_field $vg/$lv2 chunk_size 4.00k
98
check lv_field $vg/$lv2 origin_size 32.00m
99
lvcreate -L 8m -n $lv3 -s --chunksize 512k $vg/$lv1
100
check lv_field $vg/$lv3 chunk_size 512.00k
101
check lv_field $vg/$lv3 origin_size 32.00m
106
# - nonzero (bz186013)
107
# - a power of 2 and a multiple of page size
109
not lvcreate -L 32m -n $lv -R0 $vg 2>err
110
grep "Non-zero region size must be supplied." err
111
not lvcreate -L 32m -n $lv -R 11k $vg
112
not lvcreate -L 32m -n $lv -R 1k $vg
113
lvcreate -L 32m -n $lv --regionsize 128m -m 1 $vg
114
check lv_field $vg/$lv regionsize "32.00m"
116
lvcreate -L 32m -n $lv --regionsize 4m -m 1 $vg
117
check lv_field $vg/$lv regionsize "4.00m"
120
# snapshot with virtual origin works
121
lvcreate -s --virtualoriginsize 64m -L 32m -n $lv1 $vg
122
lvrename $vg/$lv1 $vg/$lv2
123
lvcreate -s --virtualoriginsize 64m -L 32m -n $lv1 $vg
124
lvchange -a n $vg/$lv1
125
lvremove -ff $vg/$lv1
128
# readahead default (auto), none, #, auto
129
lvcreate -L 32m -n $lv $vg
130
check lv_field $vg/$lv lv_read_ahead "auto"
132
lvcreate -L 32m -n $lv --readahead none $vg
133
check lv_field $vg/$lv lv_read_ahead "0"
134
check lv_field $vg/$lv lv_kernel_read_ahead "0"
136
lvcreate -L 32m -n $lv --readahead 8k $vg
137
check lv_field $vg/$lv lv_read_ahead "8.00k"
138
check lv_field $vg/$lv lv_kernel_read_ahead "8.00k"
140
lvcreate -L 32m -n $lv --readahead auto $vg
141
check lv_field $vg/$lv lv_read_ahead "auto"
142
check lv_field $vg/$lv lv_kernel_read_ahead "128.00k"
144
lvcreate -L 32m -n $lv -i2 --stripesize 16k --readahead auto $vg
145
check lv_field $vg/$lv lv_read_ahead "auto"
146
check lv_field $vg/$lv lv_kernel_read_ahead "128.00k"
148
lvcreate -L 32m -n $lv -i2 --stripesize 128k --readahead auto $vg
149
check lv_field $vg/$lv lv_read_ahead "auto"
150
check lv_field $vg/$lv lv_kernel_read_ahead "512.00k"