1# CDDL HEADER START
2#
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.
6#
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.
11#
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]
17#
18# CDDL HEADER END
19#
20
21# $FreeBSD$
22
23#
24# Copyright 2012 Spectra Logic.  All rights reserved.
25# Use is subject to license terms.
26#
27
28
29atf_test_case zpool_upgrade_001_pos cleanup
30zpool_upgrade_001_pos_head()
31{
32	atf_set "descr" "Executing 'zpool upgrade -v' command succeeds."
33	atf_set "require.progs" "ksh93 zpool"
34	atf_set "timeout" 1800
35}
36zpool_upgrade_001_pos_body()
37{
38	. $(atf_get_srcdir)/../../../include/default.cfg
39	. $(atf_get_srcdir)/zpool_upgrade.kshlib
40	. $(atf_get_srcdir)/zpool_upgrade.cfg
41
42	verify_disk_count "$DISKS" 2
43	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
44	ksh93 $(atf_get_srcdir)/zpool_upgrade_001_pos.ksh || atf_fail "Testcase failed"
45}
46zpool_upgrade_001_pos_cleanup()
47{
48	. $(atf_get_srcdir)/../../../include/default.cfg
49	. $(atf_get_srcdir)/zpool_upgrade.kshlib
50	. $(atf_get_srcdir)/zpool_upgrade.cfg
51
52	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
53}
54
55
56atf_test_case zpool_upgrade_002_pos cleanup
57zpool_upgrade_002_pos_head()
58{
59	atf_set "descr" "Import pools of all versions - zpool upgrade on each pools works"
60	atf_set "require.progs" "ksh93 zpool"
61	atf_set "timeout" 1800
62}
63zpool_upgrade_002_pos_body()
64{
65	. $(atf_get_srcdir)/../../../include/default.cfg
66	. $(atf_get_srcdir)/zpool_upgrade.kshlib
67	. $(atf_get_srcdir)/zpool_upgrade.cfg
68
69	verify_disk_count "$DISKS" 2
70	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
71	ksh93 $(atf_get_srcdir)/zpool_upgrade_002_pos.ksh || atf_fail "Testcase failed"
72}
73zpool_upgrade_002_pos_cleanup()
74{
75	. $(atf_get_srcdir)/../../../include/default.cfg
76	. $(atf_get_srcdir)/zpool_upgrade.kshlib
77	. $(atf_get_srcdir)/zpool_upgrade.cfg
78
79	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
80}
81
82
83atf_test_case zpool_upgrade_003_pos cleanup
84zpool_upgrade_003_pos_head()
85{
86	atf_set "descr" "Upgrading a pool that has already been upgraded succeeds."
87	atf_set "require.progs" "ksh93 zpool"
88	atf_set "timeout" 1800
89}
90zpool_upgrade_003_pos_body()
91{
92	. $(atf_get_srcdir)/../../../include/default.cfg
93	. $(atf_get_srcdir)/zpool_upgrade.kshlib
94	. $(atf_get_srcdir)/zpool_upgrade.cfg
95
96	verify_disk_count "$DISKS" 2
97	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
98	ksh93 $(atf_get_srcdir)/zpool_upgrade_003_pos.ksh || atf_fail "Testcase failed"
99}
100zpool_upgrade_003_pos_cleanup()
101{
102	. $(atf_get_srcdir)/../../../include/default.cfg
103	. $(atf_get_srcdir)/zpool_upgrade.kshlib
104	. $(atf_get_srcdir)/zpool_upgrade.cfg
105
106	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
107}
108
109
110atf_test_case zpool_upgrade_004_pos cleanup
111zpool_upgrade_004_pos_head()
112{
113	atf_set "descr" "zpool upgrade -a works"
114	atf_set "require.progs" "ksh93 zpool"
115	atf_set "timeout" 1800
116}
117zpool_upgrade_004_pos_body()
118{
119	. $(atf_get_srcdir)/../../../include/default.cfg
120	. $(atf_get_srcdir)/zpool_upgrade.kshlib
121	. $(atf_get_srcdir)/zpool_upgrade.cfg
122
123	verify_disk_count "$DISKS" 2
124	if other_pools_exist; then
125                atf_skip "Can't test unmount -a with existing pools"
126        fi
127
128	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
129	ksh93 $(atf_get_srcdir)/zpool_upgrade_004_pos.ksh || atf_fail "Testcase failed"
130}
131zpool_upgrade_004_pos_cleanup()
132{
133	. $(atf_get_srcdir)/../../../include/default.cfg
134	. $(atf_get_srcdir)/zpool_upgrade.kshlib
135	. $(atf_get_srcdir)/zpool_upgrade.cfg
136
137	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
138}
139
140
141atf_test_case zpool_upgrade_005_neg cleanup
142zpool_upgrade_005_neg_head()
143{
144	atf_set "descr" "Variations of upgrade -v print usage message,return with non-zero status"
145	atf_set "require.progs" "ksh93 zpool"
146	atf_set "timeout" 1800
147}
148zpool_upgrade_005_neg_body()
149{
150	. $(atf_get_srcdir)/../../../include/default.cfg
151	. $(atf_get_srcdir)/zpool_upgrade.kshlib
152	. $(atf_get_srcdir)/zpool_upgrade.cfg
153
154	verify_disk_count "$DISKS" 2
155	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
156	ksh93 $(atf_get_srcdir)/zpool_upgrade_005_neg.ksh || atf_fail "Testcase failed"
157}
158zpool_upgrade_005_neg_cleanup()
159{
160	. $(atf_get_srcdir)/../../../include/default.cfg
161	. $(atf_get_srcdir)/zpool_upgrade.kshlib
162	. $(atf_get_srcdir)/zpool_upgrade.cfg
163
164	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
165}
166
167
168atf_test_case zpool_upgrade_006_neg cleanup
169zpool_upgrade_006_neg_head()
170{
171	atf_set "descr" "Attempting to upgrade a non-existent pool will return an error"
172	atf_set "require.progs" "ksh93 zpool"
173	atf_set "timeout" 1800
174}
175zpool_upgrade_006_neg_body()
176{
177	. $(atf_get_srcdir)/../../../include/default.cfg
178	. $(atf_get_srcdir)/zpool_upgrade.kshlib
179	. $(atf_get_srcdir)/zpool_upgrade.cfg
180
181	verify_disk_count "$DISKS" 2
182	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
183	ksh93 $(atf_get_srcdir)/zpool_upgrade_006_neg.ksh || atf_fail "Testcase failed"
184}
185zpool_upgrade_006_neg_cleanup()
186{
187	. $(atf_get_srcdir)/../../../include/default.cfg
188	. $(atf_get_srcdir)/zpool_upgrade.kshlib
189	. $(atf_get_srcdir)/zpool_upgrade.cfg
190
191	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
192}
193
194
195atf_test_case zpool_upgrade_007_pos cleanup
196zpool_upgrade_007_pos_head()
197{
198	atf_set "descr" "Import pools of all versions - 'zfs upgrade' on each pools works"
199	atf_set "require.progs" "ksh93 zpool"
200	# This test can take quite a while, especially on debug builds
201	atf_set "timeout" 7200
202}
203zpool_upgrade_007_pos_body()
204{
205	. $(atf_get_srcdir)/../../../include/default.cfg
206	. $(atf_get_srcdir)/zpool_upgrade.kshlib
207	. $(atf_get_srcdir)/zpool_upgrade.cfg
208
209	verify_disk_count "$DISKS" 2
210	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
211	ksh93 $(atf_get_srcdir)/zpool_upgrade_007_pos.ksh || atf_fail "Testcase failed"
212}
213zpool_upgrade_007_pos_cleanup()
214{
215	. $(atf_get_srcdir)/../../../include/default.cfg
216	. $(atf_get_srcdir)/zpool_upgrade.kshlib
217	. $(atf_get_srcdir)/zpool_upgrade.cfg
218
219	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
220}
221
222
223atf_test_case zpool_upgrade_008_pos cleanup
224zpool_upgrade_008_pos_head()
225{
226	atf_set "descr" "Zpool upgrade should be able to upgrade pools to a given version using -V"
227	atf_set "require.progs" "ksh93 zpool"
228	atf_set "timeout" 1800
229}
230zpool_upgrade_008_pos_body()
231{
232	. $(atf_get_srcdir)/../../../include/default.cfg
233	. $(atf_get_srcdir)/zpool_upgrade.kshlib
234	. $(atf_get_srcdir)/zpool_upgrade.cfg
235
236	verify_disk_count "$DISKS" 2
237	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
238	ksh93 $(atf_get_srcdir)/zpool_upgrade_008_pos.ksh || atf_fail "Testcase failed"
239}
240zpool_upgrade_008_pos_cleanup()
241{
242	. $(atf_get_srcdir)/../../../include/default.cfg
243	. $(atf_get_srcdir)/zpool_upgrade.kshlib
244	. $(atf_get_srcdir)/zpool_upgrade.cfg
245
246	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
247}
248
249
250atf_test_case zpool_upgrade_009_neg cleanup
251zpool_upgrade_009_neg_head()
252{
253	atf_set "descr" "Zpool upgrade -V shouldn't be able to upgrade a pool to an unknown version"
254	atf_set "require.progs" "ksh93 zpool"
255	atf_set "timeout" 1800
256}
257zpool_upgrade_009_neg_body()
258{
259	. $(atf_get_srcdir)/../../../include/default.cfg
260	. $(atf_get_srcdir)/zpool_upgrade.kshlib
261	. $(atf_get_srcdir)/zpool_upgrade.cfg
262
263	verify_disk_count "$DISKS" 2
264	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
265	ksh93 $(atf_get_srcdir)/zpool_upgrade_009_neg.ksh || atf_fail "Testcase failed"
266}
267zpool_upgrade_009_neg_cleanup()
268{
269	. $(atf_get_srcdir)/../../../include/default.cfg
270	. $(atf_get_srcdir)/zpool_upgrade.kshlib
271	. $(atf_get_srcdir)/zpool_upgrade.cfg
272
273	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
274}
275
276
277atf_init_test_cases()
278{
279
280	atf_add_test_case zpool_upgrade_001_pos
281	atf_add_test_case zpool_upgrade_002_pos
282	atf_add_test_case zpool_upgrade_003_pos
283	atf_add_test_case zpool_upgrade_004_pos
284	atf_add_test_case zpool_upgrade_005_neg
285	atf_add_test_case zpool_upgrade_006_neg
286	atf_add_test_case zpool_upgrade_007_pos
287	atf_add_test_case zpool_upgrade_008_pos
288	atf_add_test_case zpool_upgrade_009_neg
289}
290