1185029Spjd#!/bin/sh
2185029Spjd# $FreeBSD$
3185029Spjd
4185029Spjddir=`dirname $0`
5185029Spjd. ${dir}/../../misc.sh
6185029Spjd
7185029Spjdecho "1..34"
8185029Spjd
9185029Spjddisks_create 5
10185029Spjdnames_create 1
11185029Spjd
12185029Spjdexpect_ok ${ZPOOL} create ${name0} ${disk0}
13185029Spjdexpect_ok ${ZPOOL} attach ${name0} ${disk0} ${disk1}
14185029Spjdwait_for_resilver ${name0}
15185029Spjdexp=`(
16185029Spjd  echo "  pool: ${name0}"
17185029Spjd  echo " state: ONLINE"
18185029Spjd  echo " scrub: resilver completed after [0-9]+h[0-9]+m with 0 errors on .*"
19185029Spjd  echo "config:"
20185029Spjd  echo "	NAME          STATE   READ WRITE CKSUM"
21185029Spjd  echo "	${name0}      ONLINE     0     0     0"
22185029Spjd  echo "	  mirror      ONLINE     0     0     0"
23185029Spjd  echo "	    ${disk0}  ONLINE     0     0     0  [0-9.]+[A-Z] resilvered"
24185029Spjd  echo "	    ${disk1}  ONLINE     0     0     0  [0-9.]+[A-Z] resilvered"
25185029Spjd  echo "errors: No known data errors"
26185029Spjd)`
27185029Spjdexpect "${exp}" ${ZPOOL} status ${name0}
28185029Spjdexpect_ok ${ZPOOL} attach ${name0} ${disk0} ${disk2}
29185029Spjdwait_for_resilver ${name0}
30185029Spjdexp=`(
31185029Spjd  echo "  pool: ${name0}"
32185029Spjd  echo " state: ONLINE"
33185029Spjd  echo " scrub: resilver completed after [0-9]+h[0-9]+m with 0 errors on .*"
34185029Spjd  echo "config:"
35185029Spjd  echo "	NAME          STATE   READ WRITE CKSUM"
36185029Spjd  echo "	${name0}      ONLINE     0     0     0"
37185029Spjd  echo "	  mirror      ONLINE     0     0     0"
38185029Spjd  echo "	    ${disk0}  ONLINE     0     0     0  [0-9.]+[A-Z] resilvered"
39185029Spjd  echo "	    ${disk1}  ONLINE     0     0     0  [0-9.]+[A-Z] resilvered"
40185029Spjd  echo "	    ${disk2}  ONLINE     0     0     0  [0-9.]+[A-Z] resilvered"
41185029Spjd  echo "errors: No known data errors"
42185029Spjd)`
43185029Spjdexpect "${exp}" ${ZPOOL} status ${name0}
44185029Spjdexpect_ok ${ZPOOL} attach ${name0} ${disk2} ${disk3}
45185029Spjdwait_for_resilver ${name0}
46185029Spjdexp=`(
47185029Spjd  echo "  pool: ${name0}"
48185029Spjd  echo " state: ONLINE"
49185029Spjd  echo " scrub: resilver completed after [0-9]+h[0-9]+m with 0 errors on .*"
50185029Spjd  echo "config:"
51185029Spjd  echo "	NAME          STATE   READ WRITE CKSUM"
52185029Spjd  echo "	${name0}      ONLINE     0     0     0"
53185029Spjd  echo "	  mirror      ONLINE     0     0     0"
54185029Spjd  echo "	    ${disk0}  ONLINE     0     0     0  [0-9.]+[A-Z] resilvered"
55185029Spjd  echo "	    ${disk1}  ONLINE     0     0     0  [0-9.]+[A-Z] resilvered"
56185029Spjd  echo "	    ${disk2}  ONLINE     0     0     0  [0-9.]+[A-Z] resilvered"
57185029Spjd  echo "	    ${disk3}  ONLINE     0     0     0  [0-9.]+[A-Z] resilvered"
58185029Spjd  echo "errors: No known data errors"
59185029Spjd)`
60185029Spjdexpect "${exp}" ${ZPOOL} status ${name0}
61185029Spjdexpect_ok ${ZPOOL} detach ${name0} ${disk0}
62185029Spjdexp=`(
63185029Spjd  echo "  pool: ${name0}"
64185029Spjd  echo " state: ONLINE"
65185029Spjd  echo " scrub: resilver completed after [0-9]+h[0-9]+m with 0 errors on .*"
66185029Spjd  echo "config:"
67185029Spjd  echo "	NAME          STATE   READ WRITE CKSUM"
68185029Spjd  echo "	${name0}      ONLINE     0     0     0"
69185029Spjd  echo "	  mirror      ONLINE     0     0     0"
70185029Spjd  echo "	    ${disk1}  ONLINE     0     0     0  [0-9.]+[A-Z] resilvered"
71185029Spjd  echo "	    ${disk2}  ONLINE     0     0     0  [0-9.]+[A-Z] resilvered"
72185029Spjd  echo "	    ${disk3}  ONLINE     0     0     0  [0-9.]+[A-Z] resilvered"
73185029Spjd  echo "errors: No known data errors"
74185029Spjd)`
75185029Spjdexpect "${exp}" ${ZPOOL} status ${name0}
76185029Spjdexpect_ok ${ZPOOL} detach ${name0} ${disk2}
77185029Spjdexp=`(
78185029Spjd  echo "  pool: ${name0}"
79185029Spjd  echo " state: ONLINE"
80185029Spjd  echo " scrub: resilver completed after [0-9]+h[0-9]+m with 0 errors on .*"
81185029Spjd  echo "config:"
82185029Spjd  echo "	NAME          STATE   READ WRITE CKSUM"
83185029Spjd  echo "	${name0}      ONLINE     0     0     0"
84185029Spjd  echo "	  mirror      ONLINE     0     0     0"
85185029Spjd  echo "	    ${disk1}  ONLINE     0     0     0  [0-9.]+[A-Z] resilvered"
86185029Spjd  echo "	    ${disk3}  ONLINE     0     0     0  [0-9.]+[A-Z] resilvered"
87185029Spjd  echo "errors: No known data errors"
88185029Spjd)`
89185029Spjdexpect "${exp}" ${ZPOOL} status ${name0}
90185029Spjdexpect_ok ${ZPOOL} detach ${name0} ${disk3}
91185029Spjdexp=`(
92185029Spjd  echo "  pool: ${name0}"
93185029Spjd  echo " state: ONLINE"
94185029Spjd  echo " scrub: resilver completed after [0-9]+h[0-9]+m with 0 errors on .*"
95185029Spjd  echo "config:"
96185029Spjd  echo "	NAME        STATE   READ WRITE CKSUM"
97185029Spjd  echo "	${name0}    ONLINE     0     0     0"
98185029Spjd  echo "	  ${disk1}  ONLINE     0     0     0  [0-9.]+[A-Z] resilvered"
99185029Spjd  echo "errors: No known data errors"
100185029Spjd)`
101185029Spjdexpect "${exp}" ${ZPOOL} status ${name0}
102185029Spjdexpect_fl ${ZPOOL} detach ${name0} ${disk1}
103185029Spjdexp=`(
104185029Spjd  echo "  pool: ${name0}"
105185029Spjd  echo " state: ONLINE"
106185029Spjd  echo " scrub: resilver completed after [0-9]+h[0-9]+m with 0 errors on .*"
107185029Spjd  echo "config:"
108185029Spjd  echo "	NAME        STATE   READ WRITE CKSUM"
109185029Spjd  echo "	${name0}    ONLINE     0     0     0"
110185029Spjd  echo "	  ${disk1}  ONLINE     0     0     0  [0-9.]+[A-Z] resilvered"
111185029Spjd  echo "errors: No known data errors"
112185029Spjd)`
113185029Spjdexpect "${exp}" ${ZPOOL} status ${name0}
114185029Spjdexpect_ok ${ZPOOL} destroy ${name0}
115185029Spjdexpect_fl ${ZPOOL} status -x ${name0}
116185029Spjd
117185029Spjdexpect_ok ${ZPOOL} create ${name0} ${disk0}
118185029Spjdexpect_ok ${ZPOOL} attach ${name0} ${disk0} ${disk1}
119185029Spjdwait_for_resilver ${name0}
120185029Spjdexp=`(
121185029Spjd  echo "  pool: ${name0}"
122185029Spjd  echo " state: ONLINE"
123185029Spjd  echo " scrub: resilver completed after [0-9]+h[0-9]+m with 0 errors on .*"
124185029Spjd  echo "config:"
125185029Spjd  echo "	NAME          STATE   READ WRITE CKSUM"
126185029Spjd  echo "	${name0}      ONLINE     0     0     0"
127185029Spjd  echo "	  mirror      ONLINE     0     0     0"
128185029Spjd  echo "	    ${disk0}  ONLINE     0     0     0  [0-9.]+[A-Z] resilvered"
129185029Spjd  echo "	    ${disk1}  ONLINE     0     0     0  [0-9.]+[A-Z] resilvered"
130185029Spjd  echo "errors: No known data errors"
131185029Spjd)`
132185029Spjdexpect "${exp}" ${ZPOOL} status ${name0}
133185029Spjdexpect_ok ${ZPOOL} export ${name0}
134185029Spjdexpect_ok ${ZPOOL} import ${import_flags} ${name0}
135185029Spjdexp=`(
136185029Spjd  echo "  pool: ${name0}"
137185029Spjd  echo " state: ONLINE"
138185029Spjd  echo " scrub: none requested"
139185029Spjd  echo "config:"
140185029Spjd  echo "	NAME          STATE   READ WRITE CKSUM"
141185029Spjd  echo "	${name0}      ONLINE     0     0     0"
142185029Spjd  echo "	  mirror      ONLINE     0     0     0"
143185029Spjd  echo "	    ${disk0}  ONLINE     0     0     0"
144185029Spjd  echo "	    ${disk1}  ONLINE     0     0     0"
145185029Spjd  echo "errors: No known data errors"
146185029Spjd)`
147185029Spjdexpect "${exp}" ${ZPOOL} status ${name0}
148185029Spjdexpect_ok ${ZPOOL} destroy ${name0}
149185029Spjdexpect_fl ${ZPOOL} status -x ${name0}
150185029Spjd
151185029Spjdexpect_ok ${ZPOOL} create ${name0} ${disk0} ${disk1}
152185029Spjdexpect_ok ${ZPOOL} attach ${name0} ${disk0} ${disk2}
153185029Spjdwait_for_resilver ${name0}
154185029Spjdexp=`(
155185029Spjd  echo "  pool: ${name0}"
156185029Spjd  echo " state: ONLINE"
157185029Spjd  echo " scrub: resilver completed after [0-9]+h[0-9]+m with 0 errors on .*"
158185029Spjd  echo "config:"
159185029Spjd  echo "	NAME          STATE   READ WRITE CKSUM"
160185029Spjd  echo "	${name0}      ONLINE     0     0     0"
161185029Spjd  echo "	  mirror      ONLINE     0     0     0"
162185029Spjd  echo "	    ${disk0}  ONLINE     0     0     0  [0-9.]+[A-Z] resilvered"
163185029Spjd  echo "	    ${disk2}  ONLINE     0     0     0  [0-9.]+[A-Z] resilvered"
164185029Spjd  echo "	  ${disk1}    ONLINE     0     0     0"
165185029Spjd  echo "errors: No known data errors"
166185029Spjd)`
167185029Spjdexpect "${exp}" ${ZPOOL} status ${name0}
168185029Spjdexpect_ok ${ZPOOL} attach ${name0} ${disk1} ${disk3}
169185029Spjdwait_for_resilver ${name0}
170185029Spjdexp=`(
171185029Spjd  echo "  pool: ${name0}"
172185029Spjd  echo " state: ONLINE"
173185029Spjd  echo " scrub: resilver completed after [0-9]+h[0-9]+m with 0 errors on .*"
174185029Spjd  echo "config:"
175185029Spjd  echo "	NAME          STATE   READ WRITE CKSUM"
176185029Spjd  echo "	${name0}      ONLINE     0     0     0"
177185029Spjd  echo "	  mirror      ONLINE     0     0     0"
178185029Spjd  echo "	    ${disk0}  ONLINE     0     0     0"
179185029Spjd  echo "	    ${disk2}  ONLINE     0     0     0"
180185029Spjd  echo "	  mirror      ONLINE     0     0     0"
181185029Spjd  echo "	    ${disk1}  ONLINE     0     0     0  [0-9.]+[A-Z] resilvered"
182185029Spjd  echo "	    ${disk3}  ONLINE     0     0     0  [0-9.]+[A-Z] resilvered"
183185029Spjd  echo "errors: No known data errors"
184185029Spjd)`
185185029Spjdexpect "${exp}" ${ZPOOL} status ${name0}
186185029Spjdexpect_ok ${ZPOOL} attach ${name0} ${disk0} ${disk4}
187185029Spjdwait_for_resilver ${name0}
188185029Spjdexp=`(
189185029Spjd  echo "  pool: ${name0}"
190185029Spjd  echo " state: ONLINE"
191185029Spjd  echo " scrub: resilver completed after [0-9]+h[0-9]+m with 0 errors on .*"
192185029Spjd  echo "config:"
193185029Spjd  echo "	NAME          STATE   READ WRITE CKSUM"
194185029Spjd  echo "	${name0}      ONLINE     0     0     0"
195185029Spjd  echo "	  mirror      ONLINE     0     0     0"
196185029Spjd  echo "	    ${disk0}  ONLINE     0     0     0  [0-9.]+[A-Z] resilvered"
197185029Spjd  echo "	    ${disk2}  ONLINE     0     0     0  [0-9.]+[A-Z] resilvered"
198185029Spjd  echo "	    ${disk4}  ONLINE     0     0     0  [0-9.]+[A-Z] resilvered"
199185029Spjd  echo "	  mirror      ONLINE     0     0     0"
200185029Spjd  echo "	    ${disk1}  ONLINE     0     0     0"
201185029Spjd  echo "	    ${disk3}  ONLINE     0     0     0"
202185029Spjd  echo "errors: No known data errors"
203185029Spjd)`
204185029Spjdexpect "${exp}" ${ZPOOL} status ${name0}
205185029Spjdexpect_ok ${ZPOOL} destroy ${name0}
206185029Spjdexpect_fl ${ZPOOL} status -x ${name0}
207185029Spjd
208185029Spjddisks_destroy
209