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