2 # FS QA Test No. 097. Modifed from UDFQA test 033.
4 # simple attr tests for EAs:
11 #-----------------------------------------------------------------------
12 # Copyright (c) 2000-2004 Silicon Graphics, Inc. All Rights Reserved.
13 # This program is free software; you can redistribute it and/or modify
14 # it under the terms of the GNU General Public License as published by
15 # the Free Software Foundation; either version 2 of the License, or
16 # (at your option) any later version.
18 # This program is distributed in the hope that it will be useful,
19 # but WITHOUT ANY WARRANTY; without even the implied warranty of
20 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 # GNU General Public License for more details.
23 # You should have received a copy of the GNU General Public License
24 # along with this program; if not, write to the Free Software
25 # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
28 # Contact information: Silicon Graphics, Inc., 1500 Crittenden Lane,
29 # Mountain View, CA 94043, USA, or: http://www.sgi.com
30 #-----------------------------------------------------------------------
36 echo "QA output created by $seq"
40 status=1 # failure is the default!
42 trap "_cleanup; exit \$status" 0 1 2 3 15
55 if [ "$FSTYP" == "xfs" ]; then
64 # get standard environment, filters and checks
68 # link correct .out file
69 # This is done bacause udf and xfs print attrs in different orders.
71 if [ "$FSTYP" == "xfs" ]; then
72 ln -s $seq.out.xfs $seq.out
74 ln -s $seq.out.udf $seq.out
77 # real QA test starts here
84 TARGET_DIR=$SCRATCH_MNT
85 [ "$FSTYP" == "xfs" ] && TARGET_DIR=$TEST_DIR
88 echo "create file foo"
91 echo "should be no EAs for foo:"
94 echo "set EA <noise,woof>:"
95 attr -s noise -V woof foo
97 echo "set EA <colour,blue>:"
98 attr -s colour -V blue foo
100 echo "set EA <size,small>:"
101 attr -s size -V small foo
103 echo "list the EAs for foo: noise, colour, size"
106 echo "check the list again for foo"
109 echo "unmount the FS and see if EAs are persistent"
112 echo "check the list again for foo after umount/mount"
115 echo "get the value of the noise EA"
118 echo "get the value of the colour EA which was removed earlier"
121 echo "get the value of the size EA"
124 echo "remove the colour EA on foo"
127 echo "list EAs for foo: noise, size"
130 echo "get the value of the noise EA"
133 echo "get the value of the colour EA which was removed earlier"
136 echo "get the value of the size EA"
139 echo "list all the EAs again: noise, size"
142 echo "change the value of the size EA from small to huge"
143 attr -s size -V huge foo
145 echo "get the size EA which should now have value huge"
148 echo "list EAs: noise, size"
151 echo "remove the size EA from foo"
154 echo "list EAs: noise (size EA has been removed)"
157 echo "get the noise EA: woof"
160 echo "try removing non-existent EA named woof"
163 echo "try removing already removed EA size"
166 echo "list EAs: noise"
169 echo "try removing already removed EA colour"
172 echo "list EAs: noise"
175 echo "remove remaining EA noise"
178 echo "list EAs: should be no EAs left now"
181 echo "unmount the FS and see if EAs are persistent"
184 echo "list EAs: should still be no EAs left"
188 echo "*** Test out the root namespace ***"
191 echo "set EA <root:colour,marone>:"
192 attr -R -s colour -V marone foo
194 echo "set EA <user:colour,beige>:"
195 attr -s colour -V beige foo
197 echo "set EA <user:vomit,pizza>:"
198 attr -s vomit -V pizza foo
200 echo "set EA <root:noise,whack>:"
201 attr -R -s noise -V whack foo
203 echo "list root EAs: <root:colour,noise>:"
206 echo "list user EAs: <user:colour,vomit>:"
209 echo "get root EA colour: marone"
210 attr -R -g colour foo
212 echo "get root EA noise: whack"
215 echo "get root EA vomit which is a user EA => find nothing"
219 echo "unmount the FS and see if EAs are persistent"
223 echo "get root EA colour: marone"
224 attr -R -g colour foo
226 echo "get root EA noise: whack"
229 echo "get user EA vomit: pizza"
232 echo "remove the root colour EA"
233 attr -R -r colour foo
235 echo "list root EAs: <root:noise>:"
238 echo "list user EAs: <user:colour,vomit>:"
241 echo "remove the final root EA noise"
244 echo "list root EAs: none"
250 # Check the filesystem
253 # optional stuff if your test has verbose output to help resolve problems
255 #echo "If failure, check $seq.full (this) and $seq.full.ok (reference)"