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 zfs_rollback_001_pos cleanup
30zfs_rollback_001_pos_head()
31{
32	atf_set "descr" "'zfs rollback -r|-rf|-R|-Rf' will recursively destroy anysnapshots more recent than the one specified."
33	atf_set "require.progs"  zfs
34	atf_set "timeout" 1800
35}
36zfs_rollback_001_pos_body()
37{
38	. $(atf_get_srcdir)/../../../include/default.cfg
39	. $(atf_get_srcdir)/zfs_rollback_common.kshlib
40	. $(atf_get_srcdir)/zfs_rollback.cfg
41
42	verify_disk_count "$DISKS" 1
43	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
44	ksh93 $(atf_get_srcdir)/zfs_rollback_001_pos.ksh || atf_fail "Testcase failed"
45}
46zfs_rollback_001_pos_cleanup()
47{
48	. $(atf_get_srcdir)/../../../include/default.cfg
49	. $(atf_get_srcdir)/zfs_rollback_common.kshlib
50	. $(atf_get_srcdir)/zfs_rollback.cfg
51
52	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
53}
54
55
56atf_test_case zfs_rollback_002_pos cleanup
57zfs_rollback_002_pos_head()
58{
59	atf_set "descr" "'zfs rollback -f' will force unmount any filesystems."
60	atf_set "require.progs"  zfs
61	atf_set "timeout" 1800
62}
63zfs_rollback_002_pos_body()
64{
65	. $(atf_get_srcdir)/../../../include/default.cfg
66	. $(atf_get_srcdir)/zfs_rollback_common.kshlib
67	. $(atf_get_srcdir)/zfs_rollback.cfg
68
69	verify_disk_count "$DISKS" 1
70	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
71	ksh93 $(atf_get_srcdir)/zfs_rollback_002_pos.ksh || atf_fail "Testcase failed"
72}
73zfs_rollback_002_pos_cleanup()
74{
75	. $(atf_get_srcdir)/../../../include/default.cfg
76	. $(atf_get_srcdir)/zfs_rollback_common.kshlib
77	. $(atf_get_srcdir)/zfs_rollback.cfg
78
79	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
80}
81
82
83atf_test_case zfs_rollback_003_neg cleanup
84zfs_rollback_003_neg_head()
85{
86	atf_set "descr" "Separately verify 'zfs rollback ''|-f|-r|-rf will fail indifferent conditions."
87	atf_set "require.progs"  zfs
88	atf_set "timeout" 1800
89}
90zfs_rollback_003_neg_body()
91{
92	. $(atf_get_srcdir)/../../../include/default.cfg
93	. $(atf_get_srcdir)/zfs_rollback_common.kshlib
94	. $(atf_get_srcdir)/zfs_rollback.cfg
95
96	verify_disk_count "$DISKS" 1
97	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
98	ksh93 $(atf_get_srcdir)/zfs_rollback_003_neg.ksh || atf_fail "Testcase failed"
99}
100zfs_rollback_003_neg_cleanup()
101{
102	. $(atf_get_srcdir)/../../../include/default.cfg
103	. $(atf_get_srcdir)/zfs_rollback_common.kshlib
104	. $(atf_get_srcdir)/zfs_rollback.cfg
105
106	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
107}
108
109
110atf_test_case zfs_rollback_004_neg cleanup
111zfs_rollback_004_neg_head()
112{
113	atf_set "descr" "'zfs rollback' should fail with bad options,too many arguments,non-snapshot datasets or missing datasets."
114	atf_set "require.progs"  zfs
115	atf_set "timeout" 1800
116}
117zfs_rollback_004_neg_body()
118{
119	. $(atf_get_srcdir)/../../../include/default.cfg
120	. $(atf_get_srcdir)/zfs_rollback_common.kshlib
121	. $(atf_get_srcdir)/zfs_rollback.cfg
122
123	verify_disk_count "$DISKS" 1
124	ksh93 $(atf_get_srcdir)/setup.ksh || atf_fail "Setup failed"
125	ksh93 $(atf_get_srcdir)/zfs_rollback_004_neg.ksh || atf_fail "Testcase failed"
126}
127zfs_rollback_004_neg_cleanup()
128{
129	. $(atf_get_srcdir)/../../../include/default.cfg
130	. $(atf_get_srcdir)/zfs_rollback_common.kshlib
131	. $(atf_get_srcdir)/zfs_rollback.cfg
132
133	ksh93 $(atf_get_srcdir)/cleanup.ksh || atf_fail "Cleanup failed"
134}
135
136
137atf_init_test_cases()
138{
139
140	atf_add_test_case zfs_rollback_001_pos
141	atf_add_test_case zfs_rollback_002_pos
142	atf_add_test_case zfs_rollback_003_neg
143	atf_add_test_case zfs_rollback_004_neg
144}
145