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 rsend_001_pos cleanup
30rsend_001_pos_head()
31{
32	atf_set "descr" "zfs send -R send replication stream up to the named snap."
33	atf_set "require.progs" "ksh93 zfs zpool"
34	atf_set "timeout" 2700
35}
36rsend_001_pos_body()
37{
38	. $(atf_get_srcdir)/../../include/default.cfg
39	. $(atf_get_srcdir)/rsend.kshlib
40	. $(atf_get_srcdir)/rsend.cfg
41
42	verify_disk_count "$DISKS" 2
43	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
44	ksh93 $(atf_get_srcdir)/rsend_001_pos.ksh || atf_fail "Testcase failed"
45}
46rsend_001_pos_cleanup()
47{
48	. $(atf_get_srcdir)/../../include/default.cfg
49	. $(atf_get_srcdir)/rsend.kshlib
50	. $(atf_get_srcdir)/rsend.cfg
51
52	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
53}
54
55
56atf_test_case rsend_002_pos cleanup
57rsend_002_pos_head()
58{
59	atf_set "descr" "zfs send -I sends all incrementals from fs@init to fs@final."
60	atf_set "require.progs" "ksh93 zfs zpool"
61	atf_set "timeout" 2700
62}
63rsend_002_pos_body()
64{
65	. $(atf_get_srcdir)/../../include/default.cfg
66	. $(atf_get_srcdir)/rsend.kshlib
67	. $(atf_get_srcdir)/rsend.cfg
68
69	verify_disk_count "$DISKS" 2
70	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
71	ksh93 $(atf_get_srcdir)/rsend_002_pos.ksh || atf_fail "Testcase failed"
72}
73rsend_002_pos_cleanup()
74{
75	. $(atf_get_srcdir)/../../include/default.cfg
76	. $(atf_get_srcdir)/rsend.kshlib
77	. $(atf_get_srcdir)/rsend.cfg
78
79	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
80}
81
82
83atf_test_case rsend_003_pos cleanup
84rsend_003_pos_head()
85{
86	atf_set "descr" "zfs send -I send all incrementals from dataset@init to clone@snap"
87	atf_set "require.progs" "ksh93 zfs zpool"
88	atf_set "timeout" 2700
89}
90rsend_003_pos_body()
91{
92	. $(atf_get_srcdir)/../../include/default.cfg
93	. $(atf_get_srcdir)/rsend.kshlib
94	. $(atf_get_srcdir)/rsend.cfg
95
96	verify_disk_count "$DISKS" 2
97	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
98	ksh93 $(atf_get_srcdir)/rsend_003_pos.ksh || atf_fail "Testcase failed"
99}
100rsend_003_pos_cleanup()
101{
102	. $(atf_get_srcdir)/../../include/default.cfg
103	. $(atf_get_srcdir)/rsend.kshlib
104	. $(atf_get_srcdir)/rsend.cfg
105
106	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
107}
108
109
110atf_test_case rsend_004_pos cleanup
111rsend_004_pos_head()
112{
113	atf_set "descr" "zfs send -R -i send incremental from fs@init to fs@final."
114	atf_set "require.progs" "ksh93 zfs zpool"
115	atf_set "timeout" 2700
116}
117rsend_004_pos_body()
118{
119	. $(atf_get_srcdir)/../../include/default.cfg
120	. $(atf_get_srcdir)/rsend.kshlib
121	. $(atf_get_srcdir)/rsend.cfg
122
123	verify_disk_count "$DISKS" 2
124	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
125	ksh93 $(atf_get_srcdir)/rsend_004_pos.ksh || atf_fail "Testcase failed"
126}
127rsend_004_pos_cleanup()
128{
129	. $(atf_get_srcdir)/../../include/default.cfg
130	. $(atf_get_srcdir)/rsend.kshlib
131	. $(atf_get_srcdir)/rsend.cfg
132
133	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
134}
135
136
137atf_test_case rsend_005_pos cleanup
138rsend_005_pos_head()
139{
140	atf_set "descr" "zfs send -R -I send all the incremental between @init with @final"
141	atf_set "require.progs" "ksh93 zfs zpool"
142	atf_set "timeout" 2700
143}
144rsend_005_pos_body()
145{
146	. $(atf_get_srcdir)/../../include/default.cfg
147	. $(atf_get_srcdir)/rsend.kshlib
148	. $(atf_get_srcdir)/rsend.cfg
149
150	verify_disk_count "$DISKS" 2
151	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
152	ksh93 $(atf_get_srcdir)/rsend_005_pos.ksh || atf_fail "Testcase failed"
153}
154rsend_005_pos_cleanup()
155{
156	. $(atf_get_srcdir)/../../include/default.cfg
157	. $(atf_get_srcdir)/rsend.kshlib
158	. $(atf_get_srcdir)/rsend.cfg
159
160	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
161}
162
163
164atf_test_case rsend_006_pos cleanup
165rsend_006_pos_head()
166{
167	atf_set "descr" "Rename snapshot name will not change the dependent order."
168	atf_set "require.progs" "ksh93 zfs zpool"
169	atf_set "timeout" 2700
170}
171rsend_006_pos_body()
172{
173	. $(atf_get_srcdir)/../../include/default.cfg
174	. $(atf_get_srcdir)/rsend.kshlib
175	. $(atf_get_srcdir)/rsend.cfg
176
177	verify_disk_count "$DISKS" 2
178	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
179	ksh93 $(atf_get_srcdir)/rsend_006_pos.ksh || atf_fail "Testcase failed"
180}
181rsend_006_pos_cleanup()
182{
183	. $(atf_get_srcdir)/../../include/default.cfg
184	. $(atf_get_srcdir)/rsend.kshlib
185	. $(atf_get_srcdir)/rsend.cfg
186
187	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
188}
189
190
191atf_test_case rsend_007_pos cleanup
192rsend_007_pos_head()
193{
194	atf_set "descr" "Rename parent filesystem name will not change the dependent order."
195	atf_set "require.progs" "ksh93 zfs zpool"
196	atf_set "timeout" 2700
197}
198rsend_007_pos_body()
199{
200	. $(atf_get_srcdir)/../../include/default.cfg
201	. $(atf_get_srcdir)/rsend.kshlib
202	. $(atf_get_srcdir)/rsend.cfg
203
204	verify_disk_count "$DISKS" 2
205	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
206	ksh93 $(atf_get_srcdir)/rsend_007_pos.ksh || atf_fail "Testcase failed"
207}
208rsend_007_pos_cleanup()
209{
210	. $(atf_get_srcdir)/../../include/default.cfg
211	. $(atf_get_srcdir)/rsend.kshlib
212	. $(atf_get_srcdir)/rsend.cfg
213
214	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
215}
216
217
218atf_test_case rsend_008_pos cleanup
219rsend_008_pos_head()
220{
221	atf_set "descr" "Changes made by 'zfs promote' can be properly received."
222	atf_set "require.progs" "ksh93 zfs zpool"
223	atf_set "timeout" 2700
224}
225rsend_008_pos_body()
226{
227	. $(atf_get_srcdir)/../../include/default.cfg
228	. $(atf_get_srcdir)/rsend.kshlib
229	. $(atf_get_srcdir)/rsend.cfg
230
231	verify_disk_count "$DISKS" 2
232	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
233	ksh93 $(atf_get_srcdir)/rsend_008_pos.ksh || atf_fail "Testcase failed"
234}
235rsend_008_pos_cleanup()
236{
237	. $(atf_get_srcdir)/../../include/default.cfg
238	. $(atf_get_srcdir)/rsend.kshlib
239	. $(atf_get_srcdir)/rsend.cfg
240
241	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
242}
243
244
245atf_test_case rsend_009_pos cleanup
246rsend_009_pos_head()
247{
248	atf_set "descr" "Verify zfs receive can handle out of space correctly."
249	atf_set "require.progs" "ksh93 zpool zfs"
250	atf_set "timeout" 2700
251}
252rsend_009_pos_body()
253{
254	. $(atf_get_srcdir)/../../include/default.cfg
255	. $(atf_get_srcdir)/rsend.kshlib
256	. $(atf_get_srcdir)/rsend.cfg
257
258	verify_disk_count "$DISKS" 2
259	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
260	ksh93 $(atf_get_srcdir)/rsend_009_pos.ksh || atf_fail "Testcase failed"
261}
262rsend_009_pos_cleanup()
263{
264	. $(atf_get_srcdir)/../../include/default.cfg
265	. $(atf_get_srcdir)/rsend.kshlib
266	. $(atf_get_srcdir)/rsend.cfg
267
268	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
269}
270
271
272atf_test_case rsend_010_pos cleanup
273rsend_010_pos_head()
274{
275	atf_set "descr" "ZFS can handle stream with multiple identical (same GUID) snapshots"
276	atf_set "require.progs" "ksh93 zfs zpool"
277	atf_set "timeout" 2700
278}
279rsend_010_pos_body()
280{
281	. $(atf_get_srcdir)/../../include/default.cfg
282	. $(atf_get_srcdir)/rsend.kshlib
283	. $(atf_get_srcdir)/rsend.cfg
284
285	verify_disk_count "$DISKS" 2
286	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
287	ksh93 $(atf_get_srcdir)/rsend_010_pos.ksh || atf_fail "Testcase failed"
288}
289rsend_010_pos_cleanup()
290{
291	. $(atf_get_srcdir)/../../include/default.cfg
292	. $(atf_get_srcdir)/rsend.kshlib
293	. $(atf_get_srcdir)/rsend.cfg
294
295	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
296}
297
298
299atf_test_case rsend_011_pos cleanup
300rsend_011_pos_head()
301{
302	atf_set "descr" "Verify changes made by 'zfs inherit' can be properly received."
303	atf_set "require.progs" "ksh93 zfs zpool"
304	atf_set "timeout" 2700
305}
306rsend_011_pos_body()
307{
308	. $(atf_get_srcdir)/../../include/default.cfg
309	. $(atf_get_srcdir)/rsend.kshlib
310	. $(atf_get_srcdir)/rsend.cfg
311
312	verify_disk_count "$DISKS" 2
313	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
314	ksh93 $(atf_get_srcdir)/rsend_011_pos.ksh || atf_fail "Testcase failed"
315}
316rsend_011_pos_cleanup()
317{
318	. $(atf_get_srcdir)/../../include/default.cfg
319	. $(atf_get_srcdir)/rsend.kshlib
320	. $(atf_get_srcdir)/rsend.cfg
321
322	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
323}
324
325
326atf_test_case rsend_012_pos cleanup
327rsend_012_pos_head()
328{
329	atf_set "descr" "Verify zfs send -R will backup all the filesystem propertiescorrectly."
330	atf_set "require.progs" "ksh93 zfs zpool"
331	atf_set "timeout" 2700
332}
333rsend_012_pos_body()
334{
335	. $(atf_get_srcdir)/../../include/default.cfg
336	. $(atf_get_srcdir)/rsend.kshlib
337	. $(atf_get_srcdir)/rsend.cfg
338
339	verify_disk_count "$DISKS" 2
340	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
341	ksh93 $(atf_get_srcdir)/rsend_012_pos.ksh || atf_fail "Testcase failed"
342}
343rsend_012_pos_cleanup()
344{
345	. $(atf_get_srcdir)/../../include/default.cfg
346	. $(atf_get_srcdir)/rsend.kshlib
347	. $(atf_get_srcdir)/rsend.cfg
348
349	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
350}
351
352
353atf_test_case rsend_013_pos cleanup
354rsend_013_pos_head()
355{
356	atf_set "descr" "zfs receive -dF will destroy all the dataset that not existon the sender side"
357	atf_set "require.progs" "ksh93 zfs zpool"
358	atf_set "timeout" 2700
359}
360rsend_013_pos_body()
361{
362	. $(atf_get_srcdir)/../../include/default.cfg
363	. $(atf_get_srcdir)/rsend.kshlib
364	. $(atf_get_srcdir)/rsend.cfg
365
366	verify_disk_count "$DISKS" 2
367	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
368	ksh93 $(atf_get_srcdir)/rsend_013_pos.ksh || atf_fail "Testcase failed"
369}
370rsend_013_pos_cleanup()
371{
372	. $(atf_get_srcdir)/../../include/default.cfg
373	. $(atf_get_srcdir)/rsend.kshlib
374	. $(atf_get_srcdir)/rsend.cfg
375
376	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
377}
378
379
380atf_init_test_cases()
381{
382
383	atf_add_test_case rsend_001_pos
384	atf_add_test_case rsend_002_pos
385	atf_add_test_case rsend_003_pos
386	atf_add_test_case rsend_004_pos
387	atf_add_test_case rsend_005_pos
388	atf_add_test_case rsend_006_pos
389	atf_add_test_case rsend_007_pos
390	atf_add_test_case rsend_008_pos
391	atf_add_test_case rsend_009_pos
392	atf_add_test_case rsend_010_pos
393	atf_add_test_case rsend_011_pos
394	atf_add_test_case rsend_012_pos
395	atf_add_test_case rsend_013_pos
396}
397