xref: /freebsd/tests/sys/cddl/zfs/tests/refquota/refquota_006_neg.ksh (revision ac00d4d59b18a76c6148ca5d7439bb446d38da5c)
1*2fae26bdSAlan Somers#!/usr/local/bin/ksh93 -p
2*2fae26bdSAlan Somers#
3*2fae26bdSAlan Somers# CDDL HEADER START
4*2fae26bdSAlan Somers#
5*2fae26bdSAlan Somers# The contents of this file are subject to the terms of the
6*2fae26bdSAlan Somers# Common Development and Distribution License (the "License").
7*2fae26bdSAlan Somers# You may not use this file except in compliance with the License.
8*2fae26bdSAlan Somers#
9*2fae26bdSAlan Somers# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10*2fae26bdSAlan Somers# or http://www.opensolaris.org/os/licensing.
11*2fae26bdSAlan Somers# See the License for the specific language governing permissions
12*2fae26bdSAlan Somers# and limitations under the License.
13*2fae26bdSAlan Somers#
14*2fae26bdSAlan Somers# When distributing Covered Code, include this CDDL HEADER in each
15*2fae26bdSAlan Somers# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16*2fae26bdSAlan Somers# If applicable, add the following below this CDDL HEADER, with the
17*2fae26bdSAlan Somers# fields enclosed by brackets "[]" replaced with your own identifying
18*2fae26bdSAlan Somers# information: Portions Copyright [yyyy] [name of copyright owner]
19*2fae26bdSAlan Somers#
20*2fae26bdSAlan Somers# CDDL HEADER END
21*2fae26bdSAlan Somers#
22*2fae26bdSAlan Somers
23*2fae26bdSAlan Somers#
24*2fae26bdSAlan Somers# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
25*2fae26bdSAlan Somers# Use is subject to license terms.
26*2fae26bdSAlan Somers
27*2fae26bdSAlan Somers. $STF_SUITE/include/libtest.kshlib
28*2fae26bdSAlan Somers
29*2fae26bdSAlan Somers#################################################################################
30*2fae26bdSAlan Somers#
31*2fae26bdSAlan Somers# __stc_assertion_start
32*2fae26bdSAlan Somers#
33*2fae26bdSAlan Somers# ID: refquota_006_neg
34*2fae26bdSAlan Somers#
35*2fae26bdSAlan Somers# DESCRIPTION:
36*2fae26bdSAlan Somers#	'zfs set refquota/refreserv' can handle incorrect arguments correctly.
37*2fae26bdSAlan Somers#
38*2fae26bdSAlan Somers# STRATEGY:
39*2fae26bdSAlan Somers#	1. Setup incorrect arguments arrays.
40*2fae26bdSAlan Somers#	2. Set the bad argument to refquota.
41*2fae26bdSAlan Somers#	3. Verify zfs can handle it correctly.
42*2fae26bdSAlan Somers#
43*2fae26bdSAlan Somers# TESTABILITY: explicit
44*2fae26bdSAlan Somers#
45*2fae26bdSAlan Somers# TEST_AUTOMATION_LEVEL: automated
46*2fae26bdSAlan Somers#
47*2fae26bdSAlan Somers# CODING_STATUS: COMPLETED (2007-11-09)
48*2fae26bdSAlan Somers#
49*2fae26bdSAlan Somers# __stc_assertion_end
50*2fae26bdSAlan Somers#
51*2fae26bdSAlan Somers################################################################################
52*2fae26bdSAlan Somers
53*2fae26bdSAlan Somersverify_runnable "both"
54*2fae26bdSAlan Somers
55*2fae26bdSAlan Somersfunction cleanup
56*2fae26bdSAlan Somers{
57*2fae26bdSAlan Somers	log_must $ZFS set refquota=none $TESTPOOL/$TESTFS
58*2fae26bdSAlan Somers	log_must $ZFS set refreserv=none $TESTPOOL/$TESTFS
59*2fae26bdSAlan Somers}
60*2fae26bdSAlan Somers
61*2fae26bdSAlan Somerslog_assert "'zfs set refquota' can handle incorrect arguments correctly."
62*2fae26bdSAlan Somerslog_onexit cleanup
63*2fae26bdSAlan Somers
64*2fae26bdSAlan Somersset -A badopt	\
65*2fae26bdSAlan Somers	"None"		"-1"		"1TT"		"%5"		\
66*2fae26bdSAlan Somers	"123!"		"@456"		"7#89" 		"0\$"		\
67*2fae26bdSAlan Somers	"abc123%"	"123%s"		"12%s3"		"%c123"		\
68*2fae26bdSAlan Somers	"123%d"		"%x123"		"12%p3" 	"^def456" 	\
69*2fae26bdSAlan Somers	"x0"
70*2fae26bdSAlan Somers
71*2fae26bdSAlan Somerstypeset -i i=0
72*2fae26bdSAlan Somerswhile ((i < ${#badopt[@]})); do
73*2fae26bdSAlan Somers	log_mustnot $ZFS set refquota=${badopt[$i]} $TESTPOOL/$TESTFS
74*2fae26bdSAlan Somers	log_mustnot $ZFS set refreserv=${badopt[$i]} $TESTPOOL/$TESTFS
75*2fae26bdSAlan Somers
76*2fae26bdSAlan Somers	((i += 1))
77*2fae26bdSAlan Somersdone
78*2fae26bdSAlan Somers
79*2fae26bdSAlan Somers# Try using a null as the opt value.  We can't use log_mustnot, because
80*2fae26bdSAlan Somers# that echoes the character, which screws up ATF by creating a non-well formed
81*2fae26bdSAlan Somers# XML file
82*2fae26bdSAlan Somers$ZFS set refquota="\0" $TESTPOOL/$TESTFS > /dev/null 2>&1
83*2fae26bdSAlan Somers[[ $? != 0 ]] || log_fail "FAILURE: zfs set refquota=\\\\0 passed"
84*2fae26bdSAlan Somers$ZFS set refreserv="\0" $TESTPOOL/$TESTFS > /dev/null 2>&1
85*2fae26bdSAlan Somers[[ $? != 0 ]] || log_fail "FAILURE: zfs set refreserv=\\\\0 passed"
86*2fae26bdSAlan Somers
87*2fae26bdSAlan Somerslog_pass "'zfs set refquota' can handle incorrect arguments correctly."
88