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