]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - tools/regression/sbin/mdconfig/mdconfig.test
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / tools / regression / sbin / mdconfig / mdconfig.test
1 # Copyright (c) 2012 Edward Tomasz NapieraƂa <trasz@FreeBSD.org>
2 # All rights reserved.
3 #
4 # Redistribution and use in source and binary forms, with or without
5 # modification, are permitted provided that the following conditions
6 # are met:
7 # 1. Redistributions of source code must retain the above copyright
8 #    notice, this list of conditions and the following disclaimer.
9 # 2. Redistributions in binary form must reproduce the above copyright
10 #    notice, this list of conditions and the following disclaimer in the
11 #    documentation and/or other materials provided with the distribution.
12 #
13 # THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
14 # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16 # ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
17 # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18 # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19 # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20 # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22 # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23 # SUCH DAMAGE.
24 #
25 # $FreeBSD$
26 #
27
28 # This is a test for mdconfig(8) functionality.  Run it as root:
29 #
30 # /usr/src/tools/regression/mdconfig/run /usr/src/tools/regression/mdconfig/mdconfig.test
31 #
32 # WARNING: Creates files in unsafe way.
33
34 $ whoami
35 > root
36 $ umask 022
37 $ truncate -s 1gb xxx
38
39 $ mdconfig -l
40
41 $ mdconfig -af xxx
42 > md0
43
44 # This awk thing is to strip the file path.
45 $ mdconfig -lv | awk '{ print $1, $2, $3 }'
46 > md0 vnode 1024M
47
48 $ diskinfo -v /dev/md0 | expand
49 > /dev/md0
50 >         512             # sectorsize
51 >         1073741824      # mediasize in bytes (1.0G)
52 >         2097152         # mediasize in sectors
53 >         0               # stripesize
54 >         0               # stripeoffset
55 >
56
57 $ mdconfig -du 0
58
59 # Check different valid syntax variations: implicit -a.
60
61 $ mdconfig xxx
62 > md0
63
64 $ mdconfig -lv | awk '{ print $1, $2, $3 }'
65 > md0 vnode 1024M
66
67 $ diskinfo -v /dev/md0 | expand
68 > /dev/md0
69 >         512             # sectorsize
70 >         1073741824      # mediasize in bytes (1.0G)
71 >         2097152         # mediasize in sectors
72 >         0               # stripesize
73 >         0               # stripeoffset
74 >
75
76 $ mdconfig -du 0
77
78 # Explicit -t vnode.
79
80 $ mdconfig -a -t vnode -f xxx
81 > md0
82
83 $ mdconfig -lv | awk '{ print $1, $2, $3 }'
84 > md0 vnode 1024M
85
86 $ diskinfo -v /dev/md0 | expand
87 > /dev/md0
88 >         512             # sectorsize
89 >         1073741824      # mediasize in bytes (1.0G)
90 >         2097152         # mediasize in sectors
91 >         0               # stripesize
92 >         0               # stripeoffset
93 >
94
95 $ mdconfig -du 0
96
97 # Size for vnodes - smaller than the actual file.
98
99 $ mdconfig -a -t vnode -f xxx -s 128m
100 > md0
101
102 $ mdconfig -lv | awk '{ print $1, $2, $3 }'
103 > md0 vnode 128M
104
105 $ diskinfo -v /dev/md0 | expand
106 > /dev/md0
107 >         512             # sectorsize
108 >         134217728       # mediasize in bytes (128M)
109 >         262144          # mediasize in sectors
110 >         0               # stripesize
111 >         0               # stripeoffset
112 >
113
114 $ mdconfig -du 0
115
116 # Size for vnodes - larger than the actual file.
117
118 $ mdconfig -a -t vnode -f xxx -s 128g
119 > md0
120
121 $ mdconfig -lv | awk '{ print $1, $2, $3 }'
122 > md0 vnode 128G
123
124 $ diskinfo -v /dev/md0 | expand
125 > /dev/md0
126 >         512             # sectorsize
127 >         137438953472    # mediasize in bytes (128G)
128 >         268435456       # mediasize in sectors
129 >         0               # stripesize
130 >         0               # stripeoffset
131 >
132
133 $ mdconfig -du 0
134
135 # Sector size for vnodes.
136
137 $ mdconfig -a -t vnode -f xxx -S 2048
138 > md0
139
140 $ mdconfig -lv | awk '{ print $1, $2, $3 }'
141 > md0 vnode 1024M
142
143 $ diskinfo -v /dev/md0 | expand
144 > /dev/md0
145 >         2048            # sectorsize
146 >         1073741824      # mediasize in bytes (1.0G)
147 >         524288          # mediasize in sectors
148 >         0               # stripesize
149 >         0               # stripeoffset
150 >
151
152 $ mdconfig -du 0
153
154 # Malloc type.
155
156 $ mdconfig -a -t malloc -s 1g
157 > md0
158
159 $ mdconfig -lv | awk '{ print $1, $2, $3 }'
160 > md0 malloc 1024M
161
162 $ diskinfo -v /dev/md0 | expand
163 > /dev/md0
164 >         512             # sectorsize
165 >         1073741824      # mediasize in bytes (1.0G)
166 >         2097152         # mediasize in sectors
167 >         0               # stripesize
168 >         0               # stripeoffset
169 >
170
171 $ mdconfig -du 0
172
173 # Swap type.
174
175 $ mdconfig -a -t swap -s 1g
176 > md0
177
178 $ mdconfig -lv | awk '{ print $1, $2, $3 }'
179 > md0 swap 1024M
180
181 $ diskinfo -v /dev/md0 | expand
182 > /dev/md0
183 >         512             # sectorsize
184 >         1073741824      # mediasize in bytes (1.0G)
185 >         2097152         # mediasize in sectors
186 >         0               # stripesize
187 >         0               # stripeoffset
188 >
189
190 $ mdconfig -du 0
191
192 # Attaching with a specific unit number.
193
194 $ mdconfig -as 1g -u 42
195
196 $ mdconfig -lv | awk '{ print $1, $2, $3 }'
197 > md42 swap 1024M
198
199 $ diskinfo -v /dev/md42 | expand
200 > /dev/md42
201 >         512             # sectorsize
202 >         1073741824      # mediasize in bytes (1.0G)
203 >         2097152         # mediasize in sectors
204 >         0               # stripesize
205 >         0               # stripeoffset
206 >
207
208 $ mdconfig -du 42
209
210 # Querying.
211
212 $ mdconfig -as 1g
213 > md0
214 $ mdconfig -as 2g -u 42
215
216 $ mdconfig -lv | awk '{ print $1, $2, $3 }'
217 > md0 swap 1024M
218 > md42 swap 2048M
219
220 $ mdconfig -lvu 0 | awk '{ print $1, $2, $3 }'
221 > md0 swap 1024M
222
223 $ mdconfig -lvu 42 | awk '{ print $1, $2, $3 }'
224 > md42 swap 2048M
225
226 $ mdconfig -lvu 24 | awk '{ print $1, $2, $3 }'
227
228 $ mdconfig -du 42
229 $ mdconfig -du 0
230
231 $ rm xxx