xref: /freebsd/tools/regression/zfs/zpool/add/files.t (revision 3fe8969a749c0e4a62ffdbf4f6883898027a9e19)
1#!/bin/sh
2# $FreeBSD$
3
4dir=`dirname $0`
5. ${dir}/../../misc.sh
6
7[ "${os}" = "FreeBSD" ] && die "panics FreeBSD; see bug # 191573"
8
9echo "1..54"
10
11files_create 8
12names_create 1
13
14expect_ok ${ZPOOL} create ${name0} ${file0}
15expect_fl ${ZPOOL} add ${name0} ${file0}
16exp=`(
17  echo "  pool: ${name0}"
18  echo " state: ONLINE"
19  echo " scrub: none requested"
20  echo "config:"
21  echo "	NAME        STATE   READ WRITE CKSUM"
22  echo "	${name0}    ONLINE     0     0     0"
23  echo "	  ${file0}  ONLINE     0     0     0"
24  echo "errors: No known data errors"
25)`
26expect_ok ${ZPOOL} destroy ${name0}
27expect_fl ${ZPOOL} status -x ${name0}
28
29expect_ok ${ZPOOL} create ${name0} ${file0} ${file1}
30expect_fl ${ZPOOL} add ${name0} ${file0}
31expect_fl ${ZPOOL} add ${name0} ${file1}
32exp=`(
33  echo "  pool: ${name0}"
34  echo " state: ONLINE"
35  echo " scrub: none requested"
36  echo "config:"
37  echo "	NAME        STATE   READ WRITE CKSUM"
38  echo "	${name0}    ONLINE     0     0     0"
39  echo "	  ${file0}  ONLINE     0     0     0"
40  echo "errors: No known data errors"
41)`
42expect_ok ${ZPOOL} destroy ${name0}
43expect_fl ${ZPOOL} status -x ${name0}
44
45expect_ok ${ZPOOL} create ${name0} ${file0}
46expect_ok ${ZPOOL} add ${name0} ${file1}
47exp=`(
48  echo "  pool: ${name0}"
49  echo " state: ONLINE"
50  echo " scrub: none requested"
51  echo "config:"
52  echo "	NAME        STATE   READ WRITE CKSUM"
53  echo "	${name0}    ONLINE     0     0     0"
54  echo "	  ${file0}  ONLINE     0     0     0"
55  echo "	  ${file1}  ONLINE     0     0     0"
56  echo "errors: No known data errors"
57)`
58expect "${exp}" ${ZPOOL} status ${name0}
59expect_ok ${ZPOOL} destroy ${name0}
60expect_fl ${ZPOOL} status -x ${name0}
61
62expect_ok ${ZPOOL} create ${name0} ${file0} ${file1} ${file2}
63expect_ok ${ZPOOL} add ${name0} ${file3} ${file4}
64exp=`(
65  echo "  pool: ${name0}"
66  echo " state: ONLINE"
67  echo " scrub: none requested"
68  echo "config:"
69  echo "	NAME        STATE   READ WRITE CKSUM"
70  echo "	${name0}    ONLINE     0     0     0"
71  echo "	  ${file0}  ONLINE     0     0     0"
72  echo "	  ${file1}  ONLINE     0     0     0"
73  echo "	  ${file2}  ONLINE     0     0     0"
74  echo "	  ${file3}  ONLINE     0     0     0"
75  echo "	  ${file4}  ONLINE     0     0     0"
76  echo "errors: No known data errors"
77)`
78expect "${exp}" ${ZPOOL} status ${name0}
79expect_ok ${ZPOOL} destroy ${name0}
80expect_fl ${ZPOOL} status -x ${name0}
81
82expect_ok ${ZPOOL} create ${name0} mirror ${file0} ${file1}
83expect_ok ${ZPOOL} add ${name0} mirror ${file2} ${file3}
84exp=`(
85  echo "  pool: ${name0}"
86  echo " state: ONLINE"
87  echo " scrub: none requested"
88  echo "config:"
89  echo "	NAME          STATE   READ WRITE CKSUM"
90  echo "	${name0}      ONLINE     0     0     0"
91  echo "	  mirror      ONLINE     0     0     0"
92  echo "	    ${file0}  ONLINE     0     0     0"
93  echo "	    ${file1}  ONLINE     0     0     0"
94  echo "	  mirror      ONLINE     0     0     0"
95  echo "	    ${file2}  ONLINE     0     0     0"
96  echo "	    ${file3}  ONLINE     0     0     0"
97  echo "errors: No known data errors"
98)`
99expect "${exp}" ${ZPOOL} status ${name0}
100expect_ok ${ZPOOL} destroy ${name0}
101expect_fl ${ZPOOL} status -x ${name0}
102
103expect_ok ${ZPOOL} create ${name0} raidz1 ${file0} ${file1} ${file2}
104expect_ok ${ZPOOL} add ${name0} raidz1 ${file3} ${file4} ${file5}
105exp=`(
106  echo "  pool: ${name0}"
107  echo " state: ONLINE"
108  echo " scrub: none requested"
109  echo "config:"
110  echo "	NAME          STATE   READ WRITE CKSUM"
111  echo "	${name0}      ONLINE     0     0     0"
112  echo "	  raidz1      ONLINE     0     0     0"
113  echo "	    ${file0}  ONLINE     0     0     0"
114  echo "	    ${file1}  ONLINE     0     0     0"
115  echo "	    ${file2}  ONLINE     0     0     0"
116  echo "	  raidz1      ONLINE     0     0     0"
117  echo "	    ${file3}  ONLINE     0     0     0"
118  echo "	    ${file4}  ONLINE     0     0     0"
119  echo "	    ${file5}  ONLINE     0     0     0"
120  echo "errors: No known data errors"
121)`
122expect "${exp}" ${ZPOOL} status ${name0}
123expect_ok ${ZPOOL} destroy ${name0}
124expect_fl ${ZPOOL} status -x ${name0}
125
126expect_ok ${ZPOOL} create ${name0} raidz2 ${file0} ${file1} ${file2} ${file3}
127expect_ok ${ZPOOL} add ${name0} raidz2 ${file4} ${file5} ${file6} ${file7}
128exp=`(
129  echo "  pool: ${name0}"
130  echo " state: ONLINE"
131  echo " scrub: none requested"
132  echo "config:"
133  echo "	NAME          STATE   READ WRITE CKSUM"
134  echo "	${name0}      ONLINE     0     0     0"
135  echo "	  raidz2      ONLINE     0     0     0"
136  echo "	    ${file0}  ONLINE     0     0     0"
137  echo "	    ${file1}  ONLINE     0     0     0"
138  echo "	    ${file2}  ONLINE     0     0     0"
139  echo "	    ${file3}  ONLINE     0     0     0"
140  echo "	  raidz2      ONLINE     0     0     0"
141  echo "	    ${file4}  ONLINE     0     0     0"
142  echo "	    ${file5}  ONLINE     0     0     0"
143  echo "	    ${file6}  ONLINE     0     0     0"
144  echo "	    ${file7}  ONLINE     0     0     0"
145  echo "errors: No known data errors"
146)`
147expect "${exp}" ${ZPOOL} status ${name0}
148expect_ok ${ZPOOL} destroy ${name0}
149expect_fl ${ZPOOL} status -x ${name0}
150
151expect_ok ${ZPOOL} create ${name0} mirror ${file0} ${file1}
152expect_ok ${ZPOOL} add ${name0} spare ${file2} ${file3}
153exp=`(
154  echo "  pool: ${name0}"
155  echo " state: ONLINE"
156  echo " scrub: none requested"
157  echo "config:"
158  echo "	NAME          STATE   READ WRITE CKSUM"
159  echo "	${name0}      ONLINE     0     0     0"
160  echo "	  mirror      ONLINE     0     0     0"
161  echo "	    ${file0}  ONLINE     0     0     0"
162  echo "	    ${file1}  ONLINE     0     0     0"
163  echo "	spares"
164  echo "	  ${file2}    AVAIL"
165  echo "	  ${file3}    AVAIL"
166  echo "errors: No known data errors"
167)`
168expect "${exp}" ${ZPOOL} status ${name0}
169expect_ok ${ZPOOL} destroy ${name0}
170expect_fl ${ZPOOL} status -x ${name0}
171
172expect_ok ${ZPOOL} create ${name0} mirror ${file0} ${file1}
173expect_ok ${ZPOOL} add ${name0} log ${file2} ${file3}
174exp=`(
175  echo "  pool: ${name0}"
176  echo " state: ONLINE"
177  echo " scrub: none requested"
178  echo "config:"
179  echo "	NAME          STATE   READ WRITE CKSUM"
180  echo "	${name0}      ONLINE     0     0     0"
181  echo "	  mirror      ONLINE     0     0     0"
182  echo "	    ${file0}  ONLINE     0     0     0"
183  echo "	    ${file1}  ONLINE     0     0     0"
184  echo "	logs          ONLINE     0     0     0"
185  echo "	  ${file2}    ONLINE     0     0     0"
186  echo "	  ${file3}    ONLINE     0     0     0"
187  echo "errors: No known data errors"
188)`
189expect "${exp}" ${ZPOOL} status ${name0}
190expect_ok ${ZPOOL} destroy ${name0}
191expect_fl ${ZPOOL} status -x ${name0}
192
193expect_ok ${ZPOOL} create ${name0} mirror ${file0} ${file1}
194expect_ok ${ZPOOL} add ${name0} log mirror ${file2} ${file3}
195exp=`(
196  echo "  pool: ${name0}"
197  echo " state: ONLINE"
198  echo " scrub: none requested"
199  echo "config:"
200  echo "	NAME          STATE   READ WRITE CKSUM"
201  echo "	${name0}      ONLINE     0     0     0"
202  echo "	  mirror      ONLINE     0     0     0"
203  echo "	    ${file0}  ONLINE     0     0     0"
204  echo "	    ${file1}  ONLINE     0     0     0"
205  echo "	logs          ONLINE     0     0     0"
206  echo "	  mirror      ONLINE     0     0     0"
207  echo "	    ${file2}  ONLINE     0     0     0"
208  echo "	    ${file3}  ONLINE     0     0     0"
209  echo "errors: No known data errors"
210)`
211expect "${exp}" ${ZPOOL} status ${name0}
212expect_ok ${ZPOOL} destroy ${name0}
213expect_fl ${ZPOOL} status -x ${name0}
214
215expect_ok ${ZPOOL} create ${name0} mirror ${file0} ${file1}
216expect_fl ${ZPOOL} add ${name0} cache ${file2} ${file3}
217exp=`(
218  echo "  pool: ${name0}"
219  echo " state: ONLINE"
220  echo " scrub: none requested"
221  echo "config:"
222  echo "	NAME          STATE   READ WRITE CKSUM"
223  echo "	${name0}      ONLINE     0     0     0"
224  echo "	  mirror      ONLINE     0     0     0"
225  echo "	    ${file0}  ONLINE     0     0     0"
226  echo "	    ${file1}  ONLINE     0     0     0"
227  echo "errors: No known data errors"
228)`
229expect "${exp}" ${ZPOOL} status ${name0}
230expect_ok ${ZPOOL} destroy ${name0}
231expect_fl ${ZPOOL} status -x ${name0}
232
233files_destroy
234