3 # The contents of this file are subject to the terms of the
4 # Common Development and Distribution License (the "License").
5 # You may not use this file except in compliance with the License.
7 # You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
8 # or http://www.opensolaris.org/os/licensing.
9 # See the License for the specific language governing permissions
10 # and limitations under the License.
12 # When distributing Covered Code, include this CDDL HEADER in each
13 # file and include the License file at usr/src/OPENSOLARIS.LICENSE.
14 # If applicable, add the following below this CDDL HEADER, with the
15 # fields enclosed by brackets "[]" replaced with your own identifying
16 # information: Portions Copyright [yyyy] [name of copyright owner]
24 # Copyright 2012 Spectra Logic. All rights reserved.
25 # Use is subject to license terms.
29 atf_test_case cache_001_pos cleanup
32 atf_set "descr" "Creating a pool with a cache device succeeds."
33 atf_set "require.progs" zpool
34 atf_set "timeout" 1200
38 . $(atf_get_srcdir)/../../include/default.cfg
39 . $(atf_get_srcdir)/cache.kshlib
40 . $(atf_get_srcdir)/cache.cfg
42 verify_disk_count "$DISKS" 1
43 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
44 ksh93 $(atf_get_srcdir)/cache_001_pos.ksh || atf_fail "Testcase failed"
46 cache_001_pos_cleanup()
48 . $(atf_get_srcdir)/../../include/default.cfg
49 . $(atf_get_srcdir)/cache.kshlib
50 . $(atf_get_srcdir)/cache.cfg
52 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
56 atf_test_case cache_002_pos cleanup
59 atf_set "descr" "Adding a cache device to normal pool works."
60 atf_set "require.progs" zpool
61 atf_set "timeout" 1200
65 . $(atf_get_srcdir)/../../include/default.cfg
66 . $(atf_get_srcdir)/cache.kshlib
67 . $(atf_get_srcdir)/cache.cfg
69 verify_disk_count "$DISKS" 1
70 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
71 ksh93 $(atf_get_srcdir)/cache_002_pos.ksh || atf_fail "Testcase failed"
73 cache_002_pos_cleanup()
75 . $(atf_get_srcdir)/../../include/default.cfg
76 . $(atf_get_srcdir)/cache.kshlib
77 . $(atf_get_srcdir)/cache.cfg
79 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
83 atf_test_case cache_003_pos cleanup
86 atf_set "descr" "Adding an extra cache device works."
87 atf_set "require.progs" zpool
88 atf_set "timeout" 1200
92 . $(atf_get_srcdir)/../../include/default.cfg
93 . $(atf_get_srcdir)/cache.kshlib
94 . $(atf_get_srcdir)/cache.cfg
96 verify_disk_count "$DISKS" 2
97 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
98 ksh93 $(atf_get_srcdir)/cache_003_pos.ksh || atf_fail "Testcase failed"
100 cache_003_pos_cleanup()
102 . $(atf_get_srcdir)/../../include/default.cfg
103 . $(atf_get_srcdir)/cache.kshlib
104 . $(atf_get_srcdir)/cache.cfg
106 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
110 atf_test_case cache_004_neg cleanup
113 atf_set "descr" "Attaching a cache device fails."
114 atf_set "require.progs" zpool
115 atf_set "timeout" 1200
119 . $(atf_get_srcdir)/../../include/default.cfg
120 . $(atf_get_srcdir)/cache.kshlib
121 . $(atf_get_srcdir)/cache.cfg
123 verify_disk_count "$DISKS" 2
124 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
125 ksh93 $(atf_get_srcdir)/cache_004_neg.ksh || atf_fail "Testcase failed"
127 cache_004_neg_cleanup()
129 . $(atf_get_srcdir)/../../include/default.cfg
130 . $(atf_get_srcdir)/cache.kshlib
131 . $(atf_get_srcdir)/cache.cfg
133 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
137 atf_test_case cache_005_neg cleanup
140 atf_set "descr" "Replacing a cache device fails."
141 atf_set "require.progs" zpool
142 atf_set "timeout" 1200
146 . $(atf_get_srcdir)/../../include/default.cfg
147 . $(atf_get_srcdir)/cache.kshlib
148 . $(atf_get_srcdir)/cache.cfg
150 verify_disk_count "$DISKS" 2
151 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
152 ksh93 $(atf_get_srcdir)/cache_005_neg.ksh || atf_fail "Testcase failed"
154 cache_005_neg_cleanup()
156 . $(atf_get_srcdir)/../../include/default.cfg
157 . $(atf_get_srcdir)/cache.kshlib
158 . $(atf_get_srcdir)/cache.cfg
160 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
164 atf_test_case cache_006_pos cleanup
167 atf_set "descr" "Exporting and importing pool with cache devices passes."
168 atf_set "require.progs" zpool
169 atf_set "timeout" 1200
173 . $(atf_get_srcdir)/../../include/default.cfg
174 . $(atf_get_srcdir)/cache.kshlib
175 . $(atf_get_srcdir)/cache.cfg
177 verify_disk_count "$DISKS" 2
178 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
179 ksh93 $(atf_get_srcdir)/cache_006_pos.ksh || atf_fail "Testcase failed"
181 cache_006_pos_cleanup()
183 . $(atf_get_srcdir)/../../include/default.cfg
184 . $(atf_get_srcdir)/cache.kshlib
185 . $(atf_get_srcdir)/cache.cfg
187 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
191 atf_test_case cache_007_neg cleanup
194 atf_set "descr" "A mirror/raidz/raidz2 cache is not supported."
195 atf_set "require.progs" zpool
196 atf_set "timeout" 1200
200 . $(atf_get_srcdir)/../../include/default.cfg
201 . $(atf_get_srcdir)/cache.kshlib
202 . $(atf_get_srcdir)/cache.cfg
204 verify_disk_count "$DISKS" 2
205 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
206 ksh93 $(atf_get_srcdir)/cache_007_neg.ksh || atf_fail "Testcase failed"
208 cache_007_neg_cleanup()
210 . $(atf_get_srcdir)/../../include/default.cfg
211 . $(atf_get_srcdir)/cache.kshlib
212 . $(atf_get_srcdir)/cache.cfg
214 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
218 atf_test_case cache_008_neg cleanup
221 atf_set "descr" "A raidz/raidz2 cache can not be added to existed pool."
222 atf_set "require.progs" zpool
223 atf_set "timeout" 1200
227 . $(atf_get_srcdir)/../../include/default.cfg
228 . $(atf_get_srcdir)/cache.kshlib
229 . $(atf_get_srcdir)/cache.cfg
231 verify_disk_count "$DISKS" 2
232 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
233 ksh93 $(atf_get_srcdir)/cache_008_neg.ksh || atf_fail "Testcase failed"
235 cache_008_neg_cleanup()
237 . $(atf_get_srcdir)/../../include/default.cfg
238 . $(atf_get_srcdir)/cache.kshlib
239 . $(atf_get_srcdir)/cache.cfg
241 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
245 atf_test_case cache_009_pos cleanup
248 atf_set "descr" "Offline and online a cache device succeed."
249 atf_set "require.progs" zpool
250 atf_set "timeout" 1200
254 . $(atf_get_srcdir)/../../include/default.cfg
255 . $(atf_get_srcdir)/cache.kshlib
256 . $(atf_get_srcdir)/cache.cfg
258 verify_disk_count "$DISKS" 2
259 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
260 ksh93 $(atf_get_srcdir)/cache_009_pos.ksh || atf_fail "Testcase failed"
262 cache_009_pos_cleanup()
264 . $(atf_get_srcdir)/../../include/default.cfg
265 . $(atf_get_srcdir)/cache.kshlib
266 . $(atf_get_srcdir)/cache.cfg
268 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
272 atf_test_case cache_010_neg cleanup
275 atf_set "descr" "Cache device can only be disk or slice."
276 atf_set "require.progs" zfs zpool
277 atf_set "timeout" 1200
281 . $(atf_get_srcdir)/../../include/default.cfg
282 . $(atf_get_srcdir)/cache.kshlib
283 . $(atf_get_srcdir)/cache.cfg
285 verify_disk_count "$DISKS" 1
286 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
287 ksh93 $(atf_get_srcdir)/cache_010_neg.ksh || atf_fail "Testcase failed"
289 cache_010_neg_cleanup()
291 . $(atf_get_srcdir)/../../include/default.cfg
292 . $(atf_get_srcdir)/cache.kshlib
293 . $(atf_get_srcdir)/cache.cfg
295 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
299 atf_test_case cache_011_pos cleanup
302 atf_set "descr" "Remove cache device from pool with spare device should succeed"
303 atf_set "require.progs" zpool
304 atf_set "timeout" 1200
308 . $(atf_get_srcdir)/../../include/default.cfg
309 . $(atf_get_srcdir)/cache.kshlib
310 . $(atf_get_srcdir)/cache.cfg
312 verify_disk_count "$DISKS" 2
313 ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
314 ksh93 $(atf_get_srcdir)/cache_011_pos.ksh || atf_fail "Testcase failed"
316 cache_011_pos_cleanup()
318 . $(atf_get_srcdir)/../../include/default.cfg
319 . $(atf_get_srcdir)/cache.kshlib
320 . $(atf_get_srcdir)/cache.cfg
322 ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
326 atf_init_test_cases()
329 atf_add_test_case cache_001_pos
330 atf_add_test_case cache_002_pos
331 atf_add_test_case cache_003_pos
332 atf_add_test_case cache_004_neg
333 atf_add_test_case cache_005_neg
334 atf_add_test_case cache_006_pos
335 atf_add_test_case cache_007_neg
336 atf_add_test_case cache_008_neg
337 atf_add_test_case cache_009_pos
338 atf_add_test_case cache_010_neg
339 atf_add_test_case cache_011_pos