1185029Spjd#!/bin/sh
2185029Spjd# $FreeBSD$
3185029Spjd
4185029Spjddir=`dirname $0`
5185029Spjd. ${dir}/../../misc.sh
6185029Spjd
7185029Spjdecho "1..146"
8185029Spjd
9185029Spjddisks_create 7
10185029Spjdnames_create 2
11185029Spjd
12185029Spjdexpect_ok ${ZPOOL} create ${name0} ${disk0}
13185029Spjdexpect_ok ${ZPOOL} export ${name0}
14185029Spjdexp=`(
15185029Spjd  echo "invalid vdev specification"
16185029Spjd  echo "use '-f' to override the following errors:"
17185029Spjd  echo "${fdisk0} is part of exported pool '${name0}'"
18185029Spjd)`
19185029Spjdexpect "${exp}" ${ZPOOL} create ${name1} ${disk0}
20185029Spjdexpect_fl ${ZPOOL} status -x ${name1}
21185029Spjdexpect_ok ${ZPOOL} create -f ${name1} ${disk0}
22185029Spjdexpect_ok ${ZPOOL} status -x ${name1}
23185029Spjdexpect_ok ${ZPOOL} destroy ${name1}
24185029Spjd
25185029Spjdexpect_ok ${ZPOOL} create ${name0} mirror ${disk0} ${disk1}
26185029Spjdexpect_ok ${ZPOOL} export ${name0}
27185029Spjdexp=`(
28185029Spjd  echo "invalid vdev specification"
29185029Spjd  echo "use '-f' to override the following errors:"
30185029Spjd  echo "${fdisk0} is part of exported pool '${name0}'"
31185029Spjd)`
32185029Spjdexpect "${exp}" ${ZPOOL} create ${name1} mirror ${disk0} ${disk1}
33185029Spjdexpect_fl ${ZPOOL} status -x ${name1}
34185029Spjdexpect_ok ${ZPOOL} create -f ${name1} mirror ${disk0} ${disk1}
35185029Spjdexpect_ok ${ZPOOL} status -x ${name1}
36185029Spjdexpect_ok ${ZPOOL} destroy ${name1}
37185029Spjd
38185029Spjdexpect_ok ${ZPOOL} create ${name0} raidz1 ${disk0} ${disk1} ${disk2}
39185029Spjdexpect_ok ${ZPOOL} export ${name0}
40185029Spjdexp=`(
41185029Spjd  echo "invalid vdev specification"
42185029Spjd  echo "use '-f' to override the following errors:"
43185029Spjd  echo "${fdisk0} is part of exported pool '${name0}'"
44185029Spjd)`
45185029Spjdexpect "${exp}" ${ZPOOL} create ${name1} raidz1 ${disk0} ${disk1} ${disk2}
46185029Spjdexpect_fl ${ZPOOL} status -x ${name1}
47185029Spjdexpect_ok ${ZPOOL} create -f ${name1} raidz1 ${disk0} ${disk1} ${disk2}
48185029Spjdexpect_ok ${ZPOOL} status -x ${name1}
49185029Spjdexpect_ok ${ZPOOL} destroy ${name1}
50185029Spjd
51185029Spjdexpect_ok ${ZPOOL} create ${name0} raidz2 ${disk0} ${disk1} ${disk2} ${disk3}
52185029Spjdexpect_ok ${ZPOOL} export ${name0}
53185029Spjdexp=`(
54185029Spjd  echo "invalid vdev specification"
55185029Spjd  echo "use '-f' to override the following errors:"
56185029Spjd  echo "${fdisk0} is part of exported pool '${name0}'"
57185029Spjd)`
58185029Spjdexpect "${exp}" ${ZPOOL} create ${name1} raidz2 ${disk0} ${disk1} ${disk2} ${disk3}
59185029Spjdexpect_fl ${ZPOOL} status -x ${name1}
60185029Spjdexpect_ok ${ZPOOL} create -f ${name1} raidz2 ${disk0} ${disk1} ${disk2} ${disk3}
61185029Spjdexpect_ok ${ZPOOL} status -x ${name1}
62185029Spjdexpect_ok ${ZPOOL} destroy ${name1}
63185029Spjd
64185029Spjdexpect_ok ${ZPOOL} create ${name0} ${disk0} log ${disk1}
65185029Spjdexpect_ok ${ZPOOL} export ${name0}
66185029Spjdexp=`(
67185029Spjd  echo "invalid vdev specification"
68185029Spjd  echo "use '-f' to override the following errors:"
69185029Spjd  echo "${fdisk0} is part of exported pool '${name0}'"
70185029Spjd)`
71185029Spjdexpect "${exp}" ${ZPOOL} create ${name1} ${disk0} log ${disk1}
72185029Spjdexpect_fl ${ZPOOL} status -x ${name1}
73185029Spjdexpect_ok ${ZPOOL} create -f ${name1} ${disk0} log ${disk1}
74185029Spjdexpect_ok ${ZPOOL} status -x ${name1}
75185029Spjdexpect_ok ${ZPOOL} destroy ${name1}
76185029Spjd
77185029Spjdexpect_ok ${ZPOOL} create ${name0} ${disk0} log mirror ${disk1} ${disk2}
78185029Spjdexpect_ok ${ZPOOL} export ${name0}
79185029Spjdexp=`(
80185029Spjd  echo "invalid vdev specification"
81185029Spjd  echo "use '-f' to override the following errors:"
82185029Spjd  echo "${fdisk0} is part of exported pool '${name0}'"
83185029Spjd)`
84185029Spjdexpect "${exp}" ${ZPOOL} create ${name1} ${disk0} log mirror ${disk1} ${disk2}
85185029Spjdexpect_fl ${ZPOOL} status -x ${name1}
86185029Spjdexpect_ok ${ZPOOL} create -f ${name1} ${disk0} log mirror ${disk1} ${disk2}
87185029Spjdexpect_ok ${ZPOOL} status -x ${name1}
88185029Spjdexpect_ok ${ZPOOL} destroy ${name1}
89185029Spjd
90185029Spjdexpect_ok ${ZPOOL} create ${name0} ${disk0} cache ${disk1}
91185029Spjdexpect_ok ${ZPOOL} export ${name0}
92185029Spjdexp=`(
93185029Spjd  echo "invalid vdev specification"
94185029Spjd  echo "use '-f' to override the following errors:"
95185029Spjd  echo "${fdisk0} is part of exported pool '${name0}'"
96185029Spjd)`
97185029Spjdexpect "${exp}" ${ZPOOL} create ${name1} ${disk0} cache ${disk1}
98185029Spjdexpect_fl ${ZPOOL} status -x ${name1}
99185029Spjdexpect_ok ${ZPOOL} create -f ${name1} ${disk0} cache ${disk1}
100185029Spjdexpect_ok ${ZPOOL} status -x ${name1}
101185029Spjdexpect_ok ${ZPOOL} destroy ${name1}
102185029Spjd
103185029Spjdexpect_ok ${ZPOOL} create ${name0} mirror ${disk0} ${disk1}
104185029Spjdexpect_ok ${ZPOOL} offline ${name0} ${disk1}
105185029Spjdexpect_ok ${ZPOOL} export ${name0}
106185029Spjdexp=`(
107185029Spjd  echo "invalid vdev specification"
108185029Spjd  echo "use '-f' to override the following errors:"
109185029Spjd  echo "${fdisk1} is part of potentially active pool '${name0}'"
110185029Spjd)`
111185029Spjdexpect "${exp}" ${ZPOOL} create ${name1} mirror ${disk1} ${disk2}
112185029Spjdexpect_fl ${ZPOOL} status -x ${name1}
113185029Spjdexpect_ok ${ZPOOL} create -f ${name1} mirror ${disk1} ${disk2}
114185029Spjdexpect_ok ${ZPOOL} status -x ${name1}
115185029Spjdexpect_ok ${ZPOOL} destroy ${name1}
116185029Spjdexpect_ok ${ZPOOL} import ${name0}
117185029Spjdexpect_ok ${ZPOOL} destroy ${name0}
118185029Spjd
119185029Spjdexpect_ok ${ZPOOL} create ${name0} raidz1 ${disk0} ${disk1} ${disk2}
120185029Spjdexpect_ok ${ZPOOL} offline ${name0} ${disk2}
121185029Spjdexpect_ok ${ZPOOL} export ${name0}
122185029Spjdexp=`(
123185029Spjd  echo "invalid vdev specification"
124185029Spjd  echo "use '-f' to override the following errors:"
125185029Spjd  echo "${fdisk2} is part of potentially active pool '${name0}'"
126185029Spjd)`
127185029Spjdexpect "${exp}" ${ZPOOL} create ${name1} raidz1 ${disk2} ${disk3} ${disk4}
128185029Spjdexpect_fl ${ZPOOL} status -x ${name1}
129185029Spjdexpect_ok ${ZPOOL} create -f ${name1} raidz1 ${disk2} ${disk3} ${disk4}
130185029Spjdexpect_ok ${ZPOOL} status -x ${name1}
131185029Spjdexpect_ok ${ZPOOL} destroy ${name1}
132185029Spjdexpect_ok ${ZPOOL} import ${name0}
133185029Spjdexpect_ok ${ZPOOL} destroy ${name0}
134185029Spjd
135185029Spjdexpect_ok ${ZPOOL} create ${name0} raidz2 ${disk0} ${disk1} ${disk2} ${disk3}
136185029Spjdexpect_ok ${ZPOOL} offline ${name0} ${disk3}
137185029Spjdexpect_ok ${ZPOOL} export ${name0}
138185029Spjdexp=`(
139185029Spjd  echo "invalid vdev specification"
140185029Spjd  echo "use '-f' to override the following errors:"
141185029Spjd  echo "${fdisk3} is part of potentially active pool '${name0}'"
142185029Spjd)`
143185029Spjdexpect "${exp}" ${ZPOOL} create ${name1} raidz2 ${disk3} ${disk4} ${disk5} ${disk6}
144185029Spjdexpect_fl ${ZPOOL} status -x ${name1}
145185029Spjdexpect_ok ${ZPOOL} create -f ${name1} raidz2 ${disk3} ${disk4} ${disk5} ${disk6}
146185029Spjdexpect_ok ${ZPOOL} status -x ${name1}
147185029Spjdexpect_ok ${ZPOOL} destroy ${name1}
148185029Spjdexpect_ok ${ZPOOL} import ${name0}
149185029Spjdexpect_ok ${ZPOOL} destroy ${name0}
150185029Spjd
151185029Spjdexpect_ok ${ZPOOL} create ${name0} ${disk0} log mirror ${disk1} ${disk2}
152185029Spjdexpect_ok ${ZPOOL} offline ${name0} ${disk2}
153185029Spjdexpect_ok ${ZPOOL} export ${name0}
154185029Spjdexp=`(
155185029Spjd  echo "invalid vdev specification"
156185029Spjd  echo "use '-f' to override the following errors:"
157185029Spjd  echo "${fdisk2} is part of potentially active pool '${name0}'"
158185029Spjd)`
159185029Spjdexpect "${exp}" ${ZPOOL} create ${name1} ${disk3} log mirror ${disk2} ${disk4}
160185029Spjdexpect_fl ${ZPOOL} status -x ${name1}
161185029Spjdexpect_ok ${ZPOOL} create -f ${name1} ${disk3} log mirror ${disk2} ${disk4}
162185029Spjdexpect_ok ${ZPOOL} status -x ${name1}
163185029Spjdexpect_ok ${ZPOOL} destroy ${name1}
164185029Spjdexpect_ok ${ZPOOL} import ${name0}
165185029Spjdexpect_ok ${ZPOOL} destroy ${name0}
166185029Spjd
167185029Spjdexpect_ok ${ZPOOL} create ${name0} ${disk0} cache ${disk1}
168185029Spjdexpect_ok ${ZPOOL} offline ${name0} ${disk1}
169185029Spjdexpect_ok ${ZPOOL} export ${name0}
170185029Spjdexp=`(
171185029Spjd  echo "invalid vdev specification"
172185029Spjd  echo "use '-f' to override the following errors:"
173185029Spjd  echo "${fdisk1} is part of potentially active pool '${name0}'"
174185029Spjd)`
175185029Spjdadd_msg="# TODO It shouldn't be possible to use offlined cache vdev."
176185029Spjdexpect "${exp}" ${ZPOOL} create ${name1} ${disk2} cache ${disk1}
177185029Spjdexpect_fl ${ZPOOL} status -x ${name1}
178185029Spjdexpect_ok ${ZPOOL} create -f ${name1} ${disk2} cache ${disk1}
179185029Spjdadd_msg=""
180185029Spjdexpect_ok ${ZPOOL} status -x ${name1}
181185029Spjdexpect_ok ${ZPOOL} destroy ${name1}
182185029Spjdexpect_ok ${ZPOOL} import ${name0}
183185029Spjdexpect_ok ${ZPOOL} destroy ${name0}
184185029Spjd
185185029Spjdexpect_ok ${ZPOOL} create ${name0} mirror ${disk0} ${disk1}
186185029Spjdexpect_ok ${ZPOOL} offline ${name0} ${disk1}
187185029Spjdexp=`(
188185029Spjd  echo "invalid vdev specification"
189185029Spjd  echo "use '-f' to override the following errors:"
190185029Spjd  echo "${fdisk1} is part of active pool '${name0}'"
191185029Spjd)`
192185029Spjdexpect "${exp}" ${ZPOOL} create ${name1} mirror ${disk1} ${disk2}
193185029Spjdexpect_fl ${ZPOOL} status -x ${name1}
194185029Spjdexp=`(
195185029Spjd  echo "invalid vdev specification"
196185029Spjd  echo "the following errors must be manually repaired:"
197185029Spjd  echo "${fdisk1} is part of active pool '${name0}'"
198185029Spjd)`
199185029Spjdexpect "${exp}" ${ZPOOL} create -f ${name1} mirror ${disk1} ${disk2}
200185029Spjdexpect_fl ${ZPOOL} status -x ${name1}
201185029Spjdexpect_ok ${ZPOOL} online ${name0} ${disk1}
202185029Spjdexpect_ok ${ZPOOL} destroy ${name0}
203185029Spjd
204185029Spjdexpect_ok ${ZPOOL} create ${name0} raidz1 ${disk0} ${disk1} ${disk2}
205185029Spjdexpect_ok ${ZPOOL} offline ${name0} ${disk2}
206185029Spjdexp=`(
207185029Spjd  echo "invalid vdev specification"
208185029Spjd  echo "use '-f' to override the following errors:"
209185029Spjd  echo "${fdisk2} is part of active pool '${name0}'"
210185029Spjd)`
211185029Spjdexpect "${exp}" ${ZPOOL} create ${name1} raidz1 ${disk2} ${disk3} ${disk4}
212185029Spjdexpect_fl ${ZPOOL} status -x ${name1}
213185029Spjdexp=`(
214185029Spjd  echo "invalid vdev specification"
215185029Spjd  echo "the following errors must be manually repaired:"
216185029Spjd  echo "${fdisk2} is part of active pool '${name0}'"
217185029Spjd)`
218185029Spjdexpect "${exp}" ${ZPOOL} create -f ${name1} raidz1 ${disk2} ${disk3} ${disk4}
219185029Spjdexpect_fl ${ZPOOL} status -x ${name1}
220185029Spjdexpect_ok ${ZPOOL} online ${name0} ${disk2}
221185029Spjdexpect_ok ${ZPOOL} destroy ${name0}
222185029Spjd
223185029Spjdexpect_ok ${ZPOOL} create ${name0} raidz2 ${disk0} ${disk1} ${disk2} ${disk3}
224185029Spjdexpect_ok ${ZPOOL} offline ${name0} ${disk3}
225185029Spjdexp=`(
226185029Spjd  echo "invalid vdev specification"
227185029Spjd  echo "use '-f' to override the following errors:"
228185029Spjd  echo "${fdisk3} is part of active pool '${name0}'"
229185029Spjd)`
230185029Spjdexpect "${exp}" ${ZPOOL} create ${name1} raidz2 ${disk3} ${disk4} ${disk5} ${disk6}
231185029Spjdexpect_fl ${ZPOOL} status -x ${name1}
232185029Spjdexp=`(
233185029Spjd  echo "invalid vdev specification"
234185029Spjd  echo "the following errors must be manually repaired:"
235185029Spjd  echo "${fdisk3} is part of active pool '${name0}'"
236185029Spjd)`
237185029Spjdexpect "${exp}" ${ZPOOL} create -f ${name1} raidz2 ${disk3} ${disk4} ${disk5} ${disk6}
238185029Spjdexpect_fl ${ZPOOL} status -x ${name1}
239185029Spjdexpect_ok ${ZPOOL} online ${name0} ${disk3}
240185029Spjdexpect_ok ${ZPOOL} destroy ${name0}
241185029Spjd
242185029Spjdexpect_ok ${ZPOOL} create ${name0} ${disk0} log mirror ${disk1} ${disk2}
243185029Spjdexpect_ok ${ZPOOL} offline ${name0} ${disk2}
244185029Spjdexp=`(
245185029Spjd  echo "invalid vdev specification"
246185029Spjd  echo "use '-f' to override the following errors:"
247185029Spjd  echo "${fdisk2} is part of active pool '${name0}'"
248185029Spjd)`
249185029Spjdexpect "${exp}" ${ZPOOL} create ${name1} ${disk3} log mirror ${disk2} ${disk4}
250185029Spjdexpect_fl ${ZPOOL} status -x ${name1}
251185029Spjdexp=`(
252185029Spjd  echo "invalid vdev specification"
253185029Spjd  echo "the following errors must be manually repaired:"
254185029Spjd  echo "${fdisk2} is part of active pool '${name0}'"
255185029Spjd)`
256185029Spjdexpect "${exp}" ${ZPOOL} create -f ${name1} ${disk3} log mirror ${disk2} ${disk4}
257185029Spjdexpect_fl ${ZPOOL} status -x ${name1}
258185029Spjdexpect_ok ${ZPOOL} online ${name0} ${disk2}
259185029Spjdexpect_ok ${ZPOOL} destroy ${name0}
260185029Spjd
261185029Spjdexpect_ok ${ZPOOL} create ${name0} ${disk0} cache ${disk1}
262185029Spjdexpect_ok ${ZPOOL} offline ${name0} ${disk1}
263185029Spjdexp=`(
264185029Spjd  echo "invalid vdev specification"
265185029Spjd  echo "use '-f' to override the following errors:"
266185029Spjd  echo "${fdisk1} is part of active pool '${name0}'"
267185029Spjd)`
268185029Spjdadd_msg="# TODO It reports that ${fdisk1} is part of unknown pool."
269185029Spjdexpect "${exp}" ${ZPOOL} create ${name1} ${disk2} cache ${disk1}
270185029Spjdadd_msg=""
271185029Spjdexpect_fl ${ZPOOL} status -x ${name1}
272185029Spjdexp=`(
273185029Spjd  echo "invalid vdev specification"
274185029Spjd  echo "the following errors must be manually repaired:"
275185029Spjd  echo "${fdisk1} is part of active pool '${name0}'"
276185029Spjd)`
277185029Spjdadd_msg="# TODO It reports that ${fdisk1} is used twice."
278185029Spjdexpect "${exp}" ${ZPOOL} create -f ${name1} ${disk2} cache ${disk1}
279185029Spjdadd_msg=""
280185029Spjdexpect_fl ${ZPOOL} status -x ${name1}
281185029Spjdexpect_ok ${ZPOOL} online ${name0} ${disk1}
282185029Spjdexpect_ok ${ZPOOL} destroy ${name0}
283185029Spjd
284185029Spjdexpect_ok ${ZPOOL} create ${name0} ${disk0}
285185029Spjdexpect_ok ${ZPOOL} export ${name0}
286185029Spjdexp=`(
287185029Spjd  echo "invalid vdev specification"
288185029Spjd  echo "use '-f' to override the following errors:"
289185029Spjd  echo "${fdisk0} is part of exported pool '${name0}'"
290185029Spjd)`
291185029Spjdexpect "${exp}" ${ZPOOL} create ${name0} ${disk0}
292185029Spjdexpect_fl ${ZPOOL} status -x ${name0}
293185029Spjdexpect_ok ${ZPOOL} create -f ${name0} ${disk0}
294185029Spjdexpect_ok ${ZPOOL} status -x ${name0}
295185029Spjdexpect_ok ${ZPOOL} destroy ${name0}
296185029Spjd
297185029Spjddisks_destroy
298