xref: /freebsd/contrib/netbsd-tests/fs/ffs/t_quotalimit.sh (revision 9268022b74279434ed6300244e3f977e56a8ceb5)
1*57718be8SEnji Cooper# $NetBSD: t_quotalimit.sh,v 1.4 2012/01/18 20:51:23 bouyer Exp $
2*57718be8SEnji Cooper#
3*57718be8SEnji Cooper#  Copyright (c) 2011 Manuel Bouyer
4*57718be8SEnji Cooper#  All rights reserved.
5*57718be8SEnji Cooper#
6*57718be8SEnji Cooper#  Redistribution and use in source and binary forms, with or without
7*57718be8SEnji Cooper#  modification, are permitted provided that the following conditions
8*57718be8SEnji Cooper#  are met:
9*57718be8SEnji Cooper#  1. Redistributions of source code must retain the above copyright
10*57718be8SEnji Cooper#     notice, this list of conditions and the following disclaimer.
11*57718be8SEnji Cooper#  2. Redistributions in binary form must reproduce the above copyright
12*57718be8SEnji Cooper#     notice, this list of conditions and the following disclaimer in the
13*57718be8SEnji Cooper#     documentation and/or other materials provided with the distribution.
14*57718be8SEnji Cooper#
15*57718be8SEnji Cooper#  THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
16*57718be8SEnji Cooper#  ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
17*57718be8SEnji Cooper#  TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
18*57718be8SEnji Cooper#  PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
19*57718be8SEnji Cooper#  BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
20*57718be8SEnji Cooper#  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
21*57718be8SEnji Cooper#  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
22*57718be8SEnji Cooper#  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
23*57718be8SEnji Cooper#  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
24*57718be8SEnji Cooper#  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
25*57718be8SEnji Cooper#  POSSIBILITY OF SUCH DAMAGE.
26*57718be8SEnji Cooper#
27*57718be8SEnji Cooper
28*57718be8SEnji Cooperfor e in le; do
29*57718be8SEnji Cooper  for v in 1; do
30*57718be8SEnji Cooper    for q in "user" "group"; do
31*57718be8SEnji Cooper      test_case_root limit_${e}_${v}_${q} limit_quota \
32*57718be8SEnji Cooper	 "hit hard limit quota with ${q} enabled" -b ${e} ${v} ${q}
33*57718be8SEnji Cooper      test_case_root limit_${e}_${v}_${q}_log limit_quota \
34*57718be8SEnji Cooper	 "hit hard limit quota with ${q} enabled, WAPBL" -bl ${e} ${v} ${q}
35*57718be8SEnji Cooper      test_case_root slimit_${e}_${v}_${q} limit_softquota \
36*57718be8SEnji Cooper	 "hit soft limit quota with ${q} enabled after grace time" \
37*57718be8SEnji Cooper	 -b ${e} ${v} ${q}
38*57718be8SEnji Cooper      test_case_root inolimit_${e}_${v}_${q} limit_iquota \
39*57718be8SEnji Cooper	 "hit hard limit ino quota with ${q} enabled" -b ${e} ${v} ${q}
40*57718be8SEnji Cooper      test_case_root inolimit_${e}_${v}_${q}_log limit_iquota \
41*57718be8SEnji Cooper	 "hit hard limit ino quota with ${q} enabled, WAPBL" -bl ${e} ${v} ${q}
42*57718be8SEnji Cooper      test_case_root sinolimit_${e}_${v}_${q} limit_softiquota \
43*57718be8SEnji Cooper	 "hit soft limit ino quota with ${q} enabled after grace time" \
44*57718be8SEnji Cooper	 -b ${e} ${v} ${q}
45*57718be8SEnji Cooper      test_case_root herit_defq_${e}_${v}_${q} inherit_defaultquota \
46*57718be8SEnji Cooper	 "new id herit from default for ${q} quota" -b ${e} ${v} ${q}
47*57718be8SEnji Cooper      test_case_root herit_defq_${e}_${v}_${q}_log inherit_defaultquota \
48*57718be8SEnji Cooper	 "new id herit from default for ${q} quota, WAPBL" -bl ${e} ${v} ${q}
49*57718be8SEnji Cooper      test_case_root herit_idefq_${e}_${v}_${q}_log inherit_defaultiquota \
50*57718be8SEnji Cooper	 "new id herit from default for ${q} ino quota, WAPBL" -bl ${e} ${v} ${q}
51*57718be8SEnji Cooper    done
52*57718be8SEnji Cooper  done
53*57718be8SEnji Cooperdone
54*57718be8SEnji Cooper
55*57718be8SEnji Cooperlimit_quota()
56*57718be8SEnji Cooper{
57*57718be8SEnji Cooper	create_ffs_server $*
58*57718be8SEnji Cooper	local q=$4
59*57718be8SEnji Cooper	local expect
60*57718be8SEnji Cooper	local id=1
61*57718be8SEnji Cooper
62*57718be8SEnji Cooper	case ${q} in
63*57718be8SEnji Cooper	user)
64*57718be8SEnji Cooper		expect=u
65*57718be8SEnji Cooper		fail=g
66*57718be8SEnji Cooper		;;
67*57718be8SEnji Cooper	group)
68*57718be8SEnji Cooper		expect=g
69*57718be8SEnji Cooper		fail=u
70*57718be8SEnji Cooper		;;
71*57718be8SEnji Cooper	both)
72*57718be8SEnji Cooper		expect="u g"
73*57718be8SEnji Cooper		fail=""
74*57718be8SEnji Cooper		;;
75*57718be8SEnji Cooper	*)
76*57718be8SEnji Cooper		atf_fail "wrong quota type"
77*57718be8SEnji Cooper		;;
78*57718be8SEnji Cooper	esac
79*57718be8SEnji Cooper
80*57718be8SEnji Cooper	for q in ${expect} ; do
81*57718be8SEnji Cooper		atf_check -s exit:0 \
82*57718be8SEnji Cooper		   env LD_PRELOAD=/usr/lib/librumphijack.so RUMPHIJACK=vfs=getvfsstat,blanket=/mnt edquota -$q -s2k/4 -h3k/6 \
83*57718be8SEnji Cooper		   -t 2h/2h ${id}
84*57718be8SEnji Cooper	done
85*57718be8SEnji Cooper	atf_check -s exit:0 rump.halt
86*57718be8SEnji Cooper
87*57718be8SEnji Cooper	#now start the server which does the limits tests
88*57718be8SEnji Cooper	atf_check -s exit:0 -o ignore \
89*57718be8SEnji Cooper-e match:'test 0: write up to hard limit returned 69: Disc quota exceeded' \
90*57718be8SEnji Cooper	    $(atf_get_srcdir)/h_quota2_tests -b 0 ${IMG} ${RUMP_SERVER}
91*57718be8SEnji Cooper	for q in ${expect} ; do
92*57718be8SEnji Cooper		atf_check -s exit:0 \
93*57718be8SEnji Cooper		    -o match:'/mnt   3072 B\*  2048 B   3072 B     2:0      2       4       6         ' \
94*57718be8SEnji Cooper		    env LD_PRELOAD=/usr/lib/librumphijack.so RUMPHIJACK=vfs=getvfsstat,blanket=/mnt quota -$q -h ${id}
95*57718be8SEnji Cooper		atf_check -s exit:0 \
96*57718be8SEnji Cooper		    -o match:'daemon    \+-        3        2        3    2:0         2       4       6' \
97*57718be8SEnji Cooper		    env LD_PRELOAD=/usr/lib/librumphijack.so RUMPHIJACK=vfs=getvfsstat,blanket=/mnt repquota -$q /mnt
98*57718be8SEnji Cooper	done
99*57718be8SEnji Cooper	rump_quota_shutdown
100*57718be8SEnji Cooper}
101*57718be8SEnji Cooper
102*57718be8SEnji Cooperlimit_softquota()
103*57718be8SEnji Cooper{
104*57718be8SEnji Cooper	create_ffs_server $*
105*57718be8SEnji Cooper	local q=$4
106*57718be8SEnji Cooper	local expect
107*57718be8SEnji Cooper	local id=1
108*57718be8SEnji Cooper
109*57718be8SEnji Cooper	case ${q} in
110*57718be8SEnji Cooper	user)
111*57718be8SEnji Cooper		expect=u
112*57718be8SEnji Cooper		fail=g
113*57718be8SEnji Cooper		;;
114*57718be8SEnji Cooper	group)
115*57718be8SEnji Cooper		expect=g
116*57718be8SEnji Cooper		fail=u
117*57718be8SEnji Cooper		;;
118*57718be8SEnji Cooper	both)
119*57718be8SEnji Cooper		expect="u g"
120*57718be8SEnji Cooper		fail=""
121*57718be8SEnji Cooper		;;
122*57718be8SEnji Cooper	*)
123*57718be8SEnji Cooper		atf_fail "wrong quota type"
124*57718be8SEnji Cooper		;;
125*57718be8SEnji Cooper	esac
126*57718be8SEnji Cooper
127*57718be8SEnji Cooper	for q in ${expect} ; do
128*57718be8SEnji Cooper		atf_check -s exit:0 \
129*57718be8SEnji Cooper		   env LD_PRELOAD=/usr/lib/librumphijack.so RUMPHIJACK=vfs=getvfsstat,blanket=/mnt edquota -$q -s2k/4 -h3k/6 \
130*57718be8SEnji Cooper		   -t 1s/1d ${id}
131*57718be8SEnji Cooper	done
132*57718be8SEnji Cooper	atf_check -s exit:0 rump.halt
133*57718be8SEnji Cooper
134*57718be8SEnji Cooper	#now start the server which does the limits tests
135*57718be8SEnji Cooper	atf_check -s exit:0 -o ignore \
136*57718be8SEnji Cooper-e match:'test 1: write beyond the soft limit after grace time returned 69: Disc quota exceeded' \
137*57718be8SEnji Cooper	    $(atf_get_srcdir)/h_quota2_tests -b 1 ${IMG} ${RUMP_SERVER}
138*57718be8SEnji Cooper	for q in ${expect} ; do
139*57718be8SEnji Cooper		atf_check -s exit:0 \
140*57718be8SEnji Cooper		    -o match:'/mnt   2560 B\*  2048 B   3072 B    none      2       4       6         ' \
141*57718be8SEnji Cooper		    env LD_PRELOAD=/usr/lib/librumphijack.so RUMPHIJACK=vfs=getvfsstat,blanket=/mnt quota -$q -h ${id}
142*57718be8SEnji Cooper		atf_check -s exit:0 \
143*57718be8SEnji Cooper		    -o match:'daemon    \+-        2        2        3   none         2       4       6' \
144*57718be8SEnji Cooper		    env LD_PRELOAD=/usr/lib/librumphijack.so RUMPHIJACK=vfs=getvfsstat,blanket=/mnt repquota -$q /mnt
145*57718be8SEnji Cooper	done
146*57718be8SEnji Cooper	rump_quota_shutdown
147*57718be8SEnji Cooper}
148*57718be8SEnji Cooper
149*57718be8SEnji Cooperlimit_iquota()
150*57718be8SEnji Cooper{
151*57718be8SEnji Cooper	create_ffs_server $*
152*57718be8SEnji Cooper	local q=$4
153*57718be8SEnji Cooper	local expect
154*57718be8SEnji Cooper	local id=1
155*57718be8SEnji Cooper
156*57718be8SEnji Cooper	case ${q} in
157*57718be8SEnji Cooper	user)
158*57718be8SEnji Cooper		expect=u
159*57718be8SEnji Cooper		fail=g
160*57718be8SEnji Cooper		;;
161*57718be8SEnji Cooper	group)
162*57718be8SEnji Cooper		expect=g
163*57718be8SEnji Cooper		fail=u
164*57718be8SEnji Cooper		;;
165*57718be8SEnji Cooper	both)
166*57718be8SEnji Cooper		expect="u g"
167*57718be8SEnji Cooper		fail=""
168*57718be8SEnji Cooper		;;
169*57718be8SEnji Cooper	*)
170*57718be8SEnji Cooper		atf_fail "wrong quota type"
171*57718be8SEnji Cooper		;;
172*57718be8SEnji Cooper	esac
173*57718be8SEnji Cooper
174*57718be8SEnji Cooper	for q in ${expect} ; do
175*57718be8SEnji Cooper		atf_check -s exit:0 \
176*57718be8SEnji Cooper		   env LD_PRELOAD=/usr/lib/librumphijack.so RUMPHIJACK=vfs=getvfsstat,blanket=/mnt edquota -$q -s2m/4 -h3m/6 \
177*57718be8SEnji Cooper		   -t 2h/2h ${id}
178*57718be8SEnji Cooper	done
179*57718be8SEnji Cooper	atf_check -s exit:0 rump.halt
180*57718be8SEnji Cooper
181*57718be8SEnji Cooper	#now start the server which does the limits tests
182*57718be8SEnji Cooper	atf_check -s exit:0 -o ignore \
183*57718be8SEnji Cooper-e match:'test 2: create file up to hard limit returned 69: Disc quota exceeded' \
184*57718be8SEnji Cooper	    $(atf_get_srcdir)/h_quota2_tests -b 2 ${IMG} ${RUMP_SERVER}
185*57718be8SEnji Cooper	for q in ${expect} ; do
186*57718be8SEnji Cooper		atf_check -s exit:0 \
187*57718be8SEnji Cooper		    -o match:'/mnt   3072 B   2048 K   3072 K              6 \*     4       6      2:0' \
188*57718be8SEnji Cooper		    env LD_PRELOAD=/usr/lib/librumphijack.so RUMPHIJACK=vfs=getvfsstat,blanket=/mnt quota -$q -h ${id}
189*57718be8SEnji Cooper		atf_check -s exit:0 \
190*57718be8SEnji Cooper		    -o match:'daemon    -\+        3     2048     3072                6       4       6    2:0' \
191*57718be8SEnji Cooper		    env LD_PRELOAD=/usr/lib/librumphijack.so RUMPHIJACK=vfs=getvfsstat,blanket=/mnt repquota -$q /mnt
192*57718be8SEnji Cooper	done
193*57718be8SEnji Cooper	rump_quota_shutdown
194*57718be8SEnji Cooper}
195*57718be8SEnji Cooper
196*57718be8SEnji Cooperlimit_softiquota()
197*57718be8SEnji Cooper{
198*57718be8SEnji Cooper	create_ffs_server $*
199*57718be8SEnji Cooper	local q=$4
200*57718be8SEnji Cooper	local expect
201*57718be8SEnji Cooper	local id=1
202*57718be8SEnji Cooper
203*57718be8SEnji Cooper	case ${q} in
204*57718be8SEnji Cooper	user)
205*57718be8SEnji Cooper		expect=u
206*57718be8SEnji Cooper		fail=g
207*57718be8SEnji Cooper		;;
208*57718be8SEnji Cooper	group)
209*57718be8SEnji Cooper		expect=g
210*57718be8SEnji Cooper		fail=u
211*57718be8SEnji Cooper		;;
212*57718be8SEnji Cooper	both)
213*57718be8SEnji Cooper		expect="u g"
214*57718be8SEnji Cooper		fail=""
215*57718be8SEnji Cooper		;;
216*57718be8SEnji Cooper	*)
217*57718be8SEnji Cooper		atf_fail "wrong quota type"
218*57718be8SEnji Cooper		;;
219*57718be8SEnji Cooper	esac
220*57718be8SEnji Cooper
221*57718be8SEnji Cooper	for q in ${expect} ; do
222*57718be8SEnji Cooper		atf_check -s exit:0 \
223*57718be8SEnji Cooper		   env LD_PRELOAD=/usr/lib/librumphijack.so RUMPHIJACK=vfs=getvfsstat,blanket=/mnt edquota -$q -s2m/4 -h3m/6 \
224*57718be8SEnji Cooper		   -t 1d/1s ${id}
225*57718be8SEnji Cooper	done
226*57718be8SEnji Cooper	atf_check -s exit:0 rump.halt
227*57718be8SEnji Cooper
228*57718be8SEnji Cooper	#now start the server which does the limits tests
229*57718be8SEnji Cooper	atf_check -s exit:0 -o ignore \
230*57718be8SEnji Cooper-e match:'test 3: create file beyond the soft limit after grace time returned 69: Disc quota exceeded' \
231*57718be8SEnji Cooper	    $(atf_get_srcdir)/h_quota2_tests -b 3 ${IMG} ${RUMP_SERVER}
232*57718be8SEnji Cooper	for q in ${expect} ; do
233*57718be8SEnji Cooper		atf_check -s exit:0 \
234*57718be8SEnji Cooper		    -o match:'/mnt   2560 B   2048 K   3072 K              5 \*     4       6     none' \
235*57718be8SEnji Cooper		    env LD_PRELOAD=/usr/lib/librumphijack.so RUMPHIJACK=vfs=getvfsstat,blanket=/mnt quota -$q -h ${id}
236*57718be8SEnji Cooper		atf_check -s exit:0 \
237*57718be8SEnji Cooper		    -o match:'daemon    -\+        2     2048     3072                5       4       6   none' \
238*57718be8SEnji Cooper		    env LD_PRELOAD=/usr/lib/librumphijack.so RUMPHIJACK=vfs=getvfsstat,blanket=/mnt repquota -$q /mnt
239*57718be8SEnji Cooper	done
240*57718be8SEnji Cooper	rump_quota_shutdown
241*57718be8SEnji Cooper}
242*57718be8SEnji Cooper
243*57718be8SEnji Cooperinherit_defaultquota()
244*57718be8SEnji Cooper{
245*57718be8SEnji Cooper	create_ffs_server $*
246*57718be8SEnji Cooper	local q=$4
247*57718be8SEnji Cooper	local expect
248*57718be8SEnji Cooper	local id=1
249*57718be8SEnji Cooper
250*57718be8SEnji Cooper	case ${q} in
251*57718be8SEnji Cooper	user)
252*57718be8SEnji Cooper		expect=u
253*57718be8SEnji Cooper		fail=g
254*57718be8SEnji Cooper		;;
255*57718be8SEnji Cooper	group)
256*57718be8SEnji Cooper		expect=g
257*57718be8SEnji Cooper		fail=u
258*57718be8SEnji Cooper		;;
259*57718be8SEnji Cooper	both)
260*57718be8SEnji Cooper		expect="u g"
261*57718be8SEnji Cooper		fail=""
262*57718be8SEnji Cooper		;;
263*57718be8SEnji Cooper	*)
264*57718be8SEnji Cooper		atf_fail "wrong quota type"
265*57718be8SEnji Cooper		;;
266*57718be8SEnji Cooper	esac
267*57718be8SEnji Cooper
268*57718be8SEnji Cooper	for q in ${expect} ; do
269*57718be8SEnji Cooper		atf_check -s exit:0 \
270*57718be8SEnji Cooper		   env LD_PRELOAD=/usr/lib/librumphijack.so RUMPHIJACK=vfs=getvfsstat,blanket=/mnt edquota -$q -s2k/4 -h3k/6 \
271*57718be8SEnji Cooper		   -t 2h/2h -d
272*57718be8SEnji Cooper	done
273*57718be8SEnji Cooper	for q in ${expect} ; do
274*57718be8SEnji Cooper		atf_check -s exit:0 \
275*57718be8SEnji Cooper		    -o match:'Disk quotas for .*id 1\): none' \
276*57718be8SEnji Cooper		    env LD_PRELOAD=/usr/lib/librumphijack.so RUMPHIJACK=vfs=getvfsstat,blanket=/mnt quota -$q -v ${id}
277*57718be8SEnji Cooper	done
278*57718be8SEnji Cooper	atf_check -s exit:0 rump.halt
279*57718be8SEnji Cooper
280*57718be8SEnji Cooper	#now start the server which does the limits tests
281*57718be8SEnji Cooper	atf_check -s exit:0 -o ignore \
282*57718be8SEnji Cooper-e match:'test 0: write up to hard limit returned 69: Disc quota exceeded' \
283*57718be8SEnji Cooper	    $(atf_get_srcdir)/h_quota2_tests -b 0 ${IMG} ${RUMP_SERVER}
284*57718be8SEnji Cooper	for q in ${expect} ; do
285*57718be8SEnji Cooper		atf_check -s exit:0 \
286*57718be8SEnji Cooper		    -o match:'/mnt   3072 B\*  2048 B   3072 B     2:0      2       4       6         ' \
287*57718be8SEnji Cooper		    env LD_PRELOAD=/usr/lib/librumphijack.so RUMPHIJACK=vfs=getvfsstat,blanket=/mnt quota -$q -h ${id}
288*57718be8SEnji Cooper		atf_check -s exit:0 \
289*57718be8SEnji Cooper		    -o match:'daemon    \+-        3        2        3    2:0         2       4       6' \
290*57718be8SEnji Cooper		    env LD_PRELOAD=/usr/lib/librumphijack.so RUMPHIJACK=vfs=getvfsstat,blanket=/mnt repquota -$q /mnt
291*57718be8SEnji Cooper	done
292*57718be8SEnji Cooper	rump_quota_shutdown
293*57718be8SEnji Cooper}
294*57718be8SEnji Cooper
295*57718be8SEnji Cooperinherit_defaultiquota()
296*57718be8SEnji Cooper{
297*57718be8SEnji Cooper	create_ffs_server $*
298*57718be8SEnji Cooper	local q=$4
299*57718be8SEnji Cooper	local expect
300*57718be8SEnji Cooper	local id=1
301*57718be8SEnji Cooper
302*57718be8SEnji Cooper	case ${q} in
303*57718be8SEnji Cooper	user)
304*57718be8SEnji Cooper		expect=u
305*57718be8SEnji Cooper		fail=g
306*57718be8SEnji Cooper		;;
307*57718be8SEnji Cooper	group)
308*57718be8SEnji Cooper		expect=g
309*57718be8SEnji Cooper		fail=u
310*57718be8SEnji Cooper		;;
311*57718be8SEnji Cooper	both)
312*57718be8SEnji Cooper		expect="u g"
313*57718be8SEnji Cooper		fail=""
314*57718be8SEnji Cooper		;;
315*57718be8SEnji Cooper	*)
316*57718be8SEnji Cooper		atf_fail "wrong quota type"
317*57718be8SEnji Cooper		;;
318*57718be8SEnji Cooper	esac
319*57718be8SEnji Cooper
320*57718be8SEnji Cooper	for q in ${expect} ; do
321*57718be8SEnji Cooper		atf_check -s exit:0 \
322*57718be8SEnji Cooper		   env LD_PRELOAD=/usr/lib/librumphijack.so RUMPHIJACK=vfs=getvfsstat,blanket=/mnt edquota -$q -s2m/4 -h3m/6 \
323*57718be8SEnji Cooper		   -t 2h/2h -d
324*57718be8SEnji Cooper	done
325*57718be8SEnji Cooper	for q in ${expect} ; do
326*57718be8SEnji Cooper		atf_check -s exit:0 \
327*57718be8SEnji Cooper		    -o match:'Disk quotas for .*id 1\): none' \
328*57718be8SEnji Cooper		    env LD_PRELOAD=/usr/lib/librumphijack.so RUMPHIJACK=vfs=getvfsstat,blanket=/mnt quota -$q -v ${id}
329*57718be8SEnji Cooper	done
330*57718be8SEnji Cooper	atf_check -s exit:0 rump.halt
331*57718be8SEnji Cooper
332*57718be8SEnji Cooper	#now start the server which does the limits tests
333*57718be8SEnji Cooper	atf_check -s exit:0 -o ignore \
334*57718be8SEnji Cooper-e match:'test 2: create file up to hard limit returned 69: Disc quota exceeded' \
335*57718be8SEnji Cooper	    $(atf_get_srcdir)/h_quota2_tests -b 2 ${IMG} ${RUMP_SERVER}
336*57718be8SEnji Cooper	for q in ${expect} ; do
337*57718be8SEnji Cooper		atf_check -s exit:0 \
338*57718be8SEnji Cooper		    -o match:'/mnt   3072 B   2048 K   3072 K              6 \*     4       6      2:0' \
339*57718be8SEnji Cooper		    env LD_PRELOAD=/usr/lib/librumphijack.so RUMPHIJACK=vfs=getvfsstat,blanket=/mnt quota -$q -h ${id}
340*57718be8SEnji Cooper		atf_check -s exit:0 \
341*57718be8SEnji Cooper		    -o match:'daemon    -\+        3     2048     3072                6       4       6    2:0' \
342*57718be8SEnji Cooper		    env LD_PRELOAD=/usr/lib/librumphijack.so RUMPHIJACK=vfs=getvfsstat,blanket=/mnt repquota -$q /mnt
343*57718be8SEnji Cooper	done
344*57718be8SEnji Cooper	rump_quota_shutdown
345*57718be8SEnji Cooper}
346